BOARD

팁·활용

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

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 0회 작성일 26-09-14 09:05

본문

개요

그누보드 기본 최신글 함수는 등록된 순서대로 목록을 불러오지만, 특정 게시물만 골라 사용자가 지정한 순서대로 출력해야 할 때가 있습니다. 여분필드 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);

적용 후 확인 및 주의사항

정렬 방식을 변경하거나 순서값을 수정했을 때 바로 반영되지 않는다면 관리자 페이지의 환경설정에서 캐시파일 일괄 삭제를 실행한 후 결과를 확인해야 합니다. 그누보드 버전별 함수 차이가 있을 수 있으므로 수정 전 기존 파일을 반드시 백업하시기 바랍니다.

댓글목록

등록된 댓글이 없습니다.