그누보드 최신글 특정 게시물 순서 지정 및 추출 방법
페이지 정보

본문
개요
그누보드 기본 최신글 함수는 등록된 순서대로 목록을 불러오지만, 특정 게시물만 골라 사용자가 지정한 순서대로 출력해야 할 때가 있습니다. 여분필드 1번(wr_1)을 순서값 저장소로 활용하고 최신글 출력을 담당하는 라이브러리 함수와 스킨 파일을 수정하면 원하는 순서대로 게시물을 제어할 수 있습니다.
최신글 함수 수정 방법
lib/latest.lib.php 파일에서 기본 최신글 함수를 복사하여 새로운 함수명으로 변경한 뒤 파일 하단에 추가합니다. 버전별로 함수 구조가 다를 수 있으므로 현재 사용하는 버전을 기준으로 복사해야 합니다.
// 사용자 정의 최신글 함수 예시
function latest_main($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='') {
// 중간의 SQL 쿼리 부분을 아래와 같이 수정합니다.
$sql = " select * from {$tmp_write_table} where wr_is_comment = 0 and wr_1 > '0' order by wr_1+0 desc limit 0, {$rows} ";
}SQL 쿼리에서 wr_1+0을 사용한 이유는 여분필드 타입이 문자형이기 때문에 숫자형으로 변환하여 올바르게 정렬하기 위함입니다. desc는 높은 값이 먼저 출력되며 asc로 변경하면 낮은 값부터 출력됩니다.
게시판 스킨 및 출력부 수정
글쓰기 및 수정 화면 스킨인 write.skin.php 파일에 관리자만 입력할 수 있는 여분필드 입력란을 추가합니다. 빈 값으로 두면 최신글로 출력되지 않습니다.
<?php if ($is_admin) { ?>
<div class="write_div">
<label for="wr_1" class="sound_only">메인출력</label>
<input type="text" name="wr_1" value="<?php echo $wr_1 ?>" id="wr_1" class="frm_input" size="10" placeholder="출력순서">
</div>
<?php } ?>이후 index.php 등 최신글을 호출하는 위치에서 기존 함수 대신 새로 만든 함수명을 사용합니다.
// 변경 전
echo latest("basic", "notice", 5, 25);
// 변경 후
echo latest_main("basic", "notice", 5, 25);적용 후 확인 및 주의사항
정렬 방식을 변경하거나 순서값을 수정했을 때 바로 반영되지 않는다면 관리자 페이지의 환경설정에서 캐시파일 일괄 삭제를 실행한 후 결과를 확인해야 합니다. 그누보드 버전별 함수 차이가 있을 수 있으므로 수정 전 기존 파일을 반드시 백업하시기 바랍니다.
- 이전글그누보드 테마 폴더에 커스텀 페이지 추가하고 링크 연결하는 방법 26.09.14
- 다음글그누보드 1:1 문의 게시판 작성자의 다른 문의글 목록 출력하기 26.09.14
댓글목록
등록된 댓글이 없습니다.