21'C 흐림
서울 강남구
여분필드로 정렬을 할 필요가 있어, 기존엔 [ 그누보드/lib/get_data.lib.php ]를 직접 수정해서 쓰다가, 코어를 건드리지 않는 방법으로 바꾸었습니다.
function get_board_sort_fields($board=array(), $make_key_return=''){
$bo_sort_fields = run_replace('get_board_sort_fields', array(
array('wr_num, wr_reply', '기본'),
array('wr_datetime asc', '날짜 이전것 부터'),
array('wr_datetime desc', '날짜 최근것 부터'),
array('wr_hit asc, wr_num, wr_reply', '조회수 낮은것 부터'),
array('wr_hit desc, wr_num, wr_reply', '조회수 높은것 부터'),
array('wr_last asc', '최근글 이전것 부터'),
array('wr_last desc', '최근글 최근것 부터'),
array('wr_comment asc, wr_num, wr_reply', '댓글수 낮은것 부터'),
array('wr_comment desc, wr_num, wr_reply', '댓글수 높은것 부터'),
array('wr_good asc, wr_num, wr_reply', '추천수 낮은것 부터'),
array('wr_good desc, wr_num, wr_reply', '추천수 높은것 부터'),
array('wr_nogood asc, wr_num, wr_reply', '비추천수 낮은것 부터'),
array('wr_nogood desc, wr_num, wr_reply', '비추천수 높은것 부터'),
array('wr_subject asc, wr_num, wr_reply', '제목 오름차순'),
array('wr_subject desc, wr_num, wr_reply', '제목 내림차순'),
array('wr_name asc, wr_num, wr_reply', '글쓴이 오름차순'),
array('wr_name desc, wr_num, wr_reply', '글쓴이 내림차순'),
array('ca_name asc, wr_num, wr_reply', '분류명 오름차순'),
array('ca_name desc, wr_num, wr_reply', '분류명 내림차순'),
), $board, $make_key_return);
if( $make_key_return ){
$returns = array();
foreach( $bo_sort_fields as $v ){
$key = preg_replace("/[<>'"'\"%=()/^*s]/", "", $v[0]);
$returns[$key] = $v[0];
}
return $returns;
}
return $bo_sort_fields;
}
[ 그누보드/extend/ ] 디렉토리 안에 다음 내용으로 php 파일을 추가하시면 됩니다:
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;
add_replace('get_board_sort_fields', function( $sorting ){
$sorting[] = array('wr_1+0 asc', '여분필드 1 오름차순');
$sorting[] = array('wr_1+0 desc', '여분필드 1 내림차순');
//같은 방식으로 계속 추가 가능
return $sorting;
}, G5_HOOK_DEFAULT_PRIORITY, 1);
add_replace 함수는 run_replace 함수가 적용된 특정값을 수정 또는 변경시 사용되는 함수입니다.
run_replace 함수 실행전에 add_replace 함수로 입력된 내용들은 run_replace 함수가 실행시 전부 적용 되며,
run_replace 함수 실행 이후에 add_replace로 입력된 내용은 적용 되지 않습니다.