최신글 원하는 필드로 정렬해서 뽑기
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 에 덮어쓰시면 됩니다.
댓글 4개
용된지렁이
17년 전
좋은팁 감사합니다.
iamdo
17년 전
감사합니다
17년 전
좋은팁 감사해요 ^_^
15년 전
게시판 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으로 추출되나요?
게시판 목록
그누4 팁자료실
그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3309 | 3년 전 | 1805 | ||
| 3308 | 11년 전 | 2093 | ||
| 3307 |
uPAmJ903
|
6년 전 | 4752 | |
| 3306 |
바른사나이
|
6년 전 | 3274 | |
| 3305 | 6년 전 | 12312 | ||
| 3304 | 7년 전 | 3705 | ||
| 3303 | 7년 전 | 3744 | ||
| 3302 |
지리산초보
|
7년 전 | 13597 | |
| 3301 |
sozet
|
8년 전 | 4904 | |
| 3300 |
sozet
|
8년 전 | 5974 | |
| 3299 |
sozet
|
8년 전 | 10863 | |
| 3298 | 8년 전 | 4017 | ||
| 3297 |
또치하우스
|
8년 전 | 4444 | |
| 3296 | 8년 전 | 11972 | ||
| 3295 |
또치하우스
|
8년 전 | 14987 | |
| 3294 | 8년 전 | 6027 | ||
| 3293 | 8년 전 | 5592 | ||
| 3292 |
|
9년 전 | 5319 | |
| 3291 | 9년 전 | 13683 | ||
| 3290 | 9년 전 | 5055 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기