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

wr_4를 기준으로 정렬하고 싶습니다. 채택완료

smltree 9개월 전 조회 2,107

wr_4 는 날짜를 넣는 곳입니다.

2025-01-02 의 형식으로 되어있습니다.

 

게시물의 정렬을 이  wr_4를 기준으로 하고싶습니다.
(빠른 날짜가 위로 오게 하고 싶습니다.)

 

관리자설정에서는  wr_4로 정렬하는거는 안나와있네요

어디를 어떻게 바꾸면 될까요?

 

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

답변 3개

채택된 답변
+20 포인트
9개월 전

* /extend/board_sort_config.php (생성)

</p>

<p>if ($bo_table == 'aa') { // 게시판 ID

    $board['bo_sort_field'] = ' wr_4 asc ';  // 오름차순 : asc, 내림차순 : desc

}</p>

<p>

로그인 후 평가할 수 있습니다

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

glitter0gim
9개월 전

관리 화면 정렬 옵션 없이, (커스텀 코드 있는 프로젝트)

간단히 list.php에서 SQL만 수정하는 방식으로

특정 게시판에서 wr_4를 기준으로 빠른 날짜 순(오름차순) 정렬 방법.

 

*/bbs/list.php에서 SQL 쿼리를 수정하여 wr_4를 기준으로 정렬하도록 변경

</p>

<p>$sql = "SELECT * FROM `{$write_table}` WHERE wr_is_comment = 0 ";

if (preg_match('/^[a-zA-Z0-9_]+$/', $bo_table) && $bo_table === 'your_board_id') {

    $sql .= " ORDER BY wr_4 ASC, wr_num, wr_reply";

} else {

    $sql .= " ORDER BY wr_num, wr_reply";

}</p>

<p>

- wr_4 ASC를 추가하여 빠른 날짜가 위로 오도록 설정

- wr_num 및 wr_reply를 유지해 기본 정렬 방식과의 호환

 

*특정 게시판에서만 적용하려면 bo_table 값으로 조건을 추가

</p>

<p>// 특정 게시판 조건 추가

if ($bo_table === 'your_board_id') { // 'your_board_id'를 대상 게시판 ID로 변경

    $sql .= " ORDER BY wr_4 ASC, wr_num, wr_reply";

} else {

    $sql .= " ORDER BY wr_num, wr_reply"; // 기본 정렬 방식

}</p>

<p>

 

※ 그누보드의 순정 구조를 최대한 유지하면서도,

  업그레이드 시 코드 충돌을 방지하는 가장 안정적인 방법.

 

1. /extend/extend_wr4_sort.php 파일을 생성

</p>

<p><?php

if (!defined('_GNUBOARD_')) exit;</p>

<p>add_replace('get_board_sort_fields', 'add_board_sort_fields_wr4', 0, 1);</p>

<p>function add_board_sort_fields_wr4($arr) {

    $arr[] = array('wr_4 ASC, wr_num, wr_reply', 'wr_4 오름차순');

    $arr[] = array('wr_4 DESC, wr_num, wr_reply', 'wr_4 내림차순');

    return $arr;

}</p>

<p>

- wr_4 필드가 데이터베이스에 존재하며, DATE 형식으로 저장되어 있어야 함.

- 만약 필드가 없거나 데이터 형식이 다르면 정렬이 제대로 작동하지 않을 수 있음.

 

2. get_board_sort_fields 함수에 새로운 정렬 옵션을 등록

*lib/common.lib.php의 get_board_sort_fields() 함수에서 정렬 옵션을 추가

function get_board_sort_fields() {
    return array(
        array('wr_num, wr_reply', '기본'),
        array('wr_hit desc, wr_num, wr_reply', '조회수'),
        array('wr_subject asc, wr_num, wr_reply', '제목'),
    );
}

</p>

<p>function get_board_sort_fields() {

    return array(

        array('wr_num, wr_reply', '기본'),

        array('wr_hit desc, wr_num, wr_reply', '조회수'),

        array('wr_subject asc, wr_num, wr_reply', '제목'),

        array('wr_4 ASC, wr_num, wr_reply', 'wr_4 오름차순'), // 추가된 정렬 옵션

        array('wr_4 DESC, wr_num, wr_reply', 'wr_4 내림차순') // 추가된 정렬 옵션

    );

}</p>

<p>

로그인 후 평가할 수 있습니다

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

세크티
9개월 전

extend폴더에 wr_4_extend.php 하나 만드시고, 아래 코드 넣은뒤 관리자설정에 보면 나올겁니다

</p>

<pre>
add_replace('get_board_sort_fields','add_board_sort_fields_wr4',0,1);
function add_board_sort_fields_wr4($arr{
    $arr[]  = array('wr_4 desc, wr_num, wr_reply', 'wr_4 내림차순');
    return $arr;
}</pre>

<p>

로그인 후 평가할 수 있습니다

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

답변을 작성하려면 로그인이 필요합니다.

로그인