위젯출력에서 특정 카테고리글만 출력하기
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.0 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
위젯을 만들다 보니 content위젯에 있는 카테고리로 문서를 출력하는 팁이 필요해서 찾다보니
XE사이트에 앙띠2님이 2010년도에 올려 주신 팁이 있어서 제가 간추려 정리해 보니 잘 작동합니다.
https://xe1.xpressengine.com/tip/18862050
1. 위젯의 xxx.class.php 파일을 편집기로 열어서 파란색 부분을 찿아서 코드에 빨간색 소스 추가합니다.
if($args->category_srl) {
$obj->category_srl = (int)$args->category_srl;
$output = executeQueryArray("widgets.xxx.getCategories", $obj);
$output = executeQueryArray('widgets.xxx.getxxx', $obj);
} else
$output = executeQueryArray('widgets.xxx.getxxx', $obj);
2. info.xml 파일에 아래 설정 추가
<var id="category_srl">
<type>text</type>
<name xml:lang="ko">대상 분류 srl값</name>
<description xml:lang="ko">표시하고 싶은 분류만 나타나도록 할 경우 해당 분류 srl값을 입력해 주세요. (콤마(,)로 구분, 비워두시면 모든 분류 대상, 예:123,456)</description>
</var>
[질문입니다]
위와 같이 적용하니 대상 분류 srl값에 한개의 분류는 적용이 잘 되는데 콤마(,)로 구분 이 부분이 작동을 하지를 않네요
분류2개를 123,456 해서 적용하면 123분류만 출력이 되네요.
어떻게 하면 여러개의 분류를 적용할 수 있을까요.

댓글 3
$output = executeQueryArray('widgets.xxx.getxxx', $obj); 이것이 덮어쓰고 있는 것 같습니다.
잘은 모르겠지만 해당 증상은 $obj->category_srl = (int)$args->category_srl; 이 부분이 문제인 것 같은데요. 입력값이 정수로 바뀌면서 쉼표 포함 그 이하의 입력값이 증발하는 게 아닌가 싶습니다.
그리고 카테고리 번호를 쉼표 단위로 여러 개 가져온다면 $args->category_srl을 배열로 explode 시키는 작업이 필요할 것 같은데, 위젯 구조상 그냥 알아서 되는 건지는 잘 모르겠네요.
<img class="zbxe_widget_output" widget="comely_widget" skin="comley_widget_skin" module_srls="32656" content_type="document" is_notice="N" list_type="wln" show_rank="Y" tab_type="N" widget_design="LB" title_design="L" w_title="ㅇㅇ 리스트" list_count="2" page_count="5" show_page_num="Y" subject_cut_size="36" thumb_space="20" slide_info="Y" slide_arrow="Y" slide_page="Y" option_view="title,thumbnail,nickname" show_comment_count="Y" show_browser_title="N" show_category="N" show_user_icon="Y" show_icon="Y" order_target="last_update" order_type="desc" />
</div>
$obj->category_srl = $args->category_srl;
$output = executeQueryArray("widgets.xxx.getCategories", $obj);
$output = executeQueryArray('widgets.xxx.getxxx', $obj);
근데 다수의 카테고리는 content위젯을 아무리 둘러봐도 제 실력으로는 어렵네요ㅠㅠ