XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | sejin7940 |
---|
확장변수 기준으로 정렬 기능이 작동 안 하는 버그가 있는데
이는 $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);