최신글 원하는 필드로 정렬해서 뽑기 > 그누4 팁자료실

그누4 팁자료실

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

최신글 원하는 필드로 정렬해서 뽑기 정보

최신글 원하는 필드로 정렬해서 뽑기

첨부파일

latest.rar (684byte) 95회 다운로드 2008-06-18 20:46:47

본문

latest 함수 맨 마지막 부분에 $options를 이용해서 최신글을 원하는 필드로 정렬해서 뽑아오는 파일입니다.

기존 latest 함수에는 $options를 입력받기만하고 사용하지는 않았습니다.

그래서 약간 수정을해서 $options를 이용해 원하는 필드로 정렬해서 최신글을 뽑아올 수 있도록 만들었습니다.

그리고 $options 부분에 아무것도 입력되지 않으면 최근에 등록된 순서대로 정렬해서 최신글을 뽑아옵니다.

아래는 소스입니다.

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

// 최신글 추출 (추천수 정렬)
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="wr_id")
{
    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; // 게시판 테이블 전체이름
    //$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
    // 위의 코드 보다 속도가 빠름
    $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by $options 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;
}
?>

예제> 추천수가 많은 순서대로 정렬해서 뽑아오기
<?=latest("basic", "test", 10, 40, "wr_good");?>

설치 방법은 그누보드4가 설치된 폴더 아래에 lib 폴더에 있는 latest.lib.php 에 덮어쓰시면 됩니다.
추천
2
  • 복사

댓글 4개

게시판 10개는 기존처럼 wr_id로 최근글 순서로 정렬되고 1개만 wr_datemtime으로 하려면
$options="wr_id") 를 $options="wr_datetime")으로하면 다른 10개의 게시판이 정렬이 틀어지는거 아닌가요?


글뽑을때 기존 추출소스 마지막에 <?=latest("basic","test","6","36","공지사항","","","");?>이놈을<?=latest("basic", "test", 6, 36, "wr_id");?>
이렇게만 하면 10개 개시판에는 기존 처럼 글쓴 순서대로 나오고 1개만 wr_datetime으로 추출되나요?
© SIRSOFT
현재 페이지 제일 처음으로