| 라이센스 : | GPL2 |
|---|---|
| 기타 라이센스 : | |
| 적용 버전 : | 정식버전(1.0이후) |
팁공유에 있는 SKY님의 팁 http://www.zeroboard.com/17415550
BlueGATE님의 사이트에 있는 강좌 http://www.bluegate.kr/?document_srl=105322 를 종합해서
그룹별, 포인트별, 레벨별로 위젯의 유.무를 나타나게 정리했습니다.
위젯을 만들때 참조하시라고 작성하는 글인 만큼 초보분들에게는 쉽지는 않을 것입니다.
그리고 제가 예전에 만들었던 "MH멀티카멜레온위젯"에 이 팁을 적용을 한 것을 올립니다.mh_multi.zip
그냥 사용하실분은 받아서 사용하시면 되고요. 직접 필요한 위젯에 적용을 하실려면 아래의 팁을 참조하세요.
먼저 바꾸어 보고자 하는 위젯(예; widgets/newest_document)의
1. newest_document.class.php를 불러와 아래의 소스를 추가해줍니다.
$widget_info->group = $args->group;
if(!$widget_info->group) $widget_info->group = '';
// 포인트
$widget_info->point = (int)$args->point;
if(!$widget_info->point) $widget_info->point = 0;
// 레벨
$widget_info->level = (int)$args->level;
if(!$widget_info->level) $widget_info->level = 0;
// 노출 여부 체크
if($args->select_view!='Y') $widget_info->select_view = 'N';
else $widget_info->select_view = 'Y';
2. widgets/newest_document/conf/info.xml파일을 불러와서 아래의 소스를 추가해줍니다.
<type>select</type>
<name xml:lang="ko">선택별 표시</name>
<description xml:lang="ko">그룹,포인트,레벨을 지정해서 위젯의 유무를 나타냅니다.</description>
<options>
<value>Y</value>
<name xml:lang="ko">표시</name>
</options>
<options>
<value>N</value>
<name xml:lang="ko">표시하지 않음</name>
</options>
</var>
<var id="group">
<type>text</type>
<name xml:lang="ko">그룹지정</name>
<description xml:lang="ko">지정한 그룹이면 위젯이 나타납니다.</description>
</var>
<var id="point">
<type>text</type>
<name xml:lang="ko">포인트</name>
<description xml:lang="ko">포인트를 지정해서 위젯의 유무를 나타냅니다. (기본은 누구나)</description>
</var>
<var id="level">
<type>text</type>
<name xml:lang="ko">회원레벨</name>
<description xml:lang="ko">회원레벨를 지정해서 위젯의 유무를 나타냅니다. (기본은 누구나)</description>
</var>
3. widgets/newest_document/skins/xe_official/list.html파일을 불러와서 아래와 같이 배치합니다.
<!--@ foreach($logged_info->group_list as $g)-->
<!--@ if($g == $widget_info->group || $g == '관리그룹')-->
{@ $oPointModel = &getModel('point'); $point = $oPointModel->getPoint($logged_info->member_srl); $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('point'); $level = $oPointModel->getLevel($point, $config->level_step); }
<!--@if($point < $widget_info->point || $level < $widget_info->level)--><!--@else-->
<div class="latest_{$colorset}">
- 내용생략 -
</div>
<!--@end-->
<!--@end-->
<!--@end--><!--@else-->
<div class="latest_{$colorset}">
- 내용생략 -
</div>
<!--@end-->
칼라부분들이 추가된 부분입니다.
칼라별로 선택을 하시면 해당기능만 적용시킬 수 있으니 자신에게 맞게끔 응용하시며 됩니다.
특히 파란색부분인 선택적으로 유.무를 나타나게 할려고 하니 아무래도 내용부분이 두번 들어가서 소스가 무척 길어질 것입니다.
두껍게 선택된 부분들이 그룹,포인트,레벨을 지정하는 함수부분입니다.
위의 소스에서는 관리그룹은 항상 나타나게끔 적용되어져 있는데 필요없으시면 보라색부분 || $g == '관리그룹' 를 지우시면 됩니다.
아니면 다른 그룹을 적어주셔도 되고요.
위의 이미지는 한개의 위젯으로 다른 그룹별로 페이지에 나타나게 한 모습입니다.
가족으로 로그인하면 위의 위젯만 준회원으로 로그인하면 아래의 위젯만 나타납니다.
적용된페이지보기 - 로그인후에 페이지에 나타나는 위젯이 그룹별로 다르게 나타납니다.









