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

리스트 게시판 정렬 필드를 hook로 추가하려고 합니다. 채택완료

adm/board_form.php 에서

리스트 게시판 정렬 필드에 rand()를 추가하려고 합니다.

코어파일을 건드리지 않으려고 hook를 사용하려고 하는데 냑에서 이미 준비를 해주었네요.

그런데 밥그릇을 보고 숟가락을 들지 못하고 있습니다.

 

lib/get_date.lib.php 406라인부터

</p>

<p>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', '날짜 이전것 부터'),</p>

<p>.</p>

<p>.</p>

<p>.</p>

<p>

이렇게 run_replace로 준비가 되어 있습니다.

 

요녀석을

</p>

<p>custom_function() {</p>

<p>}</p>

<p>add_replace('get_board_sort_fields', 'custom_function');</p>

<p>

이렇게 설정하는 것까지 준비를 했습니다.

 

여기서 문제가 생겼네요. 인자가 하나일 때에는 쉽게 해결했었는데 이렇게 array로 되어 있는 경우에는 어떻게 처리해야 하는지 모르겠네요.

코어파일(get_data.lib.php)에 추가할 때에는

</p>

<p>array('rand()', '랜덤'),</p>

<p>

요거 한줄만 추가하면 되는데

add_replace를 이용하려니 hook에서의 array처리 방법을 모르니 해결이 안됩니다.

 

고수님들의 도움 부탁드립니다.

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

답변 1개

채택된 답변
+20 포인트

이렇게 하시면 되긴 하는데요...

게시판에서 페이징때문에 order by rand()가 이상할텐데요...

1페이지에서 본 게시물 2페이지에서도 다시 볼 수도 있고...

 

</p>

<p>add_replace('get_board_sort_fields', 'custom_function', 10, 5);

function custom_function($array, $board, $make_key_return) {

    return array_merge($array, array(array('rand()', '랜덤')));

}</p>

<p>

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

답변에 대한 댓글 1개

답변 감사합니다 :)
게시판을 rand()할 때 페이징 문제는 항상 제기되는 문제라서 이미 포기했었습니다.
해당 게시판은 리스트 개수가 적은 숫자로 고정되어 있어 전체 리스트를 랜덤하는데 있어 이 문제에서 벗어날 수 있네요.
올려주신 코드가 매우 잘 작동합니다.
거듭 감사합니다 ^^;

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

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

로그인

전체 질문 목록