최신글 원하는 필드로 정렬해서 뽑기 정보
최신글 원하는 필드로 정렬해서 뽑기
첨부파일
본문
latest 함수 맨 마지막 부분에 $options를 이용해서 최신글을 원하는 필드로 정렬해서 뽑아오는 파일입니다.
기존 latest 함수에는 $options를 입력받기만하고 사용하지는 않았습니다.
그래서 약간 수정을해서 $options를 이용해 원하는 필드로 정렬해서 최신글을 뽑아올 수 있도록 만들었습니다.
그리고 $options 부분에 아무것도 입력되지 않으면 최근에 등록된 순서대로 정렬해서 최신글을 뽑아옵니다.
아래는 소스입니다.
예제> 추천수가 많은 순서대로 정렬해서 뽑아오기
<?=latest("basic", "test", 10, 40, "wr_good");?>
설치 방법은 그누보드4가 설치된 폴더 아래에 lib 폴더에 있는 latest.lib.php 에 덮어쓰시면 됩니다.
기존 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;
}
?>
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
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으로 추출되나요?
$options="wr_id") 를 $options="wr_datetime")으로하면 다른 10개의 게시판이 정렬이 틀어지는거 아닌가요?
글뽑을때 기존 추출소스 마지막에 <?=latest("basic","test","6","36","공지사항","","","");?>이놈을<?=latest("basic", "test", 6, 36, "wr_id");?>
이렇게만 하면 10개 개시판에는 기존 처럼 글쓴 순서대로 나오고 1개만 wr_datetime으로 추출되나요?