묻고답하기
최근게시물 위젯에서 사용자정의값을 기준으로 정렬하는 기능 문의드립니다.
2017.05.17 20:48
XE 게시판에서 제목/추천수 정렬 외에 '사용자정의' 정렬 기능도 있는데요, 이게 주소줄을 보면..
http://eond.com/index.php?mid=client&sort_index=deposit&order_type=asc
이런 식으로 sort_index=사용자정의값(deposit) 을 넣어주면 되거든요.
=========================
위젯코드도.. 보면...
(최근게시물출력위젯)
https://github.com/xpressengine/xe-core/blob/master/widgets/content/content.class.php
아래는 XE에서 위젯을 출력시키는 태그입니다.
<img class="zbxe_widget_output" widget="cameronListOne" skin="neat_list" module_srls="360455" order_target="list_order" order_type="desc" option_view="title,comment_count,voted_count,nickname,regdate,extravar" show_category="N" show_icon="Y" category_range="all" hyperlink="Y" hyperlink_src="article" view_permission="list" view_secret_document="all_user" />
order_target="list_order" 이 부분이 정렬 기능을 담당하는데요,
해당 위젯의 클래스 파일을 살펴보면 별 다른게 없거든요.
$obj->sort_index = $args->order_target;
이런 식으로 글 목록을 구하고
// 정렬 대상
if(!in_array($args->order_target, array('list_order','update_order','regdate','voted_count','rand()','deposit'))) $args->order_target = 'list_order';
정렬대상에 이런 식이라서 제가 임의로 'deposit' 값을 추가해줬습니다..
deposit 값이 사용자정의거든요.
주소를 보면, &sort_index=deposit 이런 식으로 되서 간단한 거 같은데
이게 안되는군요;
사용자정의 기반의 정렬은 아예 별도의 쿼리를 사용하게 되어있습니다.
위젯에서 사용하시려면 마찬가지로 쿼리를 새로 추가하셔야합니다.
getDocumentListWithinExtraVarsExtraSort 를 참조하시면 될거예요