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,42 @@
<?php
/**
* @class DroArc_clock
* @author DroArc (ac7614@empas.com)
* @brief 플래시 시계 출력
* @version 0.1
**/
class DroArc_clock extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
*
* ./widgets/위젯/conf/info.xml 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
$colorset = $args->colorset;
// 템플릿 파일을 지정
$tpl_file = 'clock';
$clock_width = $args->clock_width;
if(!$clock_width) $clock_width = 150;
$clock_height = $args->clock_height;
if(!$clock_height) $clock_height = 64;
$widget_info->clock_width = $clock_width;
$widget_info->clock_height = $clock_height;
$widget_info->src = sprintf("%s%s/%s/clock.swf", Context::getRequestUri(), $tpl_path, $colorset);
Context::set('widget_info', $widget_info);
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
<title xml:lang="ko">플래시 디지털 시계</title>
<title xml:lang="zh-CN">Flash数字时钟</title>
<title xml:lang="jp">デジタル時計</title>
<title xml:lang="en">Flash digital Clock</title>
<author email_address="ac7614@empas.com" link="http://widz.inven.co.kr" date="2007. 7. 26">
<name xml:lang="ko">드로아크 </name>
<name xml:lang="zh-CN">DroArc</name>
<name xml:lang="jp">DroArc </name>
<name xml:lang="en">DroArc</name>
<description xml:lang="ko">플래쉬로 된 디지털 시계를 출력합니다.</description>
<description xml:lang="zh-CN">显示Flash数字时钟。</description>
<description xml:lang="jp">フラッシュのデジタル時計を表示します。</description>
<description xml:lang="en">This widget displays a digital clock made of flash.</description>
</author>
<extra_vars>
<var id="clock_width">
<name xml:lang="ko">가로길이</name>
<name xml:lang="zh-CN">宽度</name>
<name xml:lang="jp">横幅</name>
<name xml:lang="en">Width</name>
<type>text</type>
<description xml:lang="ko">가로길이를 지정하실 수 있습니다. (기본 150px)</description>
<description xml:lang="zh-CN">可以设置宽度大小。 (默认为 150px)</description>
<description xml:lang="jp">横幅のサイズを指定することができますデフォルト150px</description>
<description xml:lang="en">It will be able to set the width. (default is 150px)</description>
</var>
<var id="clock_height">
<name xml:lang="ko">세로길이</name>
<name xml:lang="zh-CN">高度</name>
<name xml:lang="jp">縦幅</name>
<name xml:lang="en">Height</name>
<type>text</type>
<description xml:lang="ko">세로길이를 지정하실 수 있습니다. (기본 64px)</description>
<description xml:lang="zh-CN">可以设置高度大小。(默认为 64px)</description>
<description xml:lang="jp">縦幅のサイズを指定することができますデフォルト64px</description>
<description xml:lang="en">It will be able to set the width. (default is 64px)</description>
</var>
</extra_vars>
</widget>

Binary file not shown.

View file

@ -0,0 +1,3 @@
<script type="text/javascript">
displayMultimedia("{$widget_info->src}", {$widget_info->clock_width}, {$widget_info->clock_height});
</script>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">플래시 디지털 시계</title>
<title xml:lang="zh-CN">Flash数字时钟</title>
<title xml:lang="en">Flash Digital Clock</title>
<maker email_address="ac7614@empas.com" link="http://widz.inven.co.kr" date="2007. 7. 26">
<name xml:lang="ko">드로아크</name>
<name xml:lang="zh-CN">DroArc</name>
<name xml:lang="en">DroArc</name>
<description xml:lang="ko">플래시 디지털 시계를 출력합니다.</description>
<description xml:lang="zh-CN">显示Flash数字时钟。</description>
<description xml:lang="en">It displays flash digital clock.</description>
</maker>
<colorset>
<color name="black">
<title xml:lang="ko">블랙</title>
<title xml:lang="zh-CN">黑色</title>
<title xml:lang="jp">ブラック</title>
<title xml:lang="en">Black</title>
</color>
<color name="pink">
<title xml:lang="ko">핑크</title>
<title xml:lang="zh-CN">粉红色</title>
<title xml:lang="jp">ピンク</title>
<title xml:lang="en">Pink</title>
</color>
<color name="green">
<title xml:lang="ko">그린</title>
<title xml:lang="zh-CN">绿色</title>
<title xml:lang="jp">グリーン</title>
<title xml:lang="en">Green</title>
</color>
<color name="red">
<title xml:lang="ko">레드</title>
<title xml:lang="zh-CN">红色</title>
<title xml:lang="jp">レッド</title>
<title xml:lang="en">Red</title>
</color>
<color name="orange">
<title xml:lang="ko">오렌지</title>
<title xml:lang="zh-CN">橘黄色</title>
<title xml:lang="jp">オレンジ</title>
<title xml:lang="en">Orange</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,49 @@
<?php
/**
* @class archive_list
* @author zero (zero@nzeo.com)
* @brief 보관현황 목록 출력
* @version 0.1
**/
class archive_list extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
*
* ./widgets/위젯/conf/info.xml 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 위젯 자체적으로 설정한 변수들을 체크
$title = $args->title;
$mid_list = explode(",",$args->mid_list);
// DocumentModel::getMonthlyArchivedList()를 이용하기 위한 변수 정리
$obj->mid = $mid_list;
// document 모듈의 model 객체를 받아서 getMonthlyArchivedList() method를 실행
$oDocumentModel = &getModel('document');
$output = $oDocumentModel->getMonthlyArchivedList($obj);
// 템플릿 파일에서 사용할 변수들을 세팅
if(count($mid_list)==1) $widget_info->module_name = $mid_list[0];
$widget_info->title = $title;
$widget_info->archive_list = $output->data;
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 = 'archive_list';
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

View file

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
<title xml:lang="ko">월별 보관 현황 출력</title>
<title xml:lang="zh-CN">存档</title>
<title xml:lang="jp">バックアップリスト</title>
<title xml:lang="en">Report of Stored-Articles by Month</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">
선택된 모듈의 월별 글 보관 현황을 보여줍니다.
글의 수가 너무 많을 경우 부하가 심해질 수 있습니다.
</description>
<description xml:lang="zh-CN">
按月统计被择模块的主题数。
主题过多可能会导致服务器超负荷运行。
</description>
<description xml:lang="jp">
選択されたモジュールの月別コンテンツのバクアップリストを表示します。書き込みが多いと負荷がかかる場合があります。
</description>
<description xml:lang="en">
This widget displays the present status of stored-articles selected module by month.
If there are lots of articles stored, the server may get a serious load.
</description>
</author>
<extra_vars>
<var id="title">
<name xml:lang="ko">제목</name>
<name xml:lang="zh-CN">栏目名</name>
<name xml:lang="jp">タイトル</name>
<name xml:lang="en">Title</name>
<type>text</type>
<description xml:lang="ko">보관 현황 제목으로 출력됩니다.</description>
<description xml:lang="zh-CN">将显示为存档标题。</description>
<description xml:lang="jp">バックアップリストのタイトルとして出力されます。</description>
<description xml:lang="en">It will be the title of the report.</description>
</var>
<var id="mid_list">
<name xml:lang="ko">대상 모듈</name>
<name xml:lang="zh-CN">对象模块</name>
<name xml:lang="jp">モジュール</name>
<name xml:lang="en">Target Module</name>
<type>mid_list</type>
<description xml:lang="ko">선택하신 모듈에 등록된 글을 대상으로 합니다.</description>
<description xml:lang="zh-CN">把被选模块作为统计对象。</description>
<description xml:lang="jp">チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。</description>
<description xml:lang="en">The target articles will be the ones submitted in the selected module.</description>
</var>
</extra_vars>
</widget>

View file

@ -0,0 +1,33 @@
<!-- 설정된 컬러셋의 종류에 따라서 css파일을 import 합니다 -->
<!--@if($colorset=="cyan")-->
<!--%import("css/cyan.css")-->
<!--@elseif($colorset=="green")-->
<!--%import("css/green.css")-->
<!--@elseif($colorset=="red")-->
<!--%import("css/red.css")-->
<!--@elseif($colorset=="purple")-->
<!--%import("css/purple.css")-->
<!--@else-->
<!--%import("css/normal.css")-->
<!--@end-->
<div id="archive">
<div class="header">
<!--@if($widget_info->title)-->
<h2>{$widget_info->title}</h2>
<!--@else-->
<h2>archives</h2>
<!--@end-->
</div>
<ul class="archiveList">
<!--@foreach($widget_info->archive_list as $val)-->
<!--@if($layout_info->mid)-->
<li><a href="{getUrl('','mid',$layout_info->mid,'search_target','regdate','search_keyword',$val->month)}">{zdate($val->month,'Y. m')}</a> ({$val->count})</li>
<!--@else-->
<li><a href="{getUrl('','mid',$mid,'search_target','regdate','search_keyword',$val->month)}">{zdate($val->month,'Y. m')}</a> ({$val->count})</li>
<!--@end-->
<!--@end-->
</ul>
</div>

View file

@ -0,0 +1,6 @@
div#archive { position:relative; border:1px solid #e0e1db; background:url(../images/cyan/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
div#archive h2 { position:relative; border-left:1px solid #ffffff; border-right:1px solid #ffffff; padding:7px 0 0 12px; height:21px; _height:20px; font-size:1em; color:#54564b; font-family:Tahoma;}
/*:first-child+html .boxTypeB h2 { height:20px;} */
div#archive .archiveList { padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
div#archive .archiveList li { font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; }
div#archive .archiveList li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}

View file

@ -0,0 +1,6 @@
div#archive { position:relative; border:1px solid #e0e1db; background:url(../images/green/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
div#archive h2 { position:relative; border-left:1px solid #ffffff; border-right:1px solid #ffffff; padding:7px 0 0 12px; height:21px; _height:20px; font-size:1em; color:#54564b; font-family:Tahoma;}
/*:first-child+html .boxTypeB h2 { height:20px;} */
div#archive .archiveList { padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
div#archive .archiveList li { font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; }
div#archive .archiveList li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}

View file

@ -0,0 +1,6 @@
div#archive { position:relative; border:1px solid #e0e1db; background:url(../images/normal/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
div#archive h2 { position:relative; border-left:1px solid #ffffff; border-right:1px solid #ffffff; padding:7px 0 0 12px; height:21px; _height:20px; font-size:1em; color:#54564b; font-family:Tahoma;}
/*:first-child+html .boxTypeB h2 { height:20px;} */
div#archive .archiveList { padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
div#archive .archiveList li { font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; }
div#archive .archiveList li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}

View file

@ -0,0 +1,6 @@
div#archive { position:relative; border:1px solid #e0e1db; background:url(../images/purple/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
div#archive h2 { position:relative; border-left:1px solid #ffffff; border-right:1px solid #ffffff; padding:7px 0 0 12px; height:21px; _height:20px; font-size:1em; color:#54564b; font-family:Tahoma;}
/*:first-child+html .boxTypeB h2 { height:20px;} */
div#archive .archiveList { padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
div#archive .archiveList li { font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; }
div#archive .archiveList li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}

View file

@ -0,0 +1,6 @@
div#archive { position:relative; border:1px solid #e0e1db; background:url(../images/red/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
div#archive h2 { position:relative; border-left:1px solid #ffffff; border-right:1px solid #ffffff; padding:7px 0 0 12px; height:21px; _height:20px; font-size:1em; color:#54564b; font-family:Tahoma;}
/*:first-child+html .boxTypeB h2 { height:20px;} */
div#archive .archiveList { padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
div#archive .archiveList li { font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; }
div#archive .archiveList li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

View file

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">월별 보관 현황 목록 출력</title>
<title xml:lang="jp">月別のアーカイブリスト表示</title>
<title xml:lang="zh-CN">存档列表默认皮肤</title>
<title xml:lang="en">Monthly Custody Status</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">월별 보관 현황 목록을 출력합니다.</description>
<description xml:lang="jp">月別のアーカイブリストを表示します。</description>
<description xml:lang="zh-CN">显示存档列表。</description>
<description xml:lang="en">It displays monthly custody status.</description>
</maker>
<colorset>
<color name="normal">
<title xml:lang="ko">기본 컬러</title>
<title xml:lang="jp">デフォルトカラー</title>
<title xml:lang="zh-CN">默认颜色</title>
<title xml:lang="en">Default color</title>
</color>
<color name="cyan">
<title xml:lang="ko">청록색</title>
<title xml:lang="jp">cyan</title>
<title xml:lang="zh-CN">青绿色</title>
<title xml:lang="en">cyan</title>
</color>
<color name="green">
<title xml:lang="ko">초록색</title>
<title xml:lang="jp">green</title>
<title xml:lang="zh-CN">绿色</title>
<title xml:lang="en">green</title>
</color>
<color name="red">
<title xml:lang="ko">빨간색</title>
<title xml:lang="jp">red</title>
<title xml:lang="zh-CN">红色</title>
<title xml:lang="en">red</title>
</color>
<color name="purple">
<title xml:lang="ko">보라색</title>
<title xml:lang="jp">purple</title>
<title xml:lang="zh-CN">紫色</title>
<title xml:lang="en">purple</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,33 @@
<!-- 설정된 컬러셋의 종류에 따라서 css파일을 import 합니다 -->
<!--%import("css/common.css")-->
<!--@if($colorset=="bluish_green")-->
<!--%import("css/bluish_green.css")-->
<!--@elseif($colorset=="green")-->
<!--%import("css/green.css")-->
<!--@elseif($colorset=="pink")-->
<!--%import("css/pink.css")-->
<!--@elseif($colorset=="blue")-->
<!--%import("css/blue.css")-->
<!--@else-->
<!--%import("css/red.css")-->
<!--@end-->
<div class="archiveBox">
<div class="header">
<!--@if($widget_info->title)-->
<h2>{$widget_info->title}</h2>
<!--@else-->
<h2>archives</h2>
<!--@end-->
</div>
<ul>
<!--@foreach($widget_info->archive_list as $val)-->
<!--@if($layout_info->mid)-->
<li><a href="{getUrl('','mid',$layout_info->mid,'search_target','regdate','search_keyword',$val->month)}">{zdate($val->month,'Y. m')}</a> ({$val->count})</li>
<!--@else-->
<li><a href="{getUrl('','mid',$mid,'search_target','regdate','search_keyword',$val->month)}">{zdate($val->month,'Y. m')}</a> ({$val->count})</li>
<!--@end-->
<!--@end-->
</ul>
</div>

View file

@ -0,0 +1 @@
div.archiveBox .header h2 { font-size:1em; color:#1187d8;}

View file

@ -0,0 +1 @@
div.archiveBox .header h2 { font-size:1em; color:#9ab09f;}

View file

@ -0,0 +1,11 @@
div.archiveBox { padding-bottom:1em;}
div.archiveBox .header { padding:7px 0 0 12px; height:21px; _height:20px; background:#f5f5f5; }
*:first-child+html div.archiveBox .header { height:20px; color:#ef2121;}
div.archiveBox ul { padding:.5em; overflow:hidden;}
div.archiveBox ul li { color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-size:.9em;}
div.archiveBox ul li a { font-size:.9em; color:#a4a4a4;}
div.archiveBox ul li.typeA a { color:#717171; font-weight:bold;}
div.archiveBox ul li.typeB a { color:#3d3d3d;}
div.archiveBox ul li.typeC a { font-weight:bold;}
div.archiveBox .tag_sort { width:100%; border-top:1px dashed #ababab; border-bottom:1px dashed #ababab; text-align:center; overflow:hidden;}

View file

@ -0,0 +1 @@
div.archiveBox .header h2 { font-size:1em; color:#8dc63f;}

View file

@ -0,0 +1 @@
div.archiveBox .header h2 { font-size:1em; color:#f70795;}

View file

@ -0,0 +1 @@
div.archiveBox .header h2 { font-size:1em; color:#ef2121;}

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">cozy simple</title>
<title xml:lang="jp">Cozyシンプル</title>
<title xml:lang="en">cozy simple skin</title>
<title xml:lang="zh-CN">Cozy样式皮肤</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="jp">제로</name>
<name xml:lang="en">zero</name>
<name xml:lang="zh-CN">Zero</name>
<description xml:lang="ko">
cozy simple 위젯입니다.
디자인 : 서기정 (http://blog.naver.com/addcozy)
HTML/CSS : 소지훈
</description>
<description xml:lang="jp">
Cozyシンプルウィジェットです。
デザインソギジョンhttp://blog.naver.com/addcozy
HTML/CSSソジフン
</description>
<description xml:lang="en">
This is cozy simple widget.
Design : Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSS : Ji-Hun So
</description>
<description xml:lang="zh-CN">
Cozy样式皮肤。
设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSS : Ji-Hun So
</description>
</maker>
<colorset>
<color name="red">
<title xml:lang="ko">빨간색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Red</title>
<title xml:lang="zh-CN">红色</title>
</color>
<color name="green">
<title xml:lang="ko">초록색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Green</title>
<title xml:lang="zh-CN">绿色</title>
</color>
<color name="blue">
<title xml:lang="ko">파란색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Blue</title>
<title xml:lang="zh-CN">蓝色</title>
</color>
<color name="pink">
<title xml:lang="ko">분홍색</title>
<title xml:lang="jp">ピンク</title>
<title xml:lang="en">Pink</title>
<title xml:lang="zh-CN">粉红色</title>
</color>
<color name="bluish_green">
<title xml:lang="ko">청록색</title>
<title xml:lang="jp">青緑</title>
<title xml:lang="en">Cyan</title>
<title xml:lang="zh-CN">青绿色</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,65 @@
<?php
/**
* @class calendar
* @author zero (zero@nzeo.com)
* @brief 보관현황 목록 출력
* @version 0.1
**/
class calendar extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
*
* ./widgets/위젯/conf/info.xml 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 위젯 자체적으로 설정한 변수들을 체크
$title = $args->title;
$mid_list = explode(",",$args->mid_list);
// DocumentModel::getDailyArchivedList()를 이용하기 위한 변수 정리
$obj->mid = $mid_list;
if(Context::get('search_target')=='regdate') {
$regdate = Context::get('search_keyword');
if($regdate) $obj->regdate = zdate($regdate, 'Ym');
}
if(!$obj->regdate) $obj->regdate = date('Ym');
// document 모듈의 model 객체를 받아서 getDailyArchivedList() method를 실행
$oDocumentModel = &getModel('document');
$output = $oDocumentModel->getDailyArchivedList($obj);
// 템플릿 파일에서 사용할 변수들을 세팅
$widget_info->cur_date = $obj->regdate;
$widget_info->today_str = sprintf('%4d%s %2d%s',zdate($obj->regdate, 'Y'), Context::getLang('unit_year'), zdate($obj->regdate,'m'), Context::getLang('unit_month'));
$widget_info->last_day = date('t', ztime($obj->regdate));
$widget_info->start_week= date('w', ztime($obj->regdate));
$widget_info->prev_month = date('Ym', mktime(1,0,0,zdate($obj->regdate,'m'),1,zdate($obj->regdate,'Y'))-60*60*24);
$widget_info->next_month = date('Ym', mktime(1,0,0,zdate($obj->regdate,'m'),$widget_info->last_day,zdate($obj->regdate,'Y'))+60*60*24);
if(count($mid_list)==1) $widget_info->module_name = $mid_list[0];
$widget_info->title = $title;
if(count($output->data)) {
foreach($output->data as $key => $val) $widget_info->calendar[$val->month] = $val->count;
}
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 = 'calendar';
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
<title xml:lang="ko">달력 출력</title>
<title xml:lang="zh-CN">日历</title>
<title xml:lang="jp">カレンダー表示</title>
<title xml:lang="en">Display Calendar</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">달력을 표시하고 등록된 글이 있는 날에 표시와 링크를 해줍니다.</description>
<description xml:lang="zh-CN">显示日历,发表主题日期将跟日历相关联。</description>
<description xml:lang="jp">カレンダーを表示して書き込みがあった日にリンクを張ります。</description>
<description xml:lang="en">This widget displays a calendar, and if there is an article submitted, the date will be highlighted with its url link.</description>
</author>
<extra_vars>
<var id="mid_list">
<name xml:lang="ko">대상 모듈</name>
<name xml:lang="zh-CN">模块对象</name>
<name xml:lang="jp">モジュール</name>
<name xml:lang="en">Target Module</name>
<type>mid_list</type>
<description xml:lang="ko">선택하신 모듈에 등록된 글을 대상으로 합니다.</description>
<description xml:lang="zh-CN">将把被选模块作为关联对象。</description>
<description xml:lang="jp">チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。</description>
<description xml:lang="en">The target articles will be the ones submitted in the selected module.</description>
</var>
</extra_vars>
</widget>

View file

@ -0,0 +1,60 @@
<!-- 설정된 컬러셋의 종류에 따라서 css파일을 import 합니다 -->
<!--%import("css/normal.css")-->
<div id="calendar">
<table cellspacing="0">
<caption>
<a href="{getUrl('search_target','regdate','search_keyword',$widget_info->prev_month)}"><img src="./images/buttonArrowCalendarLeft.gif" alt="prev" height="13" width="13"></a>{zdate($widget_info->cur_date,"Y")}.<span class="mm">{zdate($widget_info->cur_date,"m")}</span><a href="{getUrl('search_target','regdate','search_keyword',$widget_info->next_month)}"><img src="./images/buttonArrowCalendarRight.gif" alt="next" height="13" width="13"></a>
</caption>
{@ $day = ''}
<tbody>
<!--@for($i=0;$i<6;$i++)-->
<!--@if($day < $widget_info->last_day)-->
<tr>
<!--@for($j=0;$j<7;$j++)-->
{@ $num = $i*7 + $j}
<!--@if(!$started && $num >= $widget_info->start_week)-->
{@ $started = true}
{@ $day = 1}
{@ $cur_date = $widget_info->cur_date.sprintf('%02d',$day) }
<!--@elseif($started)-->
{@ $day++}
{@ $cur_date = $widget_info->cur_date.sprintf('%02d',$day) }
<!--@end-->
<!--@if($cur_date == date("Ymd"))-->{@ $today_class = "today"}<!--@else-->{@ $today_class = ""}<!--@end-->
<!--@if($j==0)-->{@ $cell_class_name = "sun"}<!--@else-->{@ $cell_class_name = ""}<!--@end-->
<!--@if($widget_info->calendar[$cur_date])-->
{@ $item_class_name = "posted"}
<!--@if($layout_info->mid)-->
{@ $day_link = getUrl('','mid',$layout_info->mid,'search_target','regdate','search_keyword',$cur_date) }
<!--@else-->
{@ $day_link = getUrl('','mid',$mid,'search_target','regdate','search_keyword',$cur_date) }
<!--@end-->
<!--@else-->
{@ $item_class_name = ""}
{@ $day_link = ''}
<!--@end-->
<td class="{$today_class} {$cell_class_name} {$item_class_name}">
<!--@if($day <= $widget_info->last_day)-->
<!--@if($day_link)-->
<a href="{$day_link}">{$day}</a>
<!--@else-->
{$day}
<!--@end-->
<!--@end-->
</td>
<!--@end-->
</tr>
<!--@end-->
<!--@end-->
</tbody>
</table>
</div>

View file

@ -0,0 +1,18 @@
/* Calendar */
div#calendar { padding:1.2em .8em; position:relative; border:1px solid #e0e1db; margin-bottom:.7em;}
div#calendar table { width:100%;}
div#calendar table caption { font:bold 1.5em Tahoma; color:#9a9a9a; padding-bottom:.6em;}
div#calendar table caption .mm { font:bold 1em Tahoma; color:#54564b;}
div#calendar table caption a { padding:.2em;}
div#calendar table caption a img { vertical-align:middle;}
div#calendar table th,
div#calendar table td { padding:.25em 0;}
div#calendar table th { font-weight:normal; font-size:.9em; color:#9a9a9a;}
div#calendar table th.sun { color:#fe3614;}
div#calendar table td { text-align:center;}
div#calendar table td a { font:.9em Tahoma; color:#9a9a9a;}
div#calendar table td.sun { color:#fe3614;}
div#calendar table td.sun a { color:#fe3614;}
div#calendar table td.today { font-weight:bold; color:#54564b;}
div#calendar table td.today a { font-weight:bold; color:#54564b;}
div#calendar table td.posted a { text-decoration:underline;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">달력 및 글 현황 표시</title>
<title xml:lang="jp">カレンダーと書き込みリンク表示</title>
<title xml:lang="zh-CN">日历默认皮肤</title>
<title xml:lang="en">Display Calendar and Article Status</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">calendar위젯의 블로그에 어울리는 기본 스킨입니다.</description>
<description xml:lang="jp">カレンダーcalendarウィジェットのブログに適したデフォルトスキンです。</description>
<description xml:lang="zh-CN">适合用于博客的日历默认皮肤。</description>
<description xml:lang="en">It is a default skin which matches with calendar widget's blog well.</description>
</maker>
<colorset>
<color name="normal">
<title xml:lang="ko">기본 컬러</title>
<title xml:lang="jp">デフォルトカラー</title>
<title xml:lang="zh-CN">默认颜色</title>
<title xml:lang="en">Default color</title>
</color>
<color name="cyan">
<title xml:lang="ko">청록색</title>
<title xml:lang="jp">cyan</title>
<title xml:lang="zh-CN">青绿色</title>
<title xml:lang="en">cyan</title>
</color>
<color name="green">
<title xml:lang="ko">초록색</title>
<title xml:lang="jp">green</title>
<title xml:lang="zh-CN">绿色</title>
<title xml:lang="en">green</title>
</color>
<color name="red">
<title xml:lang="ko">빨간색</title>
<title xml:lang="jp">red</title>
<title xml:lang="zh-CN">红色</title>
<title xml:lang="en">red</title>
</color>
<color name="purple">
<title xml:lang="ko">보라색</title>
<title xml:lang="jp">purple</title>
<title xml:lang="zh-CN">紫色</title>
<title xml:lang="en">purple</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,84 @@
<!-- 설정된 컬러셋의 종류에 따라서 css파일을 import 합니다 -->
<!--%import("css/common.css")-->
<!--@if($colorset=="bluish_green")-->
<!--%import("css/bluish_green.css")-->
<!--@elseif($colorset=="green")-->
<!--%import("css/green.css")-->
<!--@elseif($colorset=="pink")-->
<!--%import("css/pink.css")-->
<!--@elseif($colorset=="blue")-->
<!--%import("css/blue.css")-->
<!--@else-->
{@ $colorset = "red" }
<!--%import("css/red.css")-->
<!--@end-->
<div class="calendarBox">
<table cellspacing="0">
<caption>
<span class="fl">{zdate($widget_info->cur_date,"Y")}.<span class="mm">{zdate($widget_info->cur_date,"m")}</span></span>
<span class="fr"><a href="{getUrl('search_target','regdate','search_keyword',$widget_info->prev_month)}"><img src="./images/{$colorset}/buttonArrowCalendarLeft.gif" alt="prev"></a><a href="{getUrl('search_target','regdate','search_keyword',$widget_info->next_month)}"><img src="./images/{$colorset}/buttonArrowCalendarRight.gif" alt="next"></a></span>
</caption>
<thead>
<tr>
<th class="sun" scope="col">S</th>
<th scope="col">M</th>
<th scope="col">T</th>
<th scope="col">W</th>
<th scope="col">T</th>
<th scope="col">F</th>
<th scope="col">S</th>
</tr>
</thead>
{@ $day = ''}
<tbody>
<!--@for($i=0;$i<6;$i++)-->
<!--@if($day < $widget_info->last_day)-->
<tr>
<!--@for($j=0;$j<7;$j++)-->
{@ $num = $i*7 + $j}
<!--@if(!$started && $num >= $widget_info->start_week)-->
{@ $started = true}
{@ $day = 1}
{@ $cur_date = $widget_info->cur_date.sprintf('%02d',$day) }
<!--@elseif($started)-->
{@ $day++}
{@ $cur_date = $widget_info->cur_date.sprintf('%02d',$day) }
<!--@end-->
<!--@if($cur_date == date("Ymd"))-->{@ $today_class = "today"}<!--@else-->{@ $today_class = ""}<!--@end-->
<!--@if($j==0)-->{@ $cell_class_name = "sun"}<!--@else-->{@ $cell_class_name = ""}<!--@end-->
<!--@if($widget_info->calendar[$cur_date])-->
{@ $item_class_name = "posted"}
<!--@if($layout_info->mid)-->
{@ $day_link = getUrl('','mid',$layout_info->mid,'search_target','regdate','search_keyword',$cur_date) }
<!--@else-->
{@ $day_link = getUrl('','mid',$mid,'search_target','regdate','search_keyword',$cur_date) }
<!--@end-->
<!--@else-->
{@ $item_class_name = ""}
{@ $day_link = ''}
<!--@end-->
<td class="{$today_class} {$cell_class_name} {$item_class_name}">
<!--@if($day <= $widget_info->last_day)-->
<!--@if($day_link)-->
<a href="{$day_link}">{$day}</a>
<!--@else-->
{$day}
<!--@end-->
<!--@end-->
</td>
<!--@end-->
</tr>
<!--@end-->
<!--@end-->
</tbody>
</table>
</div>

View file

@ -0,0 +1 @@
div.calendarBox table caption { font:bold 1em ; color:#1187d8; padding:1em;}

View file

@ -0,0 +1 @@
div.calendarBox table caption { font:bold 1em ; color:#9ab09f; padding:1em;}

View file

@ -0,0 +1,17 @@
div.calendarBox {}
div.calendarBox table { width:100%; background:url(../images/bg_line_dot_x.gif) repeat-x left top;}
div.calendarBox table caption .mm { font:bold 1em ; color:#555650;}
div.calendarBox table caption a { padding:.2em;}
div.calendarBox table caption a img { vertical-align:middle;}
div.calendarBox table th { padding:.6em 0;}
div.calendarBox table td { padding:.25em 0;}
div.calendarBox table th { font:bold .7em tahoma; color:#717171;}
div.calendarBox table th.sun { color:#000000;}
div.calendarBox table td { text-align:center; font:.8em Tahoma; color:#9a9a9a;}
div.calendarBox table td a { font:.7em Tahoma; color:#9a9a9a;}
div.calendarBox table td.sun { color:#000000;}
div.calendarBox table td.sun a { color:#000000;}
div.calendarBox table td.today a { font-weight:bold; color:#54564b;}
div.calendarBox table td.posted a { text-decoration:underline;}

View file

@ -0,0 +1 @@
div.calendarBox table caption { font:bold 1em ; color:#8dc63f; padding:1em;}

View file

@ -0,0 +1 @@
div.calendarBox table caption { font:bold 1em ; color:#f70795; padding:1em;}

View file

@ -0,0 +1 @@
div.calendarBox table caption { font:bold 1em ; color:#ec1a25; padding:1em;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 B

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">cozy simple</title>
<title xml:lang="jp">Cozyシンプル</title>
<title xml:lang="en">cozy simple skin</title>
<title xml:lang="zh-CN">Cozy样式皮肤</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<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">
cozy simple 위젯입니다.
디자인 : 서기정 (http://blog.naver.com/addcozy)
HTML/CSS : 소지훈
</description>
<description xml:lang="jp">
Cozyシンプルウィジェットです。
デザインソギジョンhttp://blog.naver.com/addcozy
HTML/CSSソジフン
</description>
<description xml:lang="en">
This is cozy simple widget.
Design : Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSS : Ji-Hun So
</description>
<description xml:lang="zh-CN">
Cozy样式皮肤。
设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSS : Ji-Hun So
</description>
</maker>
<colorset>
<color name="red">
<title xml:lang="ko">빨간색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Red</title>
<title xml:lang="zh-CN">红色</title>
</color>
<color name="green">
<title xml:lang="ko">초록색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Green</title>
<title xml:lang="zh-CN">绿色</title>
</color>
<color name="blue">
<title xml:lang="ko">파란색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Blue</title>
<title xml:lang="zh-CN">蓝色</title>
</color>
<color name="pink">
<title xml:lang="ko">분홍색</title>
<title xml:lang="jp">ピンク</title>
<title xml:lang="en">Pink</title>
<title xml:lang="zh-CN">粉红色</title>
</color>
<color name="bluish_green">
<title xml:lang="ko">청록색</title>
<title xml:lang="jp">青緑</title>
<title xml:lang="en">Cyan</title>
<title xml:lang="zh-CN">青绿色</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,30 @@
<?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">Basic Counter Widget</title>
<title xml:lang="zh-CN">计数器</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<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">
기본 카운터 모듈을 이용하여 전체, 어제, 오늘의 접속현황을 표시합니다.
counter모듈이 설치되어 있어야 하고 counter 애드온이 켜져 있어야 합니다.
</description>
<description xml:lang="jp">
デフォルトの接続カウンターモジュールを利用して、トータル、昨日、今日の接続状況を表示します。カウンターcounterモジュールがインストールされていて、接続カウンターcounterアドオンが「使用」に設定されていなければなりません。
</description>
<description xml:lang="en">
This widget displays the number of people who have visited yesterday and today by using the basic counter module.
It will also display the total count.
To get this, the counter module should be installed and the counter add-on should be turned on.
</description>
<description xml:lang="zh-CN">
利用访问统计模块显示总访问量以及昨天,今日的访问统计流量。
要想使用此组件必须先安装访问统计模块且得激活访问统计插件。
</description>
</author>
<extra_vars />
</widget>

View file

@ -0,0 +1,39 @@
<?php
/**
* @class counter_status
* @author zero (zero@nzeo.com)
* @version 0.1
* @brief counter 모듈의 데이터를 이용하여 counter 현황을 출력
**/
class counter_status extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
* ./widgets/위젯/conf/info.xml에 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 전체, 어제, 오늘 접속 현황을 가져옴
$oCounterModel = &getModel('counter');
$output = $oCounterModel->getStatus(array('00000000', date('Ymd', time()-60*60*24), date('Ymd')));
foreach($output as $key => $val) {
if(!$key) Context::set('total_counter', $val);
elseif($key == date("Ymd")) Context::set('today_counter', $val);
else Context::set('yesterday_counter', $val);
}
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
Context::set('colorset', $args->colorset);
// 템플릿 파일을 지정
$tpl_file = 'counter_status';
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

View file

@ -0,0 +1,21 @@
<!--@if($colorset == "normal")-->
<!--%import("normal/style.css")-->
<!--@end-->
<div class="counter_widget">
<ul>
<!--@if($total_counter)-->
<li><strong>Total</strong> : {$total_counter->unique_visitor}</li>
<!--@end-->
<!--@if($today_counter)-->
<li><strong>Today</strong> : {$today_counter->unique_visitor}</li>
<!--@end-->
<!--@if($yesterday_counter)-->
<li><strong>Yesterday</strong> : {$yesterday_counter->unique_visitor}</li>
<!--@end-->
</ul>
</div>

View file

@ -0,0 +1,10 @@
.counter_widget {
border:3px solid #DDDDDD;
padding:6px;
margin-bottom:10px;
color:#999999;
font-family:tahoma;
font-size:8pt;
}
.counter_widget ul { list-style:none; }

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="zh-CN">计数器默认皮肤</title>
<title xml:lang="en">Default Counter Skin </title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">counter_status 의 기본 스킨</description>
<description xml:lang="jp">接続統計counter_statusのデフォルトスキン</description>
<description xml:lang="zh-CN">计数器默认皮肤。</description>
<description xml:lang="en">Default skin of counter_status</description>
</maker>
<colorset>
<color name="normal">
<title xml:lang="ko">기본</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="en">default</title>
<title xml:lang="zh-CN">默认</title>
</color>
</colorset>
</skin>

Binary file not shown.

View file

@ -0,0 +1,3 @@
<script type="text/javascript">
displayMultimedia("{$tpl_path}counter.swf?n={$today_counter->unique_visitor},{$yesterday_counter->unique_visitor},{$total_counter->unique_visitor}", 180, 60);
</script>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<skin>
<title xml:lang="ko">스틱스 플래시 카운터</title>
<title xml:lang="jp">スティクスフラッシュカウンター</title>
<title xml:lang="zh-CN">styx flash 计数器皮肤</title>
<title xml:lang="en">Styx Flash Counter</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">styx</name>
<name xml:lang="zh-CN">styx</name>
<name xml:lang="en">styx</name>
<description xml:lang="ko">플래시로 오늘,어제,전체 카운터 현황을 출력해주시는 위젯입니다.</description>
<description xml:lang="jp">フラッシュで、今日、昨日、トータルの接続数を表示させるウィジェットです。</description>
<description xml:lang="zh-CN">用flash显示今天昨天全部访问统计的控件。</description>
<description xml:lang="en">This is a widget that displays today, yesterday, all counter status with flash.</description>
</maker>
<colorset>
<color name="normal">
<title xml:lang="ko">기본</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="en">default</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
<title xml:lang="ko">언어 선택</title>
<title xml:lang="jp">言語選択</title>
<title xml:lang="zh-CN">多国语言切换</title>
<title xml:lang="en">Language Selection</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">zero</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">사용자의 접속언어를 변경할 수 있는 select폼을 출력합니다.</description>
<description xml:lang="jp">言語を変更することができるセレクトselectフォームを表示します。</description>
<description xml:lang="zh-CN">可以实现多国语言相互切换。</description>
<description xml:lang="en">This widget displays a select form for change of users' language.</description>
</author>
<extra_vars />
</widget>

View file

@ -0,0 +1,27 @@
<?php
/**
* @class language_select
* @author zero (zero@zeroboard.com)
* @brief 언어선택기
* @version 0.1
**/
class language_select extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
*
* ./widgets/위젯/conf/info.xml 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
$tpl_file = 'language_select';
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

View file

@ -0,0 +1,10 @@
<div class="tCenter">
<select name="lang_type" onchange="doChangeLangType(this)">
<option value="{$lang_type}">{$lang_type}</option>
<!--@foreach($lang_supported as $val)-->
<!--@if($val != $lang_type)-->
<option value="{$val}">{$val}</option>
<!--@end-->
<!--@end-->
</select>
</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="zh-CN">多国语言切换</title>
<title xml:lang="en">Display Language</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">zero</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">스킨 기능이 없습니다</description>
<description xml:lang="jp">スキン機能がありません。</description>
<description xml:lang="zh-CN">不支持皮肤。</description>
<description xml:lang="en">There is no skin function</description>
</maker>
<colorset>
<color name="normal">
<title xml:lang="ko">기본</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="en">default</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<widget version="0.1">
<title xml:lang="ko">로그인 정보 출력</title>
<title xml:lang="zh-CN">登陆表单</title>
<title xml:lang="jp">ログイン情報表示</title>
<title xml:lang="en">Display Login Info</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">로그인 폼이나 로그인 정보를 출력합니다</description>
<description xml:lang="zh-CN">显示登陆表单或登陆信息。</description>
<description xml:lang="jp">ログインフォームまたはログイン情報を表示します。</description>
<description xml:lang="en">This widget displays login form or login info.</description>
</author>
<extra_vars />
</widget>

View file

@ -0,0 +1,39 @@
<?php
/**
* @class login_info
* @author zero (zero@nzeo.com)
* @version 0.1
* @brief 로그인 폼을 출력하는 위젯
*
* $logged_info를 이용하며 이는 미리 설정되어 있음
**/
class login_info extends WidgetHandler {
/**
* @brief 위젯의 실행 부분
* ./widgets/위젯/conf/info.xml에 선언한 extra_vars를 args로 받는다
* 결과를 만든후 print가 아니라 return 해주어야 한다
**/
function proc($args) {
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
Context::set('colorset', $args->colorset);
// 템플릿 파일을 지정
if(Context::get('is_logged')) $tpl_file = 'login_info';
else $tpl_file = 'login_form';
// 회원 관리 정보를 받음
$oModuleModel = &getModel('module');
$this->member_config = $oModuleModel->getModuleConfig('member');
Context::set('member_config', $this->member_config);
// 템플릿 컴파일
$oTemplate = &TemplateHandler::getInstance();
return $oTemplate->compile($tpl_path, $tpl_file);
}
}
?>

View file

@ -0,0 +1,41 @@
.fc_01 { color:#797771; }
.fc_02 { color:#9A9893; }
.box_login { border:solid 3px #D5D8DB; background:#FFFFFE; margin-bottom:10px;}
.box_login .user_info { padding:5px 0 0 5px; height:22px; }
.box_login .hr_dot_01 { background:url(../images/default/hr_dot_01.gif) repeat-x; height:2px; overflow:hidden; clear:both; margin:6px; }
.box_login .item { background:url(../images/default/bul_01.gif) no-repeat 5px 5px; height:16px; padding:3px 0px 0px 20px; margin-left:5px; margin-top:2px; }
.box_login .item a { color:#666666; text-decoration:none; }
.box_login .item { font-size:11px; letter-spacing:-1px; margin-right:10px; padding:3px 0px 0px 20px; white-space:nowrap; }
.box_login .profile { width:70px; float:left; background:url(../images/default/icon_profile.gif) no-repeat left; }
.box_login .message { width:70px; float:left; background:url(../images/default/icon_note.gif) no-repeat left; }
.box_login .friend { float:left; background:url(../images/default/icon_friend.gif) no-repeat left; }
.box_login .administrative { float:left; background:url(../images/default/icon_key.gif) no-repeat left; margin-right:0px; }
.box_login .administrative a { color:#D80D0F; }
.box_login .lastlogin { clear:both; padding-bottom:5px;}
.box_login .form_field { float:left; margin:9px 9px 0 9px; _margin:3px 3px 0 3px; height:55px; }
.box_login .form_field div { margin-top:2px; margin-bottom:3px; }
.box_login input.submit { width:45px; height:45px; background:url(../images/default/login_btn_submit.gif) no-repeat; border:none; margin:9px 0 0 0; _margin:5px 0 0 0; cursor:pointer; }
.box_login .input { width:140px; background-color: #ffffff; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; padding:2px; height:14px; margin:0px; cursor:text; color:#666666;}
.box_login ul.option { clear:both; height:20px; margin:0 0 0 9px;}
.box_login ul.option li { float:left; list-style:none;}
.box_login ul.option li a.btn { background:url(../images/default/bul_01.gif) no-repeat left; padding-left:10px; margin-left:14px; }
.box_login .checkbox { width:15px; height:15px; margin:-1px 0px 0px -1px; margin-right:2px; }
.box_login .clear { clear:both; }
.openid_login { clear:both; height:38px; border:3px solid #D5D8DB; background-color:#FFFFFF; margin:0 0 10px 0; }
.openid_login .openid_user_id { width:110px; _width:100px; background: url(../images/openid_login_bg.gif) left no-repeat; background-color: #ffffff; background-position: 0 50%; padding:3px 3px 3px 18px; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; height:16px; line-height:1em; vertical-align:middle; margin-bottom:.5em; color:#666666;}
.openid_login .wButtonTypeA { display:block; cursor:pointer; background:url(../images/default/buttonTypeACenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; white-space:nowrap;border:0px;}
.openid_login .wButtonTypeA:hover { text-decoration:none;}
.openid_login .wButtonTypeA img { vertical-align:middle;}
.openid_login .wButtonTypeA input { border:none; cursor:pointer; background:url(../images/default/buttonTypeACenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; white-space:nowrap;border:0px; vertical-align:middle; }
.openid_login .wButtonTypeA .leftCap { width:2px; height:24px; background:url(../images/default/buttonTypeALeft.gif) no-repeat; margin:0 .3em 0 0; position:relative; left:-1px;}
.openid_login .wButtonTypeA .rightCap { width:2px; height:24px; background:url(../images/default/buttonTypeARight.gif) no-repeat; margin:0 -1px 0 .4em;}
.openid_login .wButtonTypeA .icon { margin:0 .2em;}
.openid_login .wButtonWrite ul { text-align:center; clear:both; display:block;}
.openid_login .wButtonWrite li { margin-top:.5em; float:left; margin-left:.3em; list-style:none;}

View file

@ -0,0 +1,14 @@
<filter name="widget_login" module="member" act="procMemberLogin">
<form>
<node target="user_id" required="true" filter="user_id"/>
<node target="password" required="true" />
</form>
<parameter>
<param name="user_id" target="user_id" />
<param name="password" target="password" />
</parameter>
<response callback_func="completeLogin">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,7 @@
<filter name="widget_logout" module="member" act="procMemberLogout">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,10 @@
<filter name="openid_login" module="member" act="procMemberOpenIDLogin">
<form>
<node target="user_id" required="true" />
</form>
<parameter />
<response callback_func="completeOpenIDLogin">
<tag name="error" />
<tag name="message" />
</response>
</filter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

View file

@ -0,0 +1,36 @@
/* 로그인 영역에 포커스 */
function doFocusUserId(fo_id) {
var fo_obj = xGetElementById(fo_id);
if(xGetCookie('user_id')) {
fo_obj.user_id.value = xGetCookie('user_id');
fo_obj.remember_user_id.checked = true;
try{
fo_obj.password.focus();
} catch(e) {};
} else {
try{
fo_obj.user_id.focus();
} catch(e) {};
}
}
/* 로그인 후 */
function completeLogin(ret_obj, response_tags, params, fo_obj) {
if(fo_obj.remember_user_id && fo_obj.remember_user_id.checked) {
var expire = new Date();
expire.setTime(expire.getTime()+ (7000 * 24 * 3600000));
xSetCookie('user_id', fo_obj.user_id.value, expire);
}
var url = current_url.setQuery('act','');
location.href = url;
}
/* 오픈아이디 로그인 후 */
function completeOpenIDLogin(ret_obj, response_tags) {
var redirect_url = ret_obj['redirect_url'];
location.href = redirect_url;
}

View file

@ -0,0 +1,47 @@
<!-- colorset의 값에 따라 css 파일을 import 한다 -->
<!--@if($colorset=="default"||!$colorset)-->
<!--%import("css/default.css")-->
<!--@end-->
<!--%import("./filter/login.xml")-->
<!--%import("./filter/openid_login.xml")-->
<!--%import("./js/login.js")-->
<div class="box_login fc_01" id="box_login">
<form action="./" method="get" onsubmit="return procFilter(this, widget_login)" id="fo_login_widget">
<div class="form_field">
<div>
<input name="user_id" type="text" class="input" id="login_form_user_id" />
</div>
<div>
<input name="password" type="password" class="input" />
</div>
</div>
<div><input type="submit" value=" " class="submit" /></div>
<ul class="option">
<li><input type="checkbox" name="remember_user_id" id="chk_remember_user_id" value="Y" class="checkbox" /></li>
<li><label for="chk_remember_user_id">{$lang->remember_user_id}</label></li>
<li><a href="{getUrl('act','dispMemberSignUpForm')}" class="fc_02 btn">{$lang->cmd_signup}</a></li>
</ul>
</form>
<div class="clear"></div>
<script type="text/javascript">
xAddEventListener(window, "load", function(){ doFocusUserId("fo_login_widget"); });
</script>
</div>
<!-- OpenID -->
<!--@if($member_config->enable_openid=='Y')-->
<div class="openid_login fc_01" id="box_login">
<form action="./" method="post" onsubmit="return procFilter(this, openid_login)" >
<div class="wButtonWrite">
<ul>
<li><input type="text" name="user_id" class="openid_user_id" /></li>
<li><span class="wButtonTypeA"><img src="./images/blank.gif" alt="" class="leftCap" /><input type="submit" value="{$lang->cmd_login}" accesskey="s" /><img src="./images/blank.gif" alt="" class="rightCap" /></span></li>
</ul>
</div>
</form>
</div>
<!--@end-->

View file

@ -0,0 +1,22 @@
<!-- colorset의 값에 따라 css 파일을 import 한다 -->
<!--@if($colorset=="default"||!$colorset)-->
<!--%import("css/default.css")-->
<!--@end-->
<!--%import("./filter/logout.xml")-->
<div class="box_login">
<div class="user_info">
<div class="fl"><div class="member_{$logged_info->member_srl} fl fc_01">{$logged_info->nick_name}</div></div>
<div class="fr tRight"><a href="{getUrl('act','dispMemberLogout')}" class="button"><span>{$lang->cmd_logout}</span></a></div>
</div>
<div class="hr_dot_01"></div>
<div class="item profile"><a href="{getUrl('act','dispMemberInfo','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_member_info}</a></div>
<div class="item friend"><a href="{getUrl('act','dispMemberFriend','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_friend}</a></div>
<div class="item message"><a href="{getUrl('act','dispMemberMessages','member_srl',$logged_info->member_srl)}">{$lang->cmd_view_message_box}</a></div>
<!--@if($logged_info->is_admin=="Y")-->
<div class="item administrative"><a href="{getUrl('','module','admin')}" onclick="window.open(this.href);return false;">{$lang->cmd_management}</a></div>
<!--@end-->
<div class="item lastlogin fc_02">{$lang->last_login} : {zDate($logged_info->last_login, "Y-m-d H:i")}</div>
</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="zh-CN">登陆表单默认皮肤</title>
<title xml:lang="en">Default Login Info Display Skin</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="jp">Zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">기본 스킨</description>
<description xml:lang="jp">ログイン情報表示login_infoのデフォルトスキン</description>
<description xml:lang="zh-CN">登陆表单默认皮肤。</description>
<description xml:lang="en">default skin</description>
</maker>
<colorset>
<color name="default">
<title xml:lang="ko">기본</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="en">default</title>
</color>
</colorset>
</skin>

View file

@ -0,0 +1,42 @@
#login { border:2px solid #515151; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#black #login { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #6b6b6b; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left;}
#login form .idpw input { border:1px solid #6b6b6b; color:#cbcbcb; width:105px; background:#515151; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body#black #login form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#818181;}
#login form ul.help { border-top:1px solid #515151; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { list-style:none; float:left; display:block; padding:0 3px 0 7px; background:url(../images/black/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#818181; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none;}
#login form ul.help li a:hover { text-decoration:underline;}
#login form ul.help li.first-child a { color:#cbcbcb;}
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #515151; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#cbcbcb; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right;}
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; color:#cbcbcb; list-style:none;padding-left:10px; background:url(../images/black/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#cbcbcb;text-decoration:none;}
#login form ul.userMenu li a:hover {text-decoration:underline;}
#login form p.latestLogin { color:#818181; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#3d3d3d; display:block;}
#openid_login { border:2px solid #515151; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#black #openid_login { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #6b6b6b; padding:11px 11px 7px 11px; width:172px;}
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #6b6b6b; color:#cbcbcb; width:105px; background:#515151; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#openid_login form .login { float:right;}
#openid_login form p.save { clear:both; padding:.3em 0;}
#openid_login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #openid_login form p input { margin:-3px; }

View file

@ -0,0 +1,42 @@
#login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body #login { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left;}
#login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #login form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}
#login form ul.help { border-top:1px solid #e4e4e4; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { float:left; display:block; padding:0 3px 0 7px; background:url(../images/default/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none; }
#login form ul.help li.first-child a { color:#54564b; text-decoration:none;}
#login form ul.help li a:hover { text-decoration:underline; }
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #e4e4e4; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#282828; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right;}
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; padding-left:10px; background:url(../images/default/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#54564b; text-decoration:none;}
#login form ul.userMenu li a:hover { text-decoration:underline;}
#login form p.latestLogin { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#ffffff; display:block;}
#openid_login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block; }
*:first-child+html body #openid_login { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px; }
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma; }
#openid_login form .login { float:right;}
#openid_login form p.save { clear:both; padding:.3em 0;}
#openid_login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body #openid_login form p input { margin:-3px; }
#openid_login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}

View file

@ -0,0 +1,38 @@
#login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block;}
*:first-child+html body#white #login { padding-top:2px;}
#login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px;}
#login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#login form .idpw { float:left;}
#login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma;}
#login form .login { float:right;}
#login form p.save { clear:both; padding:.3em 0;}
#login form p.save input { vertical-align:middle; _margin:-3px;}
*:first-child+html body#white #login form p input { margin:-3px; }
#login form p.save label { font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; color:#999999;}
#login form ul.help { border-top:1px solid #e4e4e4; overflow:hidden; padding:.5em 0 0 0; white-space:nowrap;}
#login form ul.help li { list-style:none; float:left; display:block; padding:0 3px 0 7px; background:url(../images/white/vrType1.gif) no-repeat left center;}
#login form ul.help li.first-child { background:none; padding-left:0;}
#login form ul.help li a { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif; white-space:nowrap; text-decoration:none; }
#login form ul.help li a:hover { text-decoration:underline; }
#login form ul.help li.first-child a { color:#54564b;}
#login form .userName { width:172px; overflow:hidden; border-bottom:1px solid #e4e4e4; padding:0 0 6px 0; margin-top:-5px;}
#login form .userName strong { color:#282828; float:left; padding:4px 0 0 2px; font:bold .9em Tahoma;}
#login form .userName a { float:right; text-decoration:none; }
#login form ul.userMenu { padding:0 0 6px 4px; overflow:hidden; margin-top:10px;}
#login form ul.userMenu li { list-style:none; padding-left:10px; background:url(../images/white/bulletFF1A00.gif) no-repeat left 4px; height:18px; }
#login form ul.userMenu li a { color:#54564b; text-decoration:none; }
#login form ul.userMenu li a:hover { text-decoration:underline; }
#login form p.latestLogin { color:#999999; font:.9em "돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;}
#login form p.latestLogin span { font:1em Tahoma;}
img.login_mask { width:201px; height:5px; background:#ffffff; display:block;}
#openid_login { border:2px solid #d9d9d9; width:196px; position:relative; _padding-top:2px; display:block; }
*:first-child+html body #openid_login { padding-top:2px;}
#openid_login legend { display:block; width:0; height:0; overflow:hidden; font-size:0;}
#openid_login form { position:relative; border:1px solid #cacaca; padding:11px 11px 7px 11px; width:172px; }
#openid_login form .idpwWrap { overflow:hidden; clear:both; width:172px;}
#openid_login form .idpw { float:left;}
#openid_login form .idpw p { margin-bottom:5px; background: url(../images/openid_login_bg.gif) left no-repeat; padding-left:18px; font-size:.9em Tahoma;color:#999999}
#openid_login form .idpw input { border:1px solid #c9c9c9; color:#282828; width:105px; background:#fbfbfb; padding:1px 5px; margin-bottom:2px; font:.9em Tahoma; }
#openid_login form .login { float:right;}

View file

@ -0,0 +1,14 @@
<filter name="widget_login" module="member" act="procMemberLogin">
<form>
<node target="user_id" required="true" filter="user_id"/>
<node target="password" required="true" />
</form>
<parameter>
<param name="user_id" target="user_id" />
<param name="password" target="password" />
</parameter>
<response callback_func="completeLogin">
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,7 @@
<filter name="widget_logout" module="member" act="procMemberLogout">
<form />
<response>
<tag name="error" />
<tag name="message" />
</response>
</filter>

View file

@ -0,0 +1,10 @@
<filter name="openid_login" module="member" act="procMemberOpenIDLogin">
<form>
<node target="user_id" required="true" />
</form>
<parameter />
<response callback_func="completeOpenIDLogin">
<tag name="error" />
<tag name="message" />
</response>
</filter>

Some files were not shown because too many files have changed in this diff Show more