위젯을 만들다 보니 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분류만 출력이 되네요.
어떻게 하면 여러개의 분류를 적용할 수 있을까요.
$output = executeQueryArray('widgets.xxx.getxxx', $obj); 이것이 덮어쓰고 있는 것 같습니다.
잘은 모르겠지만 해당 증상은 $obj->category_srl = (int)$args->category_srl; 이 부분이 문제인 것 같은데요. 입력값이 정수로 바뀌면서 쉼표 포함 그 이하의 입력값이 증발하는 게 아닌가 싶습니다.
그리고 카테고리 번호를 쉼표 단위로 여러 개 가져온다면 $args->category_srl을 배열로 explode 시키는 작업이 필요할 것 같은데, 위젯 구조상 그냥 알아서 되는 건지는 잘 모르겠네요.