테스트 사이트 - 개발 중인 베타 버전입니다

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

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

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

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

[code]

// 공지 처리

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;

    }

}

[/code]

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


[code]

// 공지사항 날짜순으로 재정렬

usort($list, function($b, $a) {

    return $a['wr_datetime'] - $b['wr_datetime'];

});

[/code]

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

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

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

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

유용한 정보 감사합니다.
좋은 정보 감사합니다.

게시판 목록

그누보드5 팁자료실

글쓰기
🐛 버그신고