웹마스터 팁
XE 1,7 에서 확장변수 기준으로 정렬 기능이 작동 안 하는 버그 수정법
2013.12.04 06:40
원본글 출처 : http://sejin7940.co.kr/index.php?mid=xe_tips&document_srl=96426
--------------------------------------
확장변수 기준으로 정렬 기능이 작동 안 하는 버그가 있는데
이는 $load_extra_vars 값 때문에 발생하는 문제입니다.
modules/document/document.model.php 에서
function getDocumentList 에서
첫줄의 $sort_check = $this->_setSortIndex 로는 정상적으로 인식되는데
( getDocumentList 자체에서 $load_extra_vars=true 로 인식하기에 true 값을 _setSortIndex 로 전달을 해주기에)
그러나, 그 밑에
$this->_setSearchOption($obj, $args, $query_id, $use_division); 를 거치면서 sort_check 값이 달라진다.
function _setSearchOption 함수에서
$sort_check = $this->_setSortIndex($searchOpt, $load_extra_vars);
부분을 다시 호출하게 되는데.. (결국 중복호출하는데, 이것도 어떤 이유가 있겠지 싶어서..)
그런데, _setSearchOption 함수에는 $load_extra_vars 값이 전달되지 않는다.
그러다보니, _setSearchOption 내부에 있는 _setSortIndex 함수에는
$load_extra_vars 값이 전달 안 되어
$this->_setSearchOption 를 거치고나면 $sort_check 값이 확장변수 기준이 아닌, list_order 로 초기화되어버린다
결국, 이 문제를 해결하려면... _setSearchOption 내의 _setSortIndex 쪽에 기본값을 주면 된다.
----------------------------------------
패치방법....
modules/document/document.model.php 에서
function _setSearchOption 함수에서
$sort_check = $this->_setSortIndex($searchOpt, $load_extra_vars);
부분을 아래 걸로 변경하면 됩니다.
$sort_check = $this->_setSortIndex($searchOpt, $load_extra_vars=true);
정말 오랫동안 확장변수 버그 수정을 기다려 왔는데.. 정말 감사합니다.
그런데..확장변수 검색후 확장변수 정렬 기능을 사용하면 목록을 불러 올수가 없는것 같습니다.
(예를들어 earch_target=extra_vars7&search_keyword=something&sort_index=something2&order_type=asc)