공지글 등록순서가 아닌, 등록일 순으로 변경하기 > 그누보드5 팁자료실

그누보드5 팁자료실

공지글 등록순서가 아닌, 등록일 순으로 변경하기 정보

공지글 등록순서가 아닌, 등록일 순으로 변경하기

본문

게시물 출력순서는 게시판 설정에서 bo_sort_field 값을 조정하면됩니다만,

공지사항에는 적용되지 않습니다. 공지사항은 등록된 순서를 기준으로 항상 출력되는 것 같더라구요.
저 처럼 공지사항을 최신글(wr_datetime) 순서로 보고 싶으신 분은 아래 방법을 사용하셔도 됩니다.

1. 소스코드 찾기
 - bbs/list.php


// 공지 처리
if (!$is_search_bbs) {
    $arr_notice = explode(',', trim($board['bo_notice']));
    $from_notice_idx = ($page - 1) * $page_rows;
    if($from_notice_idx < 0)
        $from_notice_idx = 0;
    $board_notice_count = count($arr_notice);
 
    for ($k=0; $k<$board_notice_count; $k++) {
        if (trim($arr_notice[$k]) == '') continue;
 
        $row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' ");
 
        if (!$row['wr_id']) continue;
 
        $notice_array[] = $row['wr_id'];
 
        if($k < $from_notice_idx) continue;
 
        $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
        $list[$i]['is_notice'] = true;
 
        $i++;
        $notice_count++;
 
        if($notice_count >= $list_page_rows)
            break;
    }
}


2. 위의 내용 바로 아래에 적기

// 공지사항 날짜순으로 재정렬
usort($list, function($b, $a) {
    return $a['wr_datetime'] - $b['wr_datetime'];
});


이 코드를 넣어주시면 됩니다. 그러면 공지 순서가 최신글이 위쪽에 보이도록 나옵니다.

게시물을 담는 $list 배열에 일반글 보다 공지사항 글부터 먼저 정리가 되는데, 이 타이밍에 wr_datetime 배열값을 기준으로 재정렬해 놓는 방법입니다.

common.php 에서 $board['bo_notice'] 변수를 get_board_db 함수로 정리할 때, 하려고보니까 mysql 쿼리문을 계속 날려야겠어서 그냥 $list 정리 할 때 배열변수를 재정렬 하는 방법으로 처리했는데.. 더 좋은 방법 아시는 분 알려주세요! ^_^
추천
7

댓글 3개

전체 2,427 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT