git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2327 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-08-12 03:59:52 +00:00
commit 8326004cb2
2773 changed files with 91485 additions and 0 deletions

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
<title xml:lang="ko">특정 그룹 회원 출력 위젯</title>
<title xml:lang="jp">グループ会員表示</title>
<title xml:lang="en">Display Specific Group Member</title>
<title xml:lang="zh-CN">会员列表</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 30">
<name xml:lang="ko">제로</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name>
<name xml:lang="zh-CN">Zero</name>
<description xml:lang="ko">
특정 그룹에 속한 회원의 목록을 출력하는 위젯입니다.
아직 테스트용 위젯이며 해당 그룹에 지정된 수 이상의 회원이 있을 경우 최근 가입순서대로 출력이 됩니다.
아래 그룹이름 입력칸에 출력을 원하는 그룹명을 , (콤마)로 연결하여 입력하시면 됩니다.
</description>
<description xml:lang="jp">
特定グループに所属している会員のリストを表示するウィジェットです。まだテスト用のウィジェットです。該当するグループに指定された以上の会員が存在した場合、最近加入順に表示されます。下のグループ名の入力フィールドに、希望するグループ名を「,(コンマ)」で区切って入力します。
</description>
<description xml:lang="en">
This widget displays members in specific group.
It is a test widget, and if there are more members than assigned number in the group, they will be ordered as latest join date.
You may input groups for displaying in below space. You can use comma(,) for multiple input.
</description>
<description xml:lang="zh-CN">
显示特定用户组会员列表的控件。
该组用户数比要显示的用户数多时,按照最近注册日期顺来显示。(测试中的控件)
要显示的对象用户组名称以,(逗号)来分隔。
</description>
</author>
<extra_vars>
<var id="title">
<name xml:lang="ko">제목</name>
<name xml:lang="jp">タイトル</name>
<name xml:lang="en">Title</name>
<name xml:lang="zh-CN">栏目名</name>
<type>text</type>
<description xml:lang="ko">최근 게시물의 제목으로 출력됩니다.</description>
<description xml:lang="jp">最新コンテンツのタイトルとして表示されます。</description>
<description xml:lang="en">It will be displayed as title of newest article.</description>
<description xml:lang="zh-CN">显示为会员列表的标题。</description>
</var>
<var id="list_count">
<name xml:lang="ko">목록수</name>
<name xml:lang="jp">リスト数</name>
<name xml:lang="en">Number of List</name>
<name xml:lang="zh-CN">目录数</name>
<type>text</type>
<description xml:lang="ko">출력될 목록의 수를 정하실 수 있습니다. (기본 5개)</description>
<description xml:lang="jp">表示されるリストの数を指定することができます。デフォルト5個</description>
<description xml:lang="en">You may choose number of list. (5 as default)</description>
<description xml:lang="zh-CN">可设置要显示的目录数。 (默认为5个)</description>
</var>
<var id="target_group">
<name xml:lang="ko">대상 회원 그룹</name>
<name xml:lang="jp">対象会員グループ</name>
<name xml:lang="en">Target Member Group</name>
<name xml:lang="zh-CN">对象用户组</name>
<type>text</type>
<description xml:lang="ko">소속 회원 출력을 원하는 회원 그룹명을 ,(콤마)로 연결하여 입력하세요.</description>
<description xml:lang="jp">所属会員を表示したい場合は、会員グループ名を「,(コンマ)」で区切って入力してください。</description>
<description xml:lang="en">Please input member group name for display with comma(,).</description>
<description xml:lang="zh-CN">要显示的对象用户组名称以,(逗号)来分隔。</description>
</var>
</extra_vars>
</widget>

View file

@ -0,0 +1,69 @@
<?php
/**
* @class member_group
* @author zero (zero@nzeo.com)
* @brief 특정 그룹의 대상자를 출력하는 위젯.
* @version 0.1
**/
class member_group extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
*
* ./widgets/위젯/conf/info.xml 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 위젯 자체적으로 설정한 변수들을 체크
$title = $args->title;
$list_count = (int)$args->list_count;
if(!$list_count) $list_count = 5;
$tmp_groups = explode(",",$args->target_group);
$count = count($tmp_groups);
for($i=0;$i<$count;$i++) {
$group_name = trim($tmp_groups[$i]);
if(!$group_name) continue;
$target_group[] = $group_name;
}
if(count($target_group)) {
// 그룹 목록을 구해옴
$oMemberModel = &getModel('member');
$group_list = $oMemberModel->getGroups();
foreach($group_list as $group_srl => $val) {
if(!in_array($val->title, $target_group)) continue;
$target_group_srl_list[] = $group_srl;
}
// 해당 그룹의 멤버를 구해옴
if(count($target_group_srl_list)) {
$obj->selected_group_srl = implode(',',$target_group_srl_list);
$obj->list_count = $list_count;
$output = executeQuery('member.getMemberListWithinGroup', $obj);
$widget_info->member_list = $output->data;
}
}
$widget_info->title = $title;
Context::set('widget_info', $widget_info);
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
Context::set('colorset', $args->colorset);
// 템플릿 파일을 지정
$tpl_file = 'list';
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
$output = $oTemplate->compile($tpl_path, $tpl_file);
return $output;
}
}
?>

View file

@ -0,0 +1,4 @@
.mg { padding-bottom:15px; overflow:hidden; position:relative;}
.mg h2 { font-size:1em; display:block; height:21px; padding:9px 0 0 9px; margin-bottom:4px; color:#000000; background:url(../images/normal/lineNotice.gif) no-repeat left bottom;}
.mg ul { overflow:hidden; width:100%;}
.mg ul li { white-space:nowrap; padding:3px 0 3px 10px; overflow:hidden; border-bottom:1px dashed #EEEEEE; color:#54564b;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

View file

@ -0,0 +1,20 @@
<!-- 설정된 컬러셋의 종류에 따라서 css파일을 import 합니다 -->
<!--@if($colorset=="normal"||!$colorset)-->
<!--%import("css/normal.css")-->
<!--@end-->
<div class="mg">
<!--@if($widget_info->title)-->
<h2>{$widget_info->title}</h2>
<!--@end-->
<ul>
<!--@foreach($widget_info->member_list as $key => $val)-->
<li>
<div class="nick_name member_{$val->member_srl}">{htmlspecialchars($val->nick_name)}</div>
</li>
<!--@end-->
</ul>
</div>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">그룹회원 출력 위젯 기본 스킨</title>
<title xml:lang="jp">グループ会員表示ウィジェットのデフォルトスキン</title>
<title xml:lang="en">Basic Skin of Group Member Display Widget</title>
<title xml:lang="zh-CN">会员列表默认皮肤</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 7. 30">
<name xml:lang="ko">제로</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name>
<name xml:lang="zh-CN">Zero</name>
<description xml:lang="ko">그룹회원 출력 위젯의 기본 스킨</description>
<description xml:lang="jp">グループ会員表示ウィジェットのデフォルトスキン</description>
<description xml:lang="en">Basic skin of group member display widget</description>
<description xml:lang="zh-CN">显示特定用户组会员列表的默认皮肤。</description>
</maker>
<colorset>
<color name="normal">
<title xml:lang="ko">기본 컬러</title>
<title xml:lang="jp">デフォルトカラー</title>
<title xml:lang="en">Default Color</title>
<title xml:lang="zh-CN">默认颜色</title>
</color>
</colorset>
</skin>