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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드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개

© SIRSOFT
현재 페이지 제일 처음으로