Extra Form
PHP PHP 8.1
CMS Rhymix 2.0

$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통합검색을 조회수 많은 순으로 정렬하고픈데..

나머지 인자는 문제없이 잘 작동하는 것이 킹 받..

  • profile
    https://github.com/rhymix/rhymix/blob/master/modules/integration_search/integration_search.model.php#L58

    intergration_search 모듈에서는 sort_index에 값을 넣어서 정렬 대상을 설정해주고 있습니다.
    order_target은 사용조차 되지 않으니, 아무리 값을 넣어도 무시되겠네요.
    order_target이 아니라, sort_index가 맞습니다.
  • profile profile
    sort_index으로 해도 변화가 없어요 ㅠㅠ
  • profile

    라이믹스 기준으로, 순정 통합검색 모듈의 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()를 혼동하신 것 같습니다.

  • profile profile

    허... 제 능력이 안되는 걸지도 모르지만.. 아무리 여러방면으로 시도 해도 순서 변화가 없고 화병만 날 것 같아욬ㅋㅋㅋ 말씀드리신대로 다른 파일 작업하다가 $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'
    ));

    문제.. 없겠죵?