wr_4를 기준으로 정렬하고 싶습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
wr_4를 기준으로 정렬하고 싶습니다.

QA

wr_4를 기준으로 정렬하고 싶습니다.

답변 3

본문

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

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

 

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

 

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

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

 

이 질문에 댓글 쓰기 :

답변 3

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



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;
}

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

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

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

 

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


$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";
}

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

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

 

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


// 특정 게시판 조건 추가
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"; // 기본 정렬 방식
}

 

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

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

 

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

<?php
if (!defined('_GNUBOARD_')) exit;
add_replace('get_board_sort_fields', 'add_board_sort_fields_wr4', 0, 1);
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;
}

- 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', '제목'),
    );
}

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 내림차순') // 추가된 정렬 옵션
    );
}

* /extend/board_sort_config.php (생성)


if ($bo_table == 'aa') { // 게시판 ID
    $board['bo_sort_field'] = ' wr_4 asc ';  // 오름차순 : asc, 내림차순 : desc
}
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로