통합검색 게시글 정렬이?
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 8.1 |
$oIS->getDocuments() 함수에는 총 8개의 인자
$module_srl, $term_srl, $search_target, $search_keyword, $page, $list_count, $order_target, $order_type가 있는데..
정렬을 담당하는 놈은 $order_target, $order_type 부분 같은데.. 왜 검색결과 문서가 정렬이 안될까요?
수정한 소스..
$args->search_target = $search_target;
$args->search_keyword = $is_keyword;
$args->page = $page;
$args->list_count = 10;
$args->order_target = 'readed_count';
$args->order_type = 'desc';
$output = $oIS->getDocuments('', $term_srl, $search_target, $is_keyword, $page, 10, 'readed_count', 'desc');
Context::set('output', $output);
뭐가 문제일까요? xe통합검색을 조회수 많은 순으로 정렬하고픈데..
나머지 인자는 문제없이 잘 작동하는 것이 킹 받..
댓글 4
intergration_search 모듈에서는 sort_index에 값을 넣어서 정렬 대상을 설정해주고 있습니다.
order_target은 사용조차 되지 않으니, 아무리 값을 넣어도 무시되겠네요.
order_target이 아니라, sort_index가 맞습니다.
라이믹스 기준으로, 순정 통합검색 모듈의 getDocuments() 메소드는 정렬 조건과 관련된 인자를 받지 않습니다. 8개의 인자를 받는 것은 더이상 유지보수되지 않는 확장모듈이나 다른 자료가 아닐까요?
https://github.com/rhymix/rhymix/blob/master/modules/integration_search/integration_search.model.php#L31
만약 DocumentModel::getDocumentList()를 직접 호출한다면 위에 적어주신 것처럼 $args를 임의로 만들어서 전달할 수 있습니다. 이 경우 정렬 방식은 sort_index에 넣어야 합니다.
https://github.com/rhymix/rhymix/blob/master/modules/integration_search/integration_search.model.php#L65
즉, $oIS->getDocuments()와 DocumentModel::getDocumentList()를 혼동하신 것 같습니다.
허... 제 능력이 안되는 걸지도 모르지만.. 아무리 여러방면으로 시도 해도 순서 변화가 없고 화병만 날 것 같아욬ㅋㅋㅋ 말씀드리신대로 다른 파일 작업하다가 $oIS->getDocuments()를 같이 넣었나보네용..
$args->module_srl[] = 0;
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
$args->search_target = $search_target;
$args->search_keyword = $search_keyword;
$args->sort_index = 'readed_count';
$args->order_type = 'desc';
$args->statusList = array('PUBLIC');
if(!$args->module_srl) unset($args->module_srl);
if(!$args->exclude_module_srl) unset($args->exclude_module_srl);
// Get a list of documents
$document_list = DocumentModel::getDocumentList($args);
이거 수정해봤자.. 코어 수정이기 때문에.. 나중에 업데이트하면 다 사라질테고..
가장 이상적인 것은 코어에서 정렬 기능을 지원하는 것이지만..
암튼 그냥 여 방식을 포기하고.. 무식하게 꼼수로.. 스킨단에서
executeQueryArray 이용해서 게시글을 불러와 수정하고 있네요...;;
이런 방식으로 불러와서 작업하면.. 정상적으로 정렬이 잘 되더라고요. 훔..ㅠ
$output = executeQueryArray('document.getDocumentList', array(
'module_srl' => $module_srl,
'list_count' => 10,
'page' => 1,
'sort_index' => 'readed_count',
'order_type' => 'asc'
));
문제.. 없겠죵?