크롬80버전 결제 이슈, 영카트5 주요패치 확인!

그누보드의 중규모이상 커뮤니티를 위한 커스트마이징(lib/latest.lib.php) > 그누4 팁자료실

그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티

그누4 팁자료실

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

그누보드의 중규모이상 커뮤니티를 위한 커스트마이징(lib/latest.lib.php) 정보

그누보드의 중규모이상 커뮤니티를 위한 커스트마이징(lib/latest.lib.php)

본문

이 문서는 아래 문서부터 차례로 보셔야 합니다.

최신글 호출시 불필요한 파일호출을 막는데 있습니다.
대부분의 경우는 파일테이블에 대한 쿼리실행이 필요 없기때문에 사용여부를 체크하도록 하엿습니다. 또한 최신글에 대하여 전체 테이블이 아닌 최신글 500개 이내에서 쿼리를 날림으로 전체테이블에서 소트하는 db속도 저하부분을 해결하기 위한 방법입니다.
이 로직을 이용하기 위해서는 bbs/write_update.php 파일도 같이 수정하셔야 합니다.
<?
if (!defined('_GNUBOARD_')) exit;
// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="", $file_use=0)
{
    global $g4;

    if ($skin_dir)
        $latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
    else
        $latest_skin_path = "$g4[path]/skin/latest/basic";

    $list = array();

    $sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
    $board = sql_fetch($sql);

    $tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름

    if($board[bo_last_wr_id]>500) $chk_wr_id = 'wr_id > '.($board[bo_last_wr_id]-100).' and';
    else $chk_wr_id = '';
   
    $sql = " select * from $tmp_write_table where $chk_wr_id wr_is_comment = 0 $options order by wr_id desc 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, $file_use);
   
    ob_start('ob_gzhandler');
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}
?>

추천0

댓글 전체

전체 3,328 |RSS
그누4 팁자료실 내용 검색

회원로그인

진행중 포인트경매

  1. 참여27 회 시작20.08.05 04:15 종료20.08.12 04:15
  2. 참여22 회 시작20.08.04 00:57 종료20.08.11 00:57

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

© SIRSOFT