게시판 최신글 G4기존기능 + 정열방식,카테고리지정,유효시간,게시판명변경..등등 추가 > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

게시판 최신글 G4기존기능 + 정열방식,카테고리지정,유효시간,게시판명변경..등등 추가 정보

게시판 최신글 G4기존기능 + 정열방식,카테고리지정,유효시간,게시판명변경..등등 추가

본문

◎ lib/latest.lib.php 원본의 기능에 몇가지 첨가한 내용입니다. 스킨을 꼭 수정해야 할 부분은 없습니다.
그대로 가져다가 쓰셔도 되며, 필요한 분이 있으시다면 적절히 활용하셨으면 합니다.

◎ 주석을 잔뜩 달아 놨으므로 따로 자세한 설명은 적지 않겠습니다.

★수정
2006.04.19

-- lib/latest.lib.php 화일내용 전체시작--

<?
if (!defined('_GNUBOARD_')) exit;

// 최신글 추출
// $options //스크롤옵션(몇개라인,라인높이)
// $orderby="랜덤:rand(), 추천순:wr_good, 비추천순:wr_nogood, 조회순:wr_hit, 코멘트순:wr_comment, 등록순:wr_id" //정열방식
// $latest_botime //최신글유효시간(예:24시간내글만추출)
// $btitle //게시판이름변경(출력되는게시판이름바꾸기)
// $category //지정카테고리명(지정한 카테고리의 게시물만 출력)
// $searchword //검색어가 내용에 포함된 게시물만..
// 설명) latest("스킨폴더명", 게시판ID, 출력갯수, 제목길이, "스크롤출력라인수,라인높이", "정열방식", "유효시간", "변경할게시판이름", "카테고리명", "내용검색어");
// 예제) echo latest("scroll", gallery, 12, 70, "4,25", "rand()", "24", "랜덤포토", "사진");
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="", $orderby="", $latest_botime="", $btitle="", $category="", $searchword="")
{
    global $config;
    global $g4;
    global $member; //★회원정보
   
    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";

    $list = array();

    $sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'"; //★원본
    $board = sql_fetch($sql);
    if (!$btitle) $btitle = $board[bo_subject]; //★게시판이름변경

    if ($member[mb_level] >= $board[bo_list_level]) //★허용레벨에게만목록출력(비회원도해당),불만족일땐게시물없음표시됨(스킨쪽에서적절한메시지작업가능,필요없으면삭제)
    {
          $tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 전체이름
         
          //$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows "; //★원본
          //===============
          $latest_botime2 = date("Y-m-d H:i:s", $g4[server_time] - ($latest_botime * 3600)); //★추가   
          $sql = " select * from $tmp_write_table where wr_is_comment = 0 "; //★코멘트아닌원글만추출
          $sql .= (!$latest_botime) ? "" : " and (wr_datetime >= '$latest_botime2') "; //★유효시간내의글만추출
          $sql .= (!$category) ? "" : " and ca_name = '$category' "; //★지정카테고리만추출
          //$sql .= " and wr_option not like '%secret%' "; //★비밀글은제외(필요하면사용하세요)
          //$sql .= (!$searchword) ? "" : " and wr_content like '%$searchword%' "; //★검색단어포함된내용만추출
          $sql .= (!$orderby) ? " order by wr_id desc" : "  order by $orderby desc"; //★정열방식
          $sql .= " limit 0, $rows ";
          //===============
          //explain($sql);
          $result = sql_query($sql);
          for ($i=0; $row = sql_fetch_array($result); $i++)
              $list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
    }
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}
?>

-- lib/latest.lib.php 화일내용 전체끝--


◎ "정열방식", "유효시간", "변경할게시판이름", "카테고리명" 등을 빈칸으로 놔두어도 작동에 아무 이상없습니다. 당연히 기본값이 적용되겠지요.

새해 복 많이 받으세요. 꾸벅..
추천
6

댓글 13개

이왕이면 원본을 손대지 않는 다음 방법으로 사용하시길 권해드립니다.

위의 파일을 lib에 저장하지 마시고 extend에 아초님의 id를 붙여서 latest_acho.lib.php로 저장하시고

latest_acho.lib.php 를 열어서 최신글 함수를 latest에서 latest_acho로 수정하세요.

그리고 사용하는 곳에서 기존 최신글은 latest()를 호출하시고 아초님의 최신글은 latet_acho()를 호출하시길...

아.. 아초님 멋진팁 감사합니다 ^^
초보라서 아직은 멍하게 어렵게 보입니다
쓰다보면 알게되겠죠..
이런 걸 찾고는 있는데 아직은 어렵네요
감사드립니다
게시판 이름 변경 부분이 잘 안되는데요...
 
if (!$btitle) $btitle = $board[bo_subject]; //★게시판이름변경

실제로 웹페이지에 출력될 때 사용되는 값이 어느 변수에 최종 들어가게 되는건가요?
$btitle --> 이 변수에 들어 있는 것이 게시판 제목으로 사용되게 되는 건가요?
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT