XE Core 패키지를 위해서 별도로 분리할 모듈들을 모두 제거
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6696 201d5d3c-b55e-5fd7-737f-ddc643e51545
|
|
@ -1,42 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @class DroArc_clock
|
||||
* @author DroArc (ac7614@empas.com)
|
||||
* @brief 플래시 시계 출력
|
||||
* @version 1.0
|
||||
**/
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<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>
|
||||
<title xml:lang="es">Reloj digital Flash</title>
|
||||
<title xml:lang="ru">Цифровые Flash часы</title>
|
||||
<title xml:lang="zh-TW">Flash時鐘</title>
|
||||
<description xml:lang="ko">플래쉬로 된 디지털 시계를 출력합니다.</description>
|
||||
<description xml:lang="zh-CN">显示Flash数字时钟。</description>
|
||||
<description xml:lang="jp">フラッシュのデジタル時計を表示します。</description>
|
||||
<description xml:lang="en">It will display the digital clock created with flash.</description>
|
||||
<description xml:lang="es">Se mostrará el reloj digital creado con flash.</description>
|
||||
<description xml:lang="ru">Это отображает цифровые часы, созданные flash.</description>
|
||||
<description xml:lang="zh-TW">顯示 Flash時鐘。</description>
|
||||
<version>1.0</version>
|
||||
<date>2007-08-09</date>
|
||||
|
||||
<author email_address="ac7614@empas.com" link="http://widz.inven.co.kr/2nd_xe/DroArc">
|
||||
<name xml:lang="ko">드로아크 </name>
|
||||
<name xml:lang="zh-CN">DroArc</name>
|
||||
<name xml:lang="jp">DroArc </name>
|
||||
<name xml:lang="en">DroArc</name>
|
||||
<name xml:lang="es">DroArc</name>
|
||||
<name xml:lang="ru">DroArc</name>
|
||||
<name xml:lang="zh-TW">DroArc</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="clock_width">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">가로길이</name>
|
||||
<name xml:lang="zh-CN">宽度</name>
|
||||
<name xml:lang="jp">横幅サイズ設定</name>
|
||||
<name xml:lang="en">Width</name>
|
||||
<name xml:lang="es">Ancho</name>
|
||||
<name xml:lang="ru">Ширина</name>
|
||||
<name xml:lang="zh-TW">寬度</name>
|
||||
<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>
|
||||
<description xml:lang="es">Se estará en condiciones de establecer el ancho. (Por defecto es 150 px)</description>
|
||||
<description xml:lang="ru">Возможно установить ширину. (стандартное значение 150px)</description>
|
||||
<description xml:lang="zh-TW">可設置寬度。(預設是 150px)</description>
|
||||
</var>
|
||||
<var id="clock_height">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">세로길이</name>
|
||||
<name xml:lang="zh-CN">高度</name>
|
||||
<name xml:lang="jp">縦幅サイズ設定</name>
|
||||
<name xml:lang="ru">Высота</name>
|
||||
<name xml:lang="en">Height</name>
|
||||
<name xml:lang="es">Altura</name>
|
||||
<name xml:lang="zh-TW">高度</name>
|
||||
<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>
|
||||
<description xml:lang="es">Se estará en condiciones de establecer el ancho. (Por defecto es 64px)</description>
|
||||
<description xml:lang="ru">Возможно установить высоту. (стандартное значение 64px)</description>
|
||||
<description xml:lang="zh-TW">可設置高度。(預設是 64px)</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<script type="text/javascript">
|
||||
displayMultimedia("{$widget_info->src}", {$widget_info->clock_width}, {$widget_info->clock_height});
|
||||
</script>
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<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>
|
||||
<title xml:lang="zh-TW">Flash電子時鐘</title>
|
||||
<description xml:lang="ko">플래시 디지털 시계를 출력합니다. 자체적인 오른쪽 마우스 메뉴를 사용가능합니다.</description>
|
||||
<description xml:lang="zh-CN">显示Flash数字时钟。</description>
|
||||
<description xml:lang="jp">フラッシュのデジタル時計を出力します。右クリックマウスのメニューが使用出来ます。</description>
|
||||
<description xml:lang="en">It displays flash digital clock.</description>
|
||||
<description xml:lang="zh-TW">顯示Flash電子時鐘。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-07-26</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="ac7614@empas.com" link="http://widz.inven.co.kr">
|
||||
<name xml:lang="ko">드로아크</name>
|
||||
<name xml:lang="zh-CN">DroArc</name>
|
||||
<name xml:lang="jp">DroArc</name>
|
||||
<name xml:lang="en">DroArc</name>
|
||||
<name xml:lang="zh-TW">DroArc</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="normal">
|
||||
<title xml:lang="ko">일반</title>
|
||||
<title xml:lang="zh-CN">普通</title>
|
||||
<title xml:lang="jp">ノーマル</title>
|
||||
<title xml:lang="en">Normal</title>
|
||||
<title xml:lang="zh-TW">普通</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
<?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) {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 대상 모듈 추출
|
||||
if($args->mid_list) {
|
||||
$tmp_mid = explode(",",$args->mid_list);
|
||||
$args->mid = $tmp_mid[0];
|
||||
}
|
||||
if($args->mid) $args->srl = $oModuleModel->getModuleSrlByMid($args->mid);
|
||||
|
||||
// 선택된 모듈이 없으면 실행 취소
|
||||
$obj->module_srl = $args->srl;
|
||||
if(!$obj->module_srl) return Context::getLang('msg_not_founded');
|
||||
|
||||
// 모듈의 정보를 구함
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($obj->module_srl);
|
||||
|
||||
// document 모듈의 model 객체를 받아서 getMonthlyArchivedList() method를 실행
|
||||
$oDocumentModel = &getModel('document');
|
||||
$output = $oDocumentModel->getMonthlyArchivedList($obj);
|
||||
|
||||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
if($module_info->site_srl) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info->site_srl == $module_info->site_srl) $widget_info->domain = $site_module_info->domain;
|
||||
else {
|
||||
$site_info = $oModuleModel->getSiteInfo($module_info->site_srl);
|
||||
$widget_info->domain = $site_info->domain;
|
||||
}
|
||||
} else $widget_info->domain = Context::getDefaultUrl();
|
||||
$widget_info->module_info = $module_info;
|
||||
$widget_info->mid = $module_info->mid;
|
||||
$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);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<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>
|
||||
<title xml:lang="es">Reporte del almacenamiento de documentos por mes</title>
|
||||
<title xml:lang="ru">Отчет о размещенных статьях по месяцам</title>
|
||||
<title xml:lang="zh-TW">封存</title>
|
||||
<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>
|
||||
<description xml:lang="es">
|
||||
Este widget muestra el actual estado del almacenamientos de los documentos del dódulo seleccionado por mes.
|
||||
Si son muchos los documentos almacenados, puede tardar el tiempo de la carga.
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
Этот виджет отображает настоящее состояние размещенных статей, выбранных по месяцу.
|
||||
Если размещено много статей, то сервер может получить серьезную нагрузку.
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
按月份統計所選擇模組的主題數。
|
||||
主題過多時可能會導致主機超出負荷。
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="srl">
|
||||
<type>mid</type>
|
||||
<name xml:lang="ko">대상 모듈</name>
|
||||
<name xml:lang="zh-CN">对象模块</name>
|
||||
<name xml:lang="jp">モジュール</name>
|
||||
<name xml:lang="en">Target Module</name>
|
||||
<name xml:lang="es">Módulo objetivo</name>
|
||||
<name xml:lang="ru">Модуль назначения</name>
|
||||
<name xml:lang="zh-TW">目標模組</name>
|
||||
<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>
|
||||
<description xml:lang="es">Los documentos ingresados en el módulo seleccionado serán el objetivo.</description>
|
||||
<description xml:lang="ru">Статьи назначения будут теми, что были размещены в выбранном модуле.</description>
|
||||
<description xml:lang="zh-TW">將所選擇的模組作為統計目標。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
<!--// 설정된 컬러셋의 종류에 따라서 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")-->
|
||||
<!--@elseif($colorset=="normal")-->
|
||||
<!--%import("css/normal.css")-->
|
||||
<!--@else-->
|
||||
{@ $colorset = ""}
|
||||
<!--@end-->
|
||||
|
||||
<div class="blog_widget_{$colorset}">
|
||||
<div class="archive">
|
||||
<ul class="items">
|
||||
<!--@foreach($widget_info->archive_list as $val)-->
|
||||
<li><a href="{getSiteUrl($widget_info->domain,'mid',$widget_info->module_info->mid,'search_target','regdate','search_keyword',$val->month)}">{zdate($val->month,'Y. m')}</a> ({$val->count})</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.blog_widget_cyan .archive { position:relative; border:1px solid #e0e1db; background:url(../images/cyan/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
|
||||
.blog_widget_cyan .archive h2 { margin:0; padding:0; 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;}
|
||||
.blog_widget_cyan .archive .items { margin:0; padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
|
||||
.blog_widget_cyan .archive .items li { list-style:none; font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; padding:3px 0 3px 0;}
|
||||
.blog_widget_cyan .archive .items li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.blog_widget_green .archive { position:relative; border:1px solid #e0e1db; background:url(../images/green/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
|
||||
.blog_widget_green .archive h2 { margin:0; padding:0; 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;}
|
||||
.blog_widget_green .archive .items { margin:0; padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
|
||||
.blog_widget_green .archive .items li { list-style:none; font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; padding:3px 0 3px 0;}
|
||||
.blog_widget_green .archive .items li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.blog_widget_normal .archive { position:relative; border:1px solid #e0e1db; background:url(../images/normal/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
|
||||
.blog_widget_normal .archive h2 { margin:0; padding:0; 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;}
|
||||
.blog_widget_normal .archive .items { margin:0; padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
|
||||
.blog_widget_normal .archive .items li { list-style:none; font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; padding:3px 0 3px 0;}
|
||||
.blog_widget_normal .archive .items li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.blog_widget_purple .archive { position:relative; border:1px solid #e0e1db; background:url(../images/purple/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
|
||||
.blog_widget_purple .archive h2 { margin:0; padding:0; 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;}
|
||||
.blog_widget_purple .archive .items { margin:0; padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
|
||||
.blog_widget_purple .archive .items li { list-style:none; font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; padding:3px 0 3px 0;}
|
||||
.blog_widget_purple .archive .items li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
.blog_widget_red .archive { position:relative; border:1px solid #e0e1db; background:url(../images/red/bgBoxTypeB.gif) repeat-x left top; margin-bottom:.7em; }
|
||||
.blog_widget_red .archive h2 { margin:0; padding:0; 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;}
|
||||
.blog_widget_red .archive .items { margin:0; padding:.4em 1.2em .4em 1.2em; overflow:hidden;}
|
||||
.blog_widget_red .archive .items li { list-style:none; font-size:.75em; display:block; color:#a4a4a4; margin-right:.1em; line-height:1.5em; font-family:tahoma; padding:3px 0 3px 0;}
|
||||
.blog_widget_red .archive .items li a { color:#a4a4a4; font-weight:bold; margin-right:1em; font-family:tahoma;}
|
||||
|
Before Width: | Height: | Size: 207 B |
|
Before Width: | Height: | Size: 205 B |
|
Before Width: | Height: | Size: 200 B |
|
Before Width: | Height: | Size: 197 B |
|
Before Width: | Height: | Size: 196 B |
|
|
@ -1,69 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">월별 보관 현황 목록 출력</title>
|
||||
<title xml:lang="jp">月別のアーカイブリスト表示</title>
|
||||
<title xml:lang="zh-CN">存档列表默认皮肤</title>
|
||||
<title xml:lang="en">Monthly Custody Status</title>
|
||||
<title xml:lang="zh-TW">封存列表預設面板</title>
|
||||
<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>
|
||||
<description xml:lang="zh-TW">顯示封存列表。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
<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>
|
||||
<title xml:lang="zh-TW">預設顏色</title>
|
||||
</color>
|
||||
<color name="cyan">
|
||||
<title xml:lang="ko">청록색</title>
|
||||
<title xml:lang="jp">青緑</title>
|
||||
<title xml:lang="zh-CN">青绿色</title>
|
||||
<title xml:lang="en">cyan</title>
|
||||
<title xml:lang="zh-TW">青綠色</title>
|
||||
</color>
|
||||
<color name="green">
|
||||
<title xml:lang="ko">초록색</title>
|
||||
<title xml:lang="jp">緑</title>
|
||||
<title xml:lang="zh-CN">绿色</title>
|
||||
<title xml:lang="en">green</title>
|
||||
<title xml:lang="zh-TW">綠色</title>
|
||||
</color>
|
||||
<color name="red">
|
||||
<title xml:lang="ko">빨간색</title>
|
||||
<title xml:lang="jp">赤</title>
|
||||
<title xml:lang="zh-CN">红色</title>
|
||||
<title xml:lang="en">red</title>
|
||||
<title xml:lang="zh-TW">紅色</title>
|
||||
</color>
|
||||
<color name="purple">
|
||||
<title xml:lang="ko">보라색</title>
|
||||
<title xml:lang="jp">紫</title>
|
||||
<title xml:lang="zh-CN">紫色</title>
|
||||
<title xml:lang="en">purple</title>
|
||||
<title xml:lang="zh-TW">紫色</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<!--@if($colorset == "black" || $colorset == "white")-->
|
||||
<!--%import("./css/widget.css")-->
|
||||
<!--@end-->
|
||||
|
||||
<div class="widgetContainer<!--@if($colorset=="black")--> black<!--@end-->">
|
||||
<ul class="widgetUlistA">
|
||||
<!--@foreach($widget_info->archive_list as $val)-->
|
||||
<li><a href="{getSiteUrl($widget_info->domain,'mid',$widget_info->module_info->mid,'search_target','regdate','search_keyword',$val->month)}">{zdate($val->month,'Y. m')}</a> ({number_format($val->count)})</li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
@charset "utf-8";
|
||||
.widgetUlistA { margin:0; padding:0; font-size:12px; line-height:1.5;}
|
||||
.widgetUlistA li { list-style:none; font-family:tahoma; font-size:9px; }
|
||||
.widgetUlistA li a{ color:#666; font-size:12px;}
|
||||
|
||||
.widgetContainer.black .widgetUlistA { margin:0; padding:0; font-size:12px; line-height:1.5;}
|
||||
.widgetContainer.black .widgetUlistA li{ list-style:none; font-family:tahoma; font-size:9px;}
|
||||
.widgetContainer.black .widgetUlistA li a { color:#999; font-size:12px;}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">기본 월별 보관 현황 목록 출력</title>
|
||||
<title xml:lang="jp">デフォルト月別のアーカイブリスト表示</title>
|
||||
<title xml:lang="zh-CN">存档列表默认皮肤</title>
|
||||
<title xml:lang="en">Default Monthly Custody Status</title>
|
||||
<title xml:lang="zh-TW">封存預設面板</title>
|
||||
<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>
|
||||
<description xml:lang="zh-TW">顯示封存列表。</description>
|
||||
<version>0.1</version>
|
||||
<date>2009-02-18</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">하얀색(기본)</title>
|
||||
<title xml:lang="jp">白(デフォルト)</title>
|
||||
<title xml:lang="zh-CN">白色(默认)</title>
|
||||
<title xml:lang="en">White (default)</title>
|
||||
<title xml:lang="zh-TW">白色(預設)</title>
|
||||
</color>
|
||||
<color name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<title xml:lang="zh-TW">黑色</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
<?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) {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$tmp_mid = explode(",",$args->mid_list);
|
||||
$args->mid = $tmp_mid[0];
|
||||
}
|
||||
|
||||
if($args->mid) $args->srl = $oModuleModel->getModuleSrlByMid($args->mid);
|
||||
|
||||
$obj->module_srl = $args->srl;
|
||||
|
||||
// 선택된 모듈이 없으면 실행 취소
|
||||
if(!$obj->module_srl) return Context::getLang('msg_not_founded');
|
||||
|
||||
// 모듈의 정보를 구함
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($obj->module_srl);
|
||||
|
||||
if(Context::get('search_target')=='regdate') {
|
||||
$regdate = Context::get('search_keyword');
|
||||
if($regdate) $obj->regdate = zdate($regdate, 'Ym');
|
||||
}
|
||||
if(!$obj->regdate) $obj->regdate = zdate(date('YmdHis'), 'Ym');
|
||||
|
||||
// document 모듈의 model 객체를 받아서 getDailyArchivedList() method를 실행
|
||||
$oDocumentModel = &getModel('document');
|
||||
$output = $oDocumentModel->getDailyArchivedList($obj);
|
||||
|
||||
// 위젯 자체적으로 설정한 변수들을 체크
|
||||
$title = $args->title;
|
||||
|
||||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
$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->prev_year = date('Y', mktime(1,0,0,1,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);
|
||||
$widget_info->next_year = date('Y', mktime(1,0,0,12,$widget_info->last_day,zdate($obj->regdate,'Y'))+60*60*24);
|
||||
|
||||
$widget_info->title = $title;
|
||||
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $key => $val) $widget_info->calendar[$val->month] = $val->count;
|
||||
}
|
||||
|
||||
if($module_info->site_srl) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info->site_srl == $module_info->site_srl) $widget_info->domain = $site_module_info->domain;
|
||||
else {
|
||||
$site_info = $oModuleModel->getSiteInfo($module_info->site_srl);
|
||||
$widget_info->domain = $site_info->domain;
|
||||
}
|
||||
} else $widget_info->domain = Context::getDefaultUrl();
|
||||
$widget_info->module_info = $module_info;
|
||||
$widget_info->mid = $module_info->mid;
|
||||
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);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<title xml:lang="ko">달력 출력</title>
|
||||
<title xml:lang="zh-CN">日历</title>
|
||||
<title xml:lang="jp">カレンダー表示</title>
|
||||
<title xml:lang="en">Calendar</title>
|
||||
<title xml:lang="es">Mostrar Calendario</title>
|
||||
<title xml:lang="ru">Отображение календаря</title>
|
||||
<title xml:lang="zh-TW">日曆</title>
|
||||
<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>
|
||||
<description xml:lang="es">Este widget muestra el calendario, y si hay documentos agregados, la fecha se verá con un color más claro enlazado con URL.</description>
|
||||
<description xml:lang="ru">Этот виджет отображает календарь, и если отправляется статья, данные будут выделены их ссылкой.</description>
|
||||
<description xml:lang="zh-TW">顯示日曆,發表主題的日期會跟日曆產生連結。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="srl">
|
||||
<type>mid</type>
|
||||
<name xml:lang="ko">대상 모듈</name>
|
||||
<name xml:lang="zh-CN">模块对象</name>
|
||||
<name xml:lang="jp">モジュール</name>
|
||||
<name xml:lang="en">Target Module</name>
|
||||
<name xml:lang="es">Módulo objetivo</name>
|
||||
<name xml:lang="zh-TW">目標模組</name>
|
||||
<name xml:lang="ru">Модуль назначения</name>
|
||||
<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>
|
||||
<description xml:lang="es">Los documentos del módulo seleccionado serán objetivos.</description>
|
||||
<description xml:lang="ru">Статьи назначения будут теми, что были размещены в выбранном модуле.</description>
|
||||
<description xml:lang="zh-TW">將所選擇的模組當做連結目標。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
<!--// 설정된 컬러셋의 종류에 따라서 css파일을 import 합니다 -->
|
||||
|
||||
<!--@if($colorset=="layout")-->
|
||||
<!--@else-->
|
||||
<!--%import("css/normal.css")-->
|
||||
<!--@end-->
|
||||
|
||||
<div class="widget_calendar">
|
||||
<table cellspacing="0">
|
||||
<caption>
|
||||
<a href="{getUrl('search_target','regdate','search_keyword',$widget_info->prev_month)}" class="back"><img src="./images/blank.gif" alt="" /></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)}" class="next"><img src="./images/blank.gif" alt="next" /></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"}
|
||||
{@ $day_link = getSiteUrl($widget_info->domain,'mid',$widget_info->module_info->mid,'search_target','regdate','search_keyword',$cur_date) }
|
||||
<!--@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>
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
/* Calendar */
|
||||
.widget_calendar { padding:1.2em .8em; position:relative; border:1px solid #e0e1db; margin-bottom:.7em;}
|
||||
.widget_calendar table { width:100%;}
|
||||
.widget_calendar table caption { font:bold 1em Tahoma; color:#9a9a9a; padding-bottom:.6em; background:url(none);}
|
||||
.widget_calendar table caption .mm { font:bold 1em Tahoma; color:#54564b;}
|
||||
.widget_calendar table caption a { padding:.2em;}
|
||||
.widget_calendar table caption a img { width:13px; height:13px;}
|
||||
.widget_calendar table caption a.back { background:url("../images/buttonArrowCalendarLeft.gif") no-repeat left 3px; width:13px; height:13px;}
|
||||
.widget_calendar table caption a.next { background:url("../images/buttonArrowCalendarRight.gif") no-repeat left 3px; width:3px; height:13px;}
|
||||
.widget_calendar table th,
|
||||
.widget_calendar table td { padding:.25em 0;}
|
||||
.widget_calendar table th { font-weight:normal; font-size:.9em; color:#9a9a9a;}
|
||||
.widget_calendar table th.sun { color:#fe3614;}
|
||||
.widget_calendar table td { text-align:center;}
|
||||
.widget_calendar table td a { font:.9em Tahoma; color:#9a9a9a;}
|
||||
.widget_calendar table td.sun { color:#fe3614;}
|
||||
.widget_calendar table td.sun a { color:#fe3614;}
|
||||
.widget_calendar table td.today { font-weight:bold; color:#54564b;}
|
||||
.widget_calendar table td.today a { font-weight:bold; color:#54564b;}
|
||||
.widget_calendar table td.posted a { text-decoration:underline;}
|
||||
|
Before Width: | Height: | Size: 43 B |
|
Before Width: | Height: | Size: 59 B |
|
Before Width: | Height: | Size: 58 B |
|
|
@ -1,41 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<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>
|
||||
<title xml:lang="zh-TW">日曆預設面板</title>
|
||||
<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>
|
||||
<description xml:lang="zh-TW">適用於部落格的日曆預設面板。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<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>
|
||||
<title xml:lang="zh-TW">預設顏色</title>
|
||||
</color>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
<!--@if($colorset == "black" || $colorset == "white")-->
|
||||
<!--%import("./css/widget.css")-->
|
||||
<!--@end-->
|
||||
|
||||
<div class="widgetContainer<!--@if($colorset=="black")--> black<!--@end-->">
|
||||
<div class="widgetCalendarNavigation">
|
||||
<button type="button" class="prevYear" onclick="location.href='{getUrl('search_target','regdate','search_keyword',$widget_info->prev_year)}'"><<</button> <button type="button" class="prevMonth" onclick="location.href='{getUrl('search_target','regdate','search_keyword',$widget_info->prev_month)}'"><</button>
|
||||
<button type="button" class="nextMonth" onclick="location.href='{getUrl('search_target','regdate','search_keyword',$widget_info->next_month)}'">></button> <button type="button" class="nextYear" onclick="location.href='{getUrl('search_target','regdate','search_keyword',$widget_info->next_year)}'">>></button>
|
||||
</div>
|
||||
<table border="1" cellspacing="0" class="widgetCalendar">
|
||||
<caption>{zdate($widget_info->cur_date,"Y.m")}</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="sun">{$lang->unit_week['Sunday']}</th>
|
||||
<th scope="col">{$lang->unit_week['Monday']}</th>
|
||||
<th scope="col">{$lang->unit_week['Tuesday']}</th>
|
||||
<th scope="col">{$lang->unit_week['Wednesday']}</th>
|
||||
<th scope="col">{$lang->unit_week['Thursday']}</th>
|
||||
<th scope="col">{$lang->unit_week['Friday']}</th>
|
||||
<th scope="col">{$lang->unit_week['Saturday']}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<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($widget_info->calendar[$cur_date])-->
|
||||
{@ $item_class_name = "posted"}
|
||||
{@ $day_link = getSiteUrl($widget_info->domain,'mid',$widget_info->module_info->mid,'search_target','regdate','search_keyword',$cur_date) }
|
||||
<!--@else-->
|
||||
{@ $item_class_name = ""}
|
||||
{@ $day_link = ''}
|
||||
<!--@end-->
|
||||
|
||||
<td class="<!--@if($j==0)-->sun<!--@end-->{$today_class} {$cell_class_name} {$item_class_name}">
|
||||
<!--@if($day <= $widget_info->last_day)-->
|
||||
<!--@if($day_link)-->
|
||||
<a href="{$day_link}"><strong>{$day}</strong></a>
|
||||
<!--@else-->
|
||||
{$day}
|
||||
<!--@end-->
|
||||
<!--@else-->
|
||||
|
||||
<!--@end-->
|
||||
</td>
|
||||
<!--@end-->
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
@charset "utf-8";
|
||||
.widgetContainer a{ text-decoration:none;}
|
||||
.widgetContainer a:hover,
|
||||
.widgetContainer a:active,
|
||||
.widgetContainer a:focus{ text-decoration:underline;} .widgetContainer img{ border:0;}
|
||||
.widgetContainer sup{ position:relative; line-height:1; display:inline-block; margin:-5px 0; *padding:0 1px;}
|
||||
.widgetContainer form{ margin:0; padding:0;}
|
||||
.widgetContainer fieldset{ border:0; margin:0; padding:0;}
|
||||
.widgetCalendarNavigation{ position:relative; height:15px; margin-bottom:-15px; z-index:10;}
|
||||
.widgetCalendarNavigation button{ position:absolute; top:0; font-size:10px; font-family:Tahoma; background:none; border:0; padding:0; cursor:pointer;}
|
||||
.widgetCalendarNavigation button.prevYear{ left:0;}
|
||||
.widgetCalendarNavigation button.prevMonth{ left:25px;}
|
||||
.widgetCalendarNavigation button.nextYear{ right:0;}
|
||||
.widgetCalendarNavigation button.nextMonth{ right:25px;}
|
||||
.widgetCalendar{ position:relative; border:0; width:100%;}
|
||||
.widgetCalendar caption { position:relative; padding-bottom:5px; text-align:center; font-size:12px; font-weight:bold; font-family:Tahoma;}
|
||||
.widgetCalendar th,
|
||||
.widgetCalendar td{ border:0; text-align:center; padding:5px 0;}
|
||||
.widgetCalendar th{ font-size:12px; font-family:Tahoma; font-weight:normal;}
|
||||
.widgetCalendar td,
|
||||
.widgetCalendar td a{ font-size:11px; font-family:Tahoma;}
|
||||
.widgetCalendar td em{ font-style:normal;}
|
||||
.widgetCalendarNavigation button{ color:#333;}
|
||||
.widgetCalendar caption{ color:#333;}
|
||||
.widgetCalendar th{ background:#eee; color:#333;}
|
||||
.widgetCalendar th.sun,
|
||||
.widgetCalendar td.sun,
|
||||
.widgetCalendar td em{ color:#ff1a1a;}
|
||||
.widgetCalendar td,
|
||||
.widgetCalendar td a{ color:#666;}
|
||||
.widgetCalendar td.sun a{ color:#ff1a1a;}
|
||||
|
||||
.widgetContainer.black .widgetContainer a{ text-decoration:none;}
|
||||
.widgetContainer.black .widgetContainer a:hover,
|
||||
.widgetContainer.black .widgetContainer a:active,
|
||||
.widgetContainer.black .widgetContainer a:focus{ text-decoration:underline;} .widgetContainer img{ border:0;}
|
||||
.widgetContainer.black .widgetContainer sup{ position:relative; line-height:1; display:inline-block; margin:-5px 0; *padding:0 1px;}
|
||||
.widgetContainer.black .widgetContainer form{ margin:0; padding:0;}
|
||||
.widgetContainer.black .widgetContainer fieldset{ border:0; margin:0; padding:0;}
|
||||
.widgetContainer.black .widgetCalendarNavigation{ position:relative; height:15px; margin-bottom:-15px; z-index:10;}
|
||||
.widgetContainer.black .widgetCalendarNavigation button{ position:absolute; top:0; font-size:10px; font-family:Tahoma; background:none; border:0; padding:0; cursor:pointer;}
|
||||
.widgetContainer.black .widgetCalendarNavigation button.prevYear{ left:0;}
|
||||
.widgetContainer.black .widgetCalendarNavigation button.prevMonth{ left:25px;}
|
||||
.widgetContainer.black .widgetCalendarNavigation button.nextYear{ right:0;}
|
||||
.widgetContainer.black .widgetCalendarNavigation button.nextMonth{ right:25px;}
|
||||
.widgetContainer.black .widgetCalendar{ position:relative; border:0; width:100%;}
|
||||
.widgetContainer.black .widgetCalendar caption { position:relative; padding-bottom:5px; text-align:center; font-size:12px; font-weight:bold; font-family:Tahoma;}
|
||||
.widgetContainer.black .widgetCalendar th,
|
||||
.widgetContainer.black .widgetCalendar td{ border:0; text-align:center; padding:5px 0;}
|
||||
.widgetContainer.black .widgetCalendar th{ font-size:12px; font-family:Tahoma; font-weight:normal;}
|
||||
.widgetContainer.black .widgetCalendar td,
|
||||
.widgetContainer.black .widgetCalendar td a{ font-size:11px; font-family:Tahoma;}
|
||||
.widgetContainer.black .widgetCalendar td em{ font-style:normal;}
|
||||
.widgetContainer.black .widgetCalendarNavigation button{ color:#999;}
|
||||
.widgetContainer.black .widgetCalendar caption{ color:#999;}
|
||||
.widgetContainer.black .widgetCalendar th{ background:#333; color:#fff;}
|
||||
.widgetContainer.black .widgetCalendar th.sun,
|
||||
.widgetContainer.black .widgetCalendar td.sun,
|
||||
.widgetContainer.black .widgetCalendar td em{ color:#ff1a1a;}
|
||||
.widgetContainer.black .widgetCalendar td,
|
||||
.widgetContainer.black .widgetCalendar td a{ color:#999;}
|
||||
.widgetContainer.black .widgetCalendar td.sun a{ color:#ff1a1a;}
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">기본 달력 및 글 현황 표시</title>
|
||||
<title xml:lang="jp">デフォルトカレンダーと書き込みリンク表示</title>
|
||||
<title xml:lang="zh-CN">模块联动日历默认皮肤</title>
|
||||
<title xml:lang="en">Default Display Calendar and Article Status</title>
|
||||
<title xml:lang="zh-TW">Default 日曆預設面板</title>
|
||||
<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>
|
||||
<description xml:lang="zh-TW">適用於部落格的日曆預設面板。</description>
|
||||
<version>0.1</version>
|
||||
<date>2009-02-17</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">하얀색(기본)</title>
|
||||
<title xml:lang="jp">白(デフォルト)</title>
|
||||
<title xml:lang="zh-CN">白色(默认)</title>
|
||||
<title xml:lang="en">White (default)</title>
|
||||
<title xml:lang="zh-TW">白色(預設)</title>
|
||||
</color>
|
||||
<color name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<title xml:lang="zh-TW">黑色</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @class category
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief 분류 출력기
|
||||
* @version 0.1
|
||||
**/
|
||||
|
||||
class category extends WidgetHandler {
|
||||
|
||||
/**
|
||||
* @brief 위젯의 실행 부분
|
||||
*
|
||||
* ./widgets/위젯/conf/info.xml 에 선언한 extra_vars를 args로 받는다
|
||||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$tmp_mid = explode(",",$args->mid_list);
|
||||
$args->mid = $tmp_mid[0];
|
||||
}
|
||||
|
||||
if($args->mid) {
|
||||
$args->srl = $oModuleModel->getModuleSrlByMid($args->mid);
|
||||
if(is_array($args->srl)) {
|
||||
$args->srl = $args->srl[0];
|
||||
}
|
||||
}
|
||||
|
||||
$obj->module_srl = $args->srl;
|
||||
|
||||
// 선택된 모듈이 없으면 실행 취소
|
||||
if(!$obj->module_srl) return Context::getLang('msg_not_founded');
|
||||
|
||||
// 모듈의 정보를 구함
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($obj->module_srl);
|
||||
|
||||
// 대상 모듈의 카테고리 파일을 불러옴
|
||||
$oDocumentModel = &getModel('document');
|
||||
$category_list = $oDocumentModel->getCategoryList($obj->module_srl);
|
||||
|
||||
// 전체 개수를 구함
|
||||
$widget_info->total_document_count = $oDocumentModel->getDocumentCount($obj->module_srl);
|
||||
|
||||
$widget_info->module_info = $module_info;
|
||||
$widget_info->mid = $module_info->mid;
|
||||
$widget_info->document_category = $document_category;
|
||||
$widget_info->category_list = $category_list;
|
||||
$widget_info->total_title = $args->total_title;
|
||||
|
||||
if($module_info->site_srl) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info->site_srl == $module_info->site_srl) $widget_info->domain = $site_module_info->domain;
|
||||
else {
|
||||
$site_info = $oModuleModel->getSiteInfo($module_info->site_srl);
|
||||
$widget_info->domain = $site_info->domain;
|
||||
}
|
||||
} else $widget_info->domain = Context::getDefaultUrl();
|
||||
|
||||
Context::set('colorset', $args->colorset);
|
||||
Context::set('widget_info', $widget_info);
|
||||
|
||||
// 템플릿 컴파일
|
||||
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
|
||||
$tpl_file = 'category';
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<title xml:lang="ko">게시글 분류 출력기</title>
|
||||
<title xml:lang="en">Article Category</title>
|
||||
<title xml:lang="es">게시글 분류 출력기</title>
|
||||
<title xml:lang="ru">게시글 분류 출력기</title>
|
||||
<title xml:lang="jp">書き込みのカテゴリ表示</title>
|
||||
<title xml:lang="zh-CN">博客样式主题分类</title>
|
||||
<title xml:lang="zh-TW">主題分類</title>
|
||||
<description xml:lang="ko">게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다.</description>
|
||||
<description xml:lang="en">This widget displays categories of document from modules that enabled to use category function.</description>
|
||||
<description xml:lang="es">게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다.</description>
|
||||
<description xml:lang="ru">게시판등 문서모듈의 분류를 사용하는 모듈에서 분류를 추출하여 블로그 카테고리와 같이 출력하는 기능입니다.</description>
|
||||
<description xml:lang="jp">掲示板など、ドキュメントモジュールのカテゴリを使用するモジュールでカテゴリを抽出してブログのカテゴリのように表示する機能です。</description>
|
||||
<description xml:lang="zh-CN">把版面模块中的分类显示为类似于博客分类样式的功能。</description>
|
||||
<description xml:lang="zh-TW">將討論板中的分類,顯示成像部落格一樣的分類功能。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="srl">
|
||||
<type>mid</type>
|
||||
<name xml:lang="ko">대상 모듈</name>
|
||||
<name xml:lang="es">대상 모듈</name>
|
||||
<name xml:lang="en">Target Module</name>
|
||||
<name xml:lang="jp">対象モジュール</name>
|
||||
<name xml:lang="ru">대상 모듈</name>
|
||||
<name xml:lang="zh-CN">对象模块</name>
|
||||
<name xml:lang="zh-TW">目標模組</name>
|
||||
<description xml:lang="ko">선택하신 모듈을 대상으로 합니다. 꼭 한개의 모듈만 선택해 주세요.</description>
|
||||
<description xml:lang="en">Selected module will be target. Please select only 1 (one) module.</description>
|
||||
<description xml:lang="es">선택하신 모듈을 대상으로 합니다. 꼭 한개의 모듈만 선택해 주세요.</description>
|
||||
<description xml:lang="ru">선택하신 모듈을 대상으로 합니다. 꼭 한개의 모듈만 선택해 주세요.</description>
|
||||
<description xml:lang="jp">選択されたモジュールを対象とします。必ず一つのモジュールのみ選択して下さい。</description>
|
||||
<description xml:lang="zh-CN">将把所选模块当中的主题作为对象。只能选一个模块。</description>
|
||||
<description xml:lang="zh-TW">將所選擇的模組作為目標。只能選擇一個模組。</description>
|
||||
</var>
|
||||
<var id="total_title">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">category 전체 타이틀</name>
|
||||
<name xml:lang="en">category total text title</name>
|
||||
<name xml:lang="zh-TW">分類 全部 主題</name>
|
||||
<name xml:lang="jp">カテゴリー全体タイトル</name>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<!--%import("js/category.js")-->
|
||||
|
||||
{@ $_pDepth = 0;}
|
||||
<!--@if($colorset == "black" || $colorset == "white")-->
|
||||
<!--%import("./css/widget.css")-->
|
||||
<!--@end-->
|
||||
<div class="widgetContainer<!--@if($colorset=="black")--> black<!--@end-->">
|
||||
<div class="widgetTree">
|
||||
<a href="{getSiteUrl($widget_info->domain,'','mid',$widget_info->module_info->mid?$widget_info->module_info->mid:$layout_info->target_mid)}" class="all <!--@if(!$category)-->strong<!--@end-->">
|
||||
<!--@if($widget_info->total_title)-->
|
||||
{$widget_info->total_title}
|
||||
<!--@else-->
|
||||
{$widget_info->module_info->browser_title}
|
||||
<!--@end-->
|
||||
</a> <span class="sum">({$widget_info->total_document_count})</span>
|
||||
<ul>
|
||||
<!--@foreach($widget_info->category_list as $key => $val)-->
|
||||
<!--@if($_pDepth > $val->depth)-->
|
||||
<!--@for($i=$val->depth; $i<$_pDepth; $i++)-->
|
||||
</ul>
|
||||
</li>
|
||||
<!--@end-->
|
||||
{@ $_pDepth = $val->depth}
|
||||
<!--@end-->
|
||||
<li class="<!--@if($val->last)-->nav_tree_last<!--@end--> <!--@if($val->expand)-->nav_tree_on<!--@else-->nav_tree_off<!--@end--> <!--@if($category==$val->category_srl)-->active<!--@end-->" id="category_parent_{$val->category_srl}">
|
||||
<!--@if($val->child_count)-->
|
||||
<!--@if($val->expand)-->
|
||||
<button type="button" class="category_{$val->category_srl}">+</button>
|
||||
<!--@else-->
|
||||
<button type="button" class="category_{$val->category_srl}">-</button>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<a href="{getSiteUrl($widget_info->domain, '','mid',$widget_info->module_info->mid, 'category',$val->category_srl)}" class="nav_tree_label <!--@if($val->selected)-->selected<!--@end-->">{$val->text}</a>
|
||||
<!--@if($val->document_count)-->
|
||||
<span class="sum">({$val->document_count})</span>
|
||||
<!--@end-->
|
||||
<!--@if($val->child_count)-->
|
||||
{@$_pDepth++}
|
||||
<ul>
|
||||
<!--@else-->
|
||||
</li>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<!--@for($i=0;$i<$_pDepth;$i++)-->
|
||||
</ul>
|
||||
<!--@end-->
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
@charset "utf-8";
|
||||
|
||||
/* Widget Tree */
|
||||
.widgetTree { margin-top:10px;}
|
||||
.widgetTree a.all { background:url(../img/white/folder.gif) no-repeat left top; padding-left:20px;}
|
||||
.widgetTree a.strong { font-weight:bold; }
|
||||
.widgetTree span { font-size:9px; font-family:tahoma; padding:0; margin:0; color:#999;}
|
||||
.widgetTree ul span { margin-left:15px; }
|
||||
.widgetTree *{ margin:0; padding:0; font-size:12px;}
|
||||
.widgetTree a strong{ letter-spacing:-1px; cursor:pointer; _cursor /**/:hand;}
|
||||
.widgetTree ul{ position:relative; display:block; padding:3px 0 0 0 !important; zoom:1; margin-left:8px;}
|
||||
.widgetTree ul li{ list-style:none; position:relative; padding:3px 0 2px 8px; white-space:nowrap;}
|
||||
.widgetTree ul li .nav_tree_label,
|
||||
.widgetTree ul li .sum{ position:relative; left:16px; _left /**/:0; top:0; font-style:normal;}
|
||||
.widgetTree ul li a {text-decoration:none; }
|
||||
.widgetTree ul li a.selected {font-weight:bold;}
|
||||
.widgetTree ul li button{ display:inline-block; position:relative; _left /**/:-16px; *top:-2px; width:13px; height:13px; *width:17px; *height:17px; margin:0 -13px 0 0; *margin:0 -17px -2px -2px; text-indent:-10000px; *text-indent:0; *font:0/0 Sans-serif; border:none; cursor:pointer; _cursor /**/:hand;}
|
||||
.widgetTree ul li ul{ display:none; padding:2px 0 0 0 !important; margin:0 0 -2px 6px; background-position:left top;}
|
||||
.widgetTree ul li ul li{ display:none;}
|
||||
.widgetTree ul li.nav_tree_on button{ background-position:0 -13px; *background-position:2px -11px;}
|
||||
.widgetTree ul li.nav_tree_off button{ background-position:0 0; *background-position:2px 2px;}
|
||||
.widgetTree ul li.nav_tree_on ul{ display:block;}
|
||||
.widgetTree ul li.nav_tree_on ul li{ display:block;}
|
||||
.widgetTree ul li.nav_tree_off ul{ display:none;}
|
||||
.widgetTree ul li.nav_tree_off ul li{ display:none;}
|
||||
.widgetTree ul li.active,
|
||||
.widgetTree ul li.active a{ font-weight:bold;}
|
||||
.widgetTree ul li.active li,
|
||||
.widgetTree ul li.active li a{ font-weight:normal;}
|
||||
.widgetTree .icon{ position:relative; left:16px;}
|
||||
|
||||
/* widgetTree */
|
||||
.widgetTree{ color:#333;}
|
||||
.widgetTree a{ color:#333; text-decoration:none;}
|
||||
|
||||
/* Widget Tree */
|
||||
.widgetTree ul{ background:url(../img/white/lineTreeVr.gif) repeat-y 0 -1px;}
|
||||
.widgetTree ul li{ background:url(../img/white/lineTreeHr.gif) no-repeat 1px 5px !important;}
|
||||
.widgetTree ul li button{ background:url(../img/white/buttonTreeCollapse.gif) no-repeat;}
|
||||
.widgetTree ul li.nav_tree_last{ background:url(../img/white/lineTreeLastHr.gif) no-repeat 0 5px !important;}
|
||||
|
||||
.widgetContainer.black .widgetTree { margin-top:10px;}
|
||||
.widgetContainer.black .widgetTree a.all { background:url(../img/black/folder.gif) no-repeat left top; padding-left:20px;}
|
||||
.widgetContainer.black .widgetTree span { font-size:9px; font-family:tahoma; padding:0; margin:0; color:#333;}
|
||||
.widgetContainer.black .widgetTree ul span { margin-left:15px; }
|
||||
.widgetContainer.black .widgetTree *{ margin:0; padding:0; font-size:12px;}
|
||||
.widgetContainer.black .widgetTree a strong{ letter-spacing:-1px; cursor:pointer; _cursor /**/:hand;}
|
||||
.widgetContainer.black .widgetTree ul{ position:relative; display:block; padding:3px 0 0 0 !important; zoom:1; margin-left:8px;}
|
||||
.widgetContainer.black .widgetTree ul li{ list-style:none; position:relative; padding:3px 0 2px 8px; white-space:nowrap;}
|
||||
.widgetContainer.black .widgetTree ul li .nav_tree_label,
|
||||
.widgetContainer.black .widgetTree ul li .sum{ position:relative; left:16px; _left /**/:0; top:0; font-style:normal;}
|
||||
.widgetContainer.black .widgetTree ul li a {text-decoration:none; }
|
||||
.widgetContainer.black .widgetTree ul li a.selected {font-weight:bold;}
|
||||
.widgetContainer.black .widgetTree ul li button{ display:inline-block; position:relative; _left /**/:-16px; *top:-2px; width:13px; height:13px; *width:17px; *height:17px; margin:0 -13px 0 0; *margin:0 -17px -2px -2px; text-indent:-10000px; *text-indent:0; *font:0/0 Sans-serif; border:none; cursor:pointer; _cursor /**/:hand;}
|
||||
.widgetContainer.black .widgetTree ul li ul{ display:none; padding:2px 0 0 0 !important; margin:0 0 -2px 6px; background-position:left top;}
|
||||
.widgetContainer.black .widgetTree ul li ul li{ display:none;}
|
||||
.widgetContainer.black .widgetTree ul li.nav_tree_on button{ background-position:0 -13px; *background-position:2px -11px;}
|
||||
.widgetContainer.black .widgetTree ul li.nav_tree_off button{ background-position:0 0; *background-position:2px 2px;}
|
||||
.widgetContainer.black .widgetTree ul li.nav_tree_on ul{ display:block;}
|
||||
.widgetContainer.black .widgetTree ul li.nav_tree_on ul li{ display:block;}
|
||||
.widgetContainer.black .widgetTree ul li.nav_tree_off ul{ display:none;}
|
||||
.widgetContainer.black .widgetTree ul li.nav_tree_off ul li{ display:none;}
|
||||
.widgetContainer.black .widgetTree .icon{ position:relative; left:16px;}
|
||||
|
||||
/* widgetTree */
|
||||
.widgetContainer.black .widgetTree{ color:#999;}
|
||||
.widgetContainer.black .widgetTree a { color:#999; text-decoration:none;}
|
||||
|
||||
/* Widget Tree */
|
||||
.widgetContainer.black .widgetTree ul{ background:url(../img/black/lineTreeVr.gif) repeat-y 0 -1px;}
|
||||
.widgetContainer.black .widgetTree ul li{ background:url(../img/black/lineTreeHr.gif) no-repeat 1px 5px !important;}
|
||||
.widgetContainer.black .widgetTree ul li button{ background:url(../img/black/buttonTreeCollapse.gif) no-repeat;}
|
||||
.widgetContainer.black .widgetTree ul li.nav_tree_last{ background:url(../img/black/lineTreeLastHr.gif) no-repeat 0 5px !important;}
|
||||
|
||||
|
Before Width: | Height: | Size: 99 B |
|
Before Width: | Height: | Size: 341 B |
|
Before Width: | Height: | Size: 57 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 43 B |
|
Before Width: | Height: | Size: 99 B |
|
Before Width: | Height: | Size: 341 B |
|
Before Width: | Height: | Size: 57 B |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 43 B |
|
|
@ -1,22 +0,0 @@
|
|||
function toggleCategory(evt) {
|
||||
var e = new xEvent(evt);
|
||||
var obj = e.target;
|
||||
if(obj.nodeName != 'BUTTON') return;
|
||||
|
||||
var node_srl = obj.className.replace(/^category_/,'');
|
||||
if(!node_srl) return;
|
||||
|
||||
var li_obj = xGetElementById("category_parent_"+node_srl);
|
||||
if(!li_obj) return;
|
||||
var className = li_obj.className;
|
||||
|
||||
if(/nav_tree_off/.test(className)) {
|
||||
xInnerHtml(obj,'-');
|
||||
li_obj.className = className.replace(/nav_tree_off/,'nav_tree_on');
|
||||
} else {
|
||||
xInnerHtml(obj,'+');
|
||||
li_obj.className = className.replace(/nav_tree_on/,'nav_tree_off');
|
||||
}
|
||||
}
|
||||
|
||||
xAddEventListener(document, 'click', toggleCategory);
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">분류 출력 기본 스킨</title>
|
||||
<title xml:lang="jp">カテゴリ表示デフォルトスキン</title>
|
||||
<title xml:lang="en">Default Skin of Category Widget</title>
|
||||
<title xml:lang="zh-CN">博客样式分类默认皮肤</title>
|
||||
<title xml:lang="zh-TW">主題分類面板</title>
|
||||
<description xml:lang="ko">게시글 분류를 출력하는 기본 스킨입니다</description>
|
||||
<description xml:lang="jp">書き込みのカテゴリを表示表示させるデフォルトスキンです。</description>
|
||||
<description xml:lang="en">This is a widget that displays categories of articles.</description>
|
||||
<description xml:lang="zh-CN">把主题分类显示为博客样式的默认皮肤。</description>
|
||||
<description xml:lang="zh-TW">顯示主題分類。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="zh-CN">Zero</name>
|
||||
<name xml:lang="zh-TW">Zero</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">하얀색(기본)</title>
|
||||
<title xml:lang="jp">白(デフォルト)</title>
|
||||
<title xml:lang="zh-CN">白色(默认)</title>
|
||||
<title xml:lang="en">White (default)</title>
|
||||
<title xml:lang="zh-TW">白色(預設)</title>
|
||||
</color>
|
||||
<color name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<title xml:lang="zh-TW">黑色</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
<div class="tCenter">
|
||||
<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>
|
||||
</div>
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<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>
|
||||
<title xml:lang="zh-TW">Styx Flash 計數器面板</title>
|
||||
<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>
|
||||
<description xml:lang="zh-TW">以Flash顯示今天,昨天,總訪問量的控件。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">styx</name>
|
||||
<name xml:lang="jp">styx</name>
|
||||
<name xml:lang="zh-CN">styx</name>
|
||||
<name xml:lang="en">styx</name>
|
||||
<name xml:lang="zh-TW">styx</name>
|
||||
</author>
|
||||
|
||||
<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>
|
||||
<title xml:lang="zh-TW">預設</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,102 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<title xml:lang="ko">포럼형 최근 게시물</title>
|
||||
<title xml:lang="zh-CN">论坛主界面样式列表</title>
|
||||
<title xml:lang="jp">フォーラムスタイルの最新の記事を表示</title>
|
||||
<title xml:lang="en">Forum Style Newest Articles</title>
|
||||
<title xml:lang="es">Pantalla Foro estilo más reciente de artículos</title>
|
||||
<title xml:lang="ru">Дисплей стиле форума новейших статей</title>
|
||||
<title xml:lang="zh-TW">最新主題論壇樣式</title>
|
||||
<description xml:lang="ko">
|
||||
한개 또는 여러개의 게시판을 포럼형식으로 정리하여 노출하는 위젯입니다.
|
||||
대상 게시판에 설정되어 있는 제목과 설명을 이용하여 설명을 출력합니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
把一个或多个版面显示为论坛主界面样式的控件。
|
||||
论坛标题及说明参考各对象版面里设置的标题和说明。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
1つまたは複数の掲示板をフォーラム形式にまとめて表示するウィジェットです。
|
||||
フォーラムに属する掲示板のタイトルと説明を用いて、説明を表示します。
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
This widget displays newest articles from one or more board in forum style.
|
||||
Description will be displayed with target board's title and description.
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este widget muestra más reciente de artículos de uno o varios bordo de estilo en el foro. Descripción se mostrará con la meta bordo del título y la descripción.
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
Этот виджет отображает новейшие изделия из одной или нескольких борту в стиле форума. Описание будет отображаться с целевыми борту название и описание.
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
把一個或多個討論板顯示成論壇介面的widget。
|
||||
論壇標題及說明,請參考各討論板裡的標題設置與說明。
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2008-01-23</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">zero</name>
|
||||
<name xml:lang="en">Zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="duration_new">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">new 표시 시간 (hours)</name>
|
||||
<name xml:lang="zh-CN">new图标显示时间(hours)</name>
|
||||
<name xml:lang="jp">Newの表示時間 (Hours)</name>
|
||||
<name xml:lang="en">Duration of indication for new item</name>
|
||||
<name xml:lang="es">Duration of indication for new item</name>
|
||||
<name xml:lang="ru">Длительность индикации для новых объектов</name>
|
||||
<name xml:lang="zh-TW">new圖案顯示時間(hours)</name>
|
||||
<description xml:lang="ko">새로 등록된 게시물의 new 표시시간을 정할 수 있습니다. (시간 단위)</description>
|
||||
<description xml:lang="zh-CN">可以设置最新更新主题的new图标显示时间。</description>
|
||||
<description xml:lang="jp">新しく登録された書き込みに対して「New」の表示時間を指定します(時間単位)。</description>
|
||||
<description xml:lang="en">You may set the duration of indication for fresh item. (unit is hour)</description>
|
||||
<description xml:lang="es">Usted puede configurar la duración de la indicación de un nuevo tema. (Unidad es hora)</description>
|
||||
<description xml:lang="ru">Вы можете установить длительность индикации для нового объекта. (единица - час)</description>
|
||||
<description xml:lang="zh-TW">可設置最後修改主題的new圖案顯示時間。</description>
|
||||
</var>
|
||||
<var id="subject_cut_size">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">제목 글자수</name>
|
||||
<name xml:lang="jp">タイトルの文字数</name>
|
||||
<name xml:lang="zh-CN">标题字数</name>
|
||||
<name xml:lang="en">Length of Subject</name>
|
||||
<name xml:lang="es">Número de letras del título</name>
|
||||
<name xml:lang="ru">Длина темы</name>
|
||||
<name xml:lang="zh-TW">標題字數</name>
|
||||
<description xml:lang="ko">제목 글자수를 지정할 수 있습니다. (0또는 비워주시면 자르지 않습니다)</description>
|
||||
<description xml:lang="jp">タイトルの文字数を設定します(「0」または空欄の場合は、文字数を制限しません)。</description>
|
||||
<description xml:lang="zh-CN">可以设置标题的字数。(0或留空为不限)</description>
|
||||
<description xml:lang="en">Length of Subject can be assigned. (0 or blank value will not restrict the length)</description>
|
||||
<description xml:lang="es">El largo del título puede ser asignado. (valor 0 o en blanco no restringe el largo)</description>
|
||||
<description xml:lang="ru">Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину)</description>
|
||||
<description xml:lang="zh-TW">可設置標題的字數。(0或留白為不限制)</description>
|
||||
</var>
|
||||
<var id="module_srls">
|
||||
<type>module_srl_list</type>
|
||||
<name xml:lang="ko">대상 모듈</name>
|
||||
<name xml:lang="zh-CN">模块对象</name>
|
||||
<name xml:lang="jp">モジュール</name>
|
||||
<name xml:lang="en">Target Module</name>
|
||||
<name xml:lang="es">Módulo Objetivo</name>
|
||||
<name xml:lang="ru">Модуль назначения</name>
|
||||
<name xml:lang="zh-TW">目標模組</name>
|
||||
<description xml:lang="ko">선택하신 모듈에 등록된 글을 대상으로 합니다.</description>
|
||||
<description xml:lang="zh-CN">将把所选模块当中的主题作为对象。</description>
|
||||
<description xml:lang="jp">チェックされたモジュールに登録されたコンテンツ(書き込み)を対象とします。</description>
|
||||
<description xml:lang="en">The target articles to be sorted will be the ones submitted in the selected module.</description>
|
||||
<description xml:lang="es">El objetivo de los documentos agregados serán los del módulo selccionado.</description>
|
||||
<description xml:lang="ru">Статьи назначения для сортировки будут теми, что были размещены в выбранном модуле.</description>
|
||||
<description xml:lang="zh-TW">把所選擇之模組當作目標。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,141 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @class forum
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief 최근 게시물을 출력하는 위젯
|
||||
* @version 0.1
|
||||
**/
|
||||
|
||||
class forum extends WidgetHandler {
|
||||
|
||||
/**
|
||||
* @brief 위젯의 실행 부분
|
||||
*
|
||||
* ./widgets/위젯/conf/info.xml 에 선언한 extra_vars를 args로 받는다
|
||||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srls로 위젯에서 변경)
|
||||
$oModuleModel = &getModel('module');
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
if(count($mid_list)) {
|
||||
$module_srls = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
if(count($module_srls)) $args->module_srls = implode(',',$module_srls);
|
||||
else $args->module_srls = null;
|
||||
}
|
||||
}
|
||||
|
||||
// 선택된 모듈이 없으면 실행 취소
|
||||
if(!$args->module_srls) return Context::getLang('msg_not_founded');
|
||||
|
||||
// 제목
|
||||
$title = $args->title;
|
||||
|
||||
// 최근 글 표시 시간
|
||||
$duration_new = $args->duration_new;
|
||||
if(!$duration_new) $duration_new = 12;
|
||||
|
||||
// 제목 길이 자르기
|
||||
$subject_cut_size = $args->subject_cut_size;
|
||||
if(!$subject_cut_size) $subject_cut_size = 0;
|
||||
|
||||
// 대상 모듈 목록을 구함
|
||||
$module_list = $oModuleModel->getModulesInfo($args->module_srls);
|
||||
if(!count($module_list)) return Context::getLang('msg_not_founded');
|
||||
|
||||
// 각 모듈별로 먼저 정리 시작
|
||||
$site_domain = array(0 => Context::getDefaultUrl());
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) $site_domain[$site_module_info->site_srl] = $site_module_info->domain;
|
||||
|
||||
$module_srls = array();
|
||||
foreach($module_list as $module) {
|
||||
$modules[$module->module_srl]->title = $module->browser_title;
|
||||
$modules[$module->module_srl]->mid = $module->mid;
|
||||
$modules[$module->module_srl]->description = $module->description;
|
||||
$modules[$module->module_srl]->document_count = 0;
|
||||
$modules[$module->module_srl]->comment_count = 0;
|
||||
|
||||
if(!$site_domain[$module->site_srl]) {
|
||||
$site_info = $oModuleModel->getSiteInfo($module->site_srl);
|
||||
$site_domain[$site_info->site_srl] = $site_info->domain;
|
||||
}
|
||||
$modules[$module->module_srl]->domain = $site_domain[$module->site_srl];
|
||||
|
||||
|
||||
// 최근 등록된 댓글의 정보
|
||||
$last_comment = null;
|
||||
$last_args = null;
|
||||
$last_args->module_srl = $module->module_srl;
|
||||
$output = executeQuery('widgets.forum.getLatestComments', $last_args);
|
||||
if($output->data && is_array($output->data)) {
|
||||
$last_comment = array_pop($output->data);
|
||||
$last_comment->content_type = 'comment';
|
||||
}
|
||||
|
||||
// 최근 등록된 글의 정보
|
||||
$last_document = null;
|
||||
$last_args = null;
|
||||
$last_args->module_srl = $module->module_srl;
|
||||
$output = executeQuery('widgets.forum.getLatestDocuments', $last_args);
|
||||
if($output->data && is_array($output->data)) {
|
||||
$last_document = array_pop($output->data);
|
||||
$last_document->content_type = 'document';
|
||||
}
|
||||
|
||||
$last_item = null;
|
||||
if($last_comment && $last_document) {
|
||||
if($last_document->regdate > $last_comment->regdate) $last_item = $last_document;
|
||||
else $last_item = $last_comment;
|
||||
} elseif($last_document) {
|
||||
$last_item = $last_document;
|
||||
} elseif($last_comment) {
|
||||
$last_item = $last_comment;
|
||||
}
|
||||
$modules[$module->module_srl]->last_item = $last_item;
|
||||
|
||||
if($last_item && $last_item->regdate > date("YmdHis",time()-$duration_new*60*60)) $modules[$module->module_srl]->is_new = true;
|
||||
$module_srls[] = $module->module_srl;
|
||||
}
|
||||
|
||||
// 각 모듈별 전체글을 구함
|
||||
if($module_srls) $total_documents_args->module_srls = implode(',',$module_srls);
|
||||
$total_documents_output = executeQueryArray('widgets.forum.getTotalDocuments',$total_documents_args);
|
||||
if($total_documents_output->data) {
|
||||
foreach($total_documents_output->data as $val) {
|
||||
$modules[$val->module_srl]->document_count = $val->count;
|
||||
}
|
||||
}
|
||||
|
||||
// 각 모듈별 댓글 수를 구함
|
||||
$total_comments_args->module_srls = implode(',',$module_srls);
|
||||
|
||||
$total_comments_output = executeQueryArray('widgets.forum.getTotalComments',$total_comments_args);
|
||||
if($total_comments_output->data) {
|
||||
foreach($total_comments_output->data as $val) {
|
||||
$modules[$val->module_srl]->comment_count = $val->count;
|
||||
}
|
||||
}
|
||||
|
||||
$widget_info->title = $title;
|
||||
$widget_info->modules = $modules;
|
||||
$widget_info->subject_cut_size = $subject_cut_size;
|
||||
$widget_info->duration_new = $duration_new * 60*60;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
<query id="getLatestComments" action="select">
|
||||
<tables>
|
||||
<table name="comments" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="in" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="list_order" order="asc" />
|
||||
<list_count var="list_count" default="1" />
|
||||
<page_count var="page_count" default="1" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
<query id="getLatestDocuments" action="select">
|
||||
<tables>
|
||||
<table name="documents" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="in" column="module_srl" var="module_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="list_order" order="asc" />
|
||||
<list_count var="list_count" default="1" />
|
||||
<page_count var="page_count" default="1" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<query id="getTotalComments" action="select">
|
||||
<tables>
|
||||
<table name="comments" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="module_srl" alias="module_srl"/>
|
||||
<column name="count(*)" alias="count" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="module_srl" var="module_srls" filter="numbers" notnull="notnull" />
|
||||
</conditions>
|
||||
<groups>
|
||||
<group column="module_srl" />
|
||||
</groups>
|
||||
</query>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<query id="getTotalDocuments" action="select">
|
||||
<tables>
|
||||
<table name="documents" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="module_srl" alias="module_srl"/>
|
||||
<column name="count(*)" alias="count" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="module_srl" var="module_srls" filter="numbers" notnull="notnull" />
|
||||
</conditions>
|
||||
<groups>
|
||||
<group column="module_srl" />
|
||||
</groups>
|
||||
</query>
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
@charset "utf-8";
|
||||
|
||||
.widgetContainer a{ text-decoration:none;}
|
||||
.widgetContainer a:hover,
|
||||
.widgetContainer a:active,
|
||||
.widgetContainer a:focus{ text-decoration:underline;}
|
||||
.widgetContainer img{ border:0;}
|
||||
.widgetContainer sup{ position:relative; line-height:1; display:inline-block; margin:-5px 0; *padding:0 1px;}
|
||||
.widgetContainer form{ margin:0; padding:0;}
|
||||
.widgetContainer fieldset{ border:0; margin:0; padding:0;}
|
||||
|
||||
.widgetTableC { width:100%; font-size:12px; position:relative; border:0; border-top:1px solid;}
|
||||
.widgetTableC td{ border:0; line-height:1.5; white-space:nowrap; vertical-align:top; padding:10px; border-bottom:1px solid;}
|
||||
.widgetTableC td.title,
|
||||
.widgetTableC td.lastDoc{ width:100%; white-space:nowrap;}
|
||||
.widgetTableC td.docNum{}
|
||||
.widgetTableC td.docNum em{ display:block; padding:12px 0 0 5px; width:50px; height:21px; font-size:11px; font-weight:bold; font-style:normal; font-family:Tahoma; color:#fff; background:url(../img/iconForumNum.gif) no-repeat 0 0;}
|
||||
.widgetTableC td.title a{ font-weight:bold; text-decoration:underline !important;}
|
||||
.widgetTableC td.title dl{ margin:0;}
|
||||
.widgetTableC td.title dd{ margin:0;}
|
||||
.widgetTableC td.lastDoc p{ margin:0;}
|
||||
.widgetTableC td .author{ margin-right:5px;}
|
||||
.widgetTableC td .time{ font-size:11px; font-family:Tahoma;}
|
||||
.widgetTableC td .time .date{ margin-right:5px;}
|
||||
|
||||
/* widgetTableC */
|
||||
.widgetTableC{ border-color:#e5e5e5;}
|
||||
.widgetTableC td{ border-color:#e5e5e5;}
|
||||
.widgetTableC td.title a{ color:#333;}
|
||||
.widgetTableC td.title dd{ color:#888;}
|
||||
.widgetTableC td.lastDoc p a{ color:#333;}
|
||||
.widgetTableC td.lastDoc .author{ color:#888;}
|
||||
.widgetTableC td.lastDoc .time{ color:#888;}
|
||||
|
||||
.widgetContainer.black .widgetContainer a{ text-decoration:none;}
|
||||
.widgetContainer.black .widgetContainer a:hover,
|
||||
.widgetContainer.black .widgetContainer a:active,
|
||||
.widgetContainer.black .widgetContainer a:focus{ text-decoration:underline;}
|
||||
.widgetContainer.black .widgetContainer img{ border:0;}
|
||||
.widgetContainer.black .widgetContainer sup{ position:relative; line-height:1; display:inline-block; margin:-5px 0; *padding:0 1px;}
|
||||
.widgetContainer.black .widgetContainer form{ margin:0; padding:0;}
|
||||
.widgetContainer.black .widgetContainer fieldset{ border:0; margin:0; padding:0;}
|
||||
|
||||
.widgetContainer.black .widgetTableC { width:100%; font-size:12px; position:relative; border:0; border-top:1px solid;}
|
||||
.widgetContainer.black .widgetTableC td{ border:0; line-height:1.5; white-space:nowrap; vertical-align:top; padding:10px; border-bottom:1px solid;}
|
||||
.widgetContainer.black .widgetTableC td.title,
|
||||
.widgetContainer.black .widgetTableC td.lastDoc{ width:100%; white-space:nowrap;}
|
||||
.widgetContainer.black .widgetTableC td.docNum{}
|
||||
.widgetContainer.black .widgetTableC td.docNum em{ display:block; padding:12px 0 0 5px; width:50px; height:21px; font-size:11px; font-weight:bold; font-style:normal; font-family:Tahoma; color:#fff; background:url(../img/iconForumNum.gif) no-repeat 0 0;}
|
||||
.widgetContainer.black .widgetTableC td.title a{ font-weight:bold; text-decoration:underline !important;}
|
||||
.widgetContainer.black .widgetTableC td.title dl{ margin:0;}
|
||||
.widgetContainer.black .widgetTableC td.title dd{ margin:0;}
|
||||
.widgetContainer.black .widgetTableC td.lastDoc p{ margin:0;}
|
||||
.widgetContainer.black .widgetTableC td .author{ margin-right:5px;}
|
||||
.widgetContainer.black .widgetTableC td .time{ font-size:11px; font-family:Tahoma;}
|
||||
.widgetContainer.black .widgetTableC td .time .date{ margin-right:5px;}
|
||||
|
||||
.widgetContainer.black .widgetTableC{ border-color:#7f7f7f;}
|
||||
.widgetContainer.black .widgetTableC td{ border-color:#7f7f7f;}
|
||||
.widgetContainer.black .widgetTableC td.title a{ color:#ccc;}
|
||||
.widgetContainer.black .widgetTableC td.title dd{ color:#888;}
|
||||
.widgetContainer.black .widgetTableC td.lastDoc p a{ color:#ccc;}
|
||||
.widgetContainer.black .widgetTableC td.lastDoc .author{ color:#888;}
|
||||
.widgetContainer.black .widgetTableC td.lastDoc .time{ color:#888;}
|
||||
|
Before Width: | Height: | Size: 125 B |
|
Before Width: | Height: | Size: 64 B |
|
|
@ -1,40 +0,0 @@
|
|||
<!--@if($colorset == "black" || $colorset == "white")-->
|
||||
<!--%import("./css/widget.css")-->
|
||||
<!--@end-->
|
||||
|
||||
<div class="widgetContainer<!--@if($colorset=="black")--> black<!--@end-->">
|
||||
<table class="widgetTableC" border="1" cellspacing="0">
|
||||
<tbody>
|
||||
<!--@foreach($widget_info->modules as $val)-->
|
||||
<tr>
|
||||
<td class="docNum">
|
||||
<em>{number_format($val->document_count)}</em>
|
||||
</td>
|
||||
<td class="title">
|
||||
<dl>
|
||||
<dt><a href="{getSiteUrl($val->domain,'','mid',$val->mid)}">{$val->title}</a></dt>
|
||||
<dd>{$val->description}</dd>
|
||||
</dl>
|
||||
</td>
|
||||
<td class="lastDoc">
|
||||
<!--@if($val->last_item)-->
|
||||
<p>
|
||||
<!--@if($val->last_item->content_type == 'comment')-->
|
||||
<a href="{getSiteUrl($val->domain,'','document_srl',$val->last_item->document_srl)}#comment_{$val->last_item->comment_srl}">{cut_str(strip_tags($val->last_item->content),26,'...')}</a>
|
||||
<!--@else-->
|
||||
<a href="{getSiteUrl($val->domain,'','document_srl',$val->last_item->document_srl)}">{cut_str(strip_tags($val->last_item->title),26,'...')}</a>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($val->is_new)--><img src="./img/new.gif" alt="New" width="9" height="9" /><!--@end--></p>
|
||||
<a href="#" class="author member_{$val->last_item->member_srl}">{$val->last_item->nick_name}</a> <span class="time"><span class="date">{zdate($val->last_item->regdate,"Y-m-d")}</span> <span class="hour">{zdate($val->last_item->regdate,"H:i")}</span></span>
|
||||
<!--@else-->
|
||||
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">기본 포럼형 위젯 스킨</title>
|
||||
<title xml:lang="jp">基本フォーラム型ウィジェットスキン</title>
|
||||
<title xml:lang="zh-CN">论坛主界面样式列表默认皮肤</title>
|
||||
<title xml:lang="en">기본 포럼형 위젯 스킨</title>
|
||||
<title xml:lang="zh-TW">論壇樣式預設面板</title>
|
||||
<description xml:lang="ko">포럼형 위젯의 기본 스킨입니다.</description>
|
||||
<description xml:lang="jp">フォーラム型のウィジェット基本スキンです。</description>
|
||||
<description xml:lang="zh-CN">论坛主界面样式列表默认皮肤。</description>
|
||||
<description xml:lang="en">포럼형 위젯의 기본 스킨입니다.</description>
|
||||
<description xml:lang="zh-TW">論壇樣式預設面板。</description>
|
||||
<version>0.1</version>
|
||||
<date>2008-01-23</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">하얀색(기본)</title>
|
||||
<title xml:lang="jp">白(デフォルト)</title>
|
||||
<title xml:lang="zh-CN">白色(默认)</title>
|
||||
<title xml:lang="en">White (default)</title>
|
||||
<title xml:lang="zh-TW">白色(預設)</title>
|
||||
</color>
|
||||
<color name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<title xml:lang="zh-TW">黑色</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,448 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<title xml:lang="ko">이미지 카운터 위젯</title>
|
||||
<title xml:lang="zh-CN">图像访问统计</title>
|
||||
<title xml:lang="jp">イメージカウンターウィジェット</title>
|
||||
<title xml:lang="es">Widget Contador de imagen</title>
|
||||
<title xml:lang="en">Image Counter</title>
|
||||
<title xml:lang="ru">Виджет изображения счетчика</title>
|
||||
<title xml:lang="zh-TW">圖形統計</title>
|
||||
<description xml:lang="ko">
|
||||
XE의 기본 카운터를 블로그나 사이트에 달 수 있는 작은 그래프로 표시를 합니다.
|
||||
크기, 배경색등의 조건을 설정하지 않으시면 기본 설정으로 사용됩니다.
|
||||
그래프를 그리기 위해서 GD 라이브러리가 설치되어 있어야 합니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
可以添加到博客或网站的图像访问统计控件。
|
||||
不设置控件大小,背景色时,将使用默认设置。
|
||||
因程序需要自动画出图像所以服务器段必须得安装有GD库。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
XEのデフォルトカウンターをブログまたはサイトに挿入し、小さいグラフで表示します。
|
||||
大きさ、背景色などの条件を設定しないとデフォルトの設定が適用されます。
|
||||
グラフを出力するためには、GDライブラリが必要です。
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Este widget contador de image muestra un pequeño gráfico para ser añadidos en el blog o sitios.
|
||||
Si no configura el tamaño, color de fondo, etc., se utiliza la configuración predefinida.
|
||||
Para dibujar el gráfico debe estar instalada la librería GD.
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
Image counter widget presents a small graph showing the number of visitors, which you can attach to your blogs or sites.
|
||||
Unless you configure settings, such as size, and background color, it uses predefined configuration.
|
||||
To show the graph, GD library should be installed.
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
Виджет изображения счетчика представляет маленький график, показывающий количество посетителей, который Вы можете присоединить к Вашим блогам или сайтам.
|
||||
Пока Вы не сконфигурируете настройки, такие как размер и цвет фона, он будет исользовать предустановленную конфигурацию.
|
||||
Чтобы отображать график, GD библиотека должна быть установлена.
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
可新增到部落格或網站的圖形統計 Widget。
|
||||
不設定尺寸大小、背景顏色時,將使用預設。
|
||||
輸出圖形時,主機必須要安裝 GD library。
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-08-27</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">Zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="zh-TW">Zero</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="graph_width">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">가로 크기</name>
|
||||
<name xml:lang="zh-CN">宽度</name>
|
||||
<name xml:lang="jp">横幅サイズ設定</name>
|
||||
<name xml:lang="es">Tamaño del ancho</name>
|
||||
<name xml:lang="en">Width</name>
|
||||
<name xml:lang="ru">Ширина</name>
|
||||
<name xml:lang="zh-TW">寬度</name>
|
||||
<description xml:lang="ko">
|
||||
그래프 이미지의 가로크기를 지정하실 수 있습니다.
|
||||
지정하지 않으시면 150px로 지정되며 숫자로 입력을 해주세요.
|
||||
코드 생성 페이지의 하단에 있는 가로크기와 다르게 적용됩니다.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
可指定图像宽度。
|
||||
默认为150px。只需输入数字即可。
|
||||
此宽度不同于代码生产页面的宽度。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
グラフイメージの横幅サイズを指定します。
|
||||
指定しない場合は「150px」が指定されます。数字で入力して下さい。
|
||||
コード生成ページの下端にある横幅サイズとは異なって適用されます。
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Uste puede asignar el tamaño del ancho para el imágen del gráfico.
|
||||
Debe ingresar en números. Si no lo asigna, será de 150px.
|
||||
Se aplica de manera diferente con el tamaño de la altura que se encuentra en la parte inferior de la página de generar códigos
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
You can set the width of the graph image.
|
||||
If you don't input any value, it will be defined as 150px.
|
||||
This value is applied differently from widget's width you can find at the bottom of this page.
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
Вы можете установить ширину изображения графика.
|
||||
Если Вы не введете значение, стандарное будет установлено как 150px.
|
||||
Это значение применяется иным образом, нежели ширина виджета, которую Вы можете найти внизу этой страницы.
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
指定圖片寬度。
|
||||
預設是150px。只需輸入數字即可。
|
||||
此寬度與原始碼建立頁面的寬度是不同的。
|
||||
</description>
|
||||
</var>
|
||||
<var id="graph_height">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">세로 크기</name>
|
||||
<name xml:lang="zh-CN">高度</name>
|
||||
<name xml:lang="jp">縦幅サイズ設定</name>
|
||||
<name xml:lang="es">Tamaño de la Altura</name>
|
||||
<name xml:lang="en">Height</name>
|
||||
<name xml:lang="zh-TW">高度</name>
|
||||
<description xml:lang="ko">
|
||||
그래프 이미지의 세로 크기를 지정하실 수 있습니다.
|
||||
지정하지 않으시면 100px로 지정되며 숫자로 입력을 해주세요.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
可指定图像宽度。
|
||||
默认为100px。只需输入数字即可。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
グラフイメージの縦幅サイズを指定します。
|
||||
指定しない場合は「100px」が指定されます。数字で入力して下さい。
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Uste puede asignar el tamaño de la altura para el imágen del gráfico.
|
||||
Debe ingresar en números. Si no lo asigna, será de 100px.
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
You can set the height of the graph image.
|
||||
If you don't input any value, it will be defined as 100px.
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
Вы можете установить высоту изображения графика.
|
||||
Если Вы не введете значение, стандарное будет установлено как 100px.
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
可指定圖片高度。
|
||||
預設是100px。只需輸入數字即可。
|
||||
</description>
|
||||
</var>
|
||||
<var id="day_range">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">출력 기간</name>
|
||||
<name xml:lang="zh-CN">显示期间</name>
|
||||
<name xml:lang="jp">出力期間</name>
|
||||
<name xml:lang="es">Tiempo a mostrar</name>
|
||||
<name xml:lang="en">Duration</name>
|
||||
<name xml:lang="zh-TW">顯示時間</name>
|
||||
<description xml:lang="ko">
|
||||
오늘부터 지정하신 출력기간 만큼의 데이터를 그래프로 출력합니다.
|
||||
숫자를 입력해주세요. (기본 지난 7일)
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
用图像显示“显示期间”内的访问统计数据。
|
||||
请输入数字(默认为7日)。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
今日から指定した期間だけのデータをグラフで表示します。
|
||||
数字を入力して下さい(デフォルト:過去7日)。
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
Desde el día de hoy hasta el tiempo asignado, se mostrará el gráfico.
|
||||
Ingrese números. (Predefinido: transcurridos los 7 días)
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
The graph would contain the data of the assigned duration from today.
|
||||
Input numerical value (unit:day, default: past 7 days).
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
График будет содержать данные, присвоенного промежутка, начиная с сегодня.
|
||||
Введите цифровое значение (ед.: день, стандарт: прошедшие 7 дней).
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
用圖形表示“顯示期間”之內的統計資料。
|
||||
請輸入數字(預設是7天)。
|
||||
</description>
|
||||
</var>
|
||||
<var id="bg_color">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">배경색</name>
|
||||
<name xml:lang="zh-CN">背景色</name>
|
||||
<name xml:lang="jp">背景色</name>
|
||||
<name xml:lang="es">Color de Fondo</name>
|
||||
<name xml:lang="en">Background Color</name>
|
||||
<name xml:lang="ru">Цвет фона</name>
|
||||
<name xml:lang="zh-TW">背景顏色</name>
|
||||
<description xml:lang="ko">
|
||||
<![CDATA[지정하신 색상 코드로 배경을 그립니다.
|
||||
기본 : #FFFFFF
|
||||
#과 6자리의 색상코드 입력해주세요]]>
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
<![CDATA[用指定的颜色代码画出背景。
|
||||
默认 : #FFFFFF
|
||||
请输入#和6位颜色代码。]]>
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
<![CDATA[指定された色コードで背景イメージを描きます。
|
||||
デフォルト : #FFFFFF
|
||||
#と6桁の色コードを入力して下さい。]]>
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
<![CDATA[Con el código del color asignado dibujará el color de fondo.
|
||||
Predefinido : #FFFFFF
|
||||
Ingrese # + 6 espacios del código del color]]>
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
<![CDATA[Set background color as the assigned color code.
|
||||
Default : <span style="color:#FFFFFF">#FFFFFF</span>
|
||||
Input as # + 6 digit color code.]]>
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
<![CDATA[Установить цвет фона как присвоенный цвет.
|
||||
Стандарт : <span style="color:#FFFFFF">#FFFFFF</span>
|
||||
Вводите как # + 6-ти цифровой код цвета.]]>
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
<![CDATA[指定背景的顏色代碼。
|
||||
預設 : #FFFFFF
|
||||
請輸入#和6位顏色代碼。]]>
|
||||
</description>
|
||||
</var>
|
||||
<var id="check_bg_color">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">체크 무늬 배경색</name>
|
||||
<name xml:lang="zh-CN">网格背景色</name>
|
||||
<name xml:lang="jp">チェック柄の背景色</name>
|
||||
<name xml:lang="es">Textura escocés de fondo</name>
|
||||
<name xml:lang="en">Background Color for the Darker part</name>
|
||||
<name xml:lang="ru">Цвет фона для темной части</name>
|
||||
<name xml:lang="zh-TW">網格背景</name>
|
||||
<description xml:lang="ko">
|
||||
<![CDATA[지정하신 색상 코드로 체크 무늬 배경을 그립니다.
|
||||
기본 : <span style="color:#F9F9F9">#F9F9F9</span>
|
||||
#과 6자리의 색상코드 입력해주세요]]>
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
<![CDATA[用指定的颜色代码画出网格背景。
|
||||
默认 : <span style="color:#F9F9F9">#F9F9F9</span>
|
||||
请输入#和6位颜色代码。]]>
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
<![CDATA[指定した色コードでチェック柄の背景を描きます。
|
||||
デフォルト : <span style="color:#F9F9F9">#F9F9F9</span>
|
||||
#と6桁の色コードを入力して下さい。]]>
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
<![CDATA[Con el código del color asignado dibujará la textura escocés de fondo.
|
||||
Predefinido : <span style="color:#F9F9F9">#F9F9F9</span>
|
||||
Ingrese # + 6 espacios del código del color]]>
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
<![CDATA[Set background color of the darker part as the assigned color code.
|
||||
Default : <span style="color:#F9F9F9">#F9F9F9</span>
|
||||
Input as # + 6 digit color code.]]>
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
<![CDATA[Установить цвет фона для темной части как присвоенный цвет.
|
||||
Стандарт : <span style="color:#F9F9F9">#F9F9F9</span>
|
||||
Вводите как # + 6-ти цифровой код цвета.]]>
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
<![CDATA[用指定的顏色代码画出网格背景。
|
||||
預設 : <span style="color:#F9F9F9">#F9F9F9</span>
|
||||
請輸入#和6位顏色代碼。]]>
|
||||
</description>
|
||||
</var>
|
||||
<var id="grid_color">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">격자 선 색</name>
|
||||
<name xml:lang="zh-CN">网格线颜色</name>
|
||||
<name xml:lang="jp">グリッド線の色</name>
|
||||
<name xml:lang="es">Color Línea de la grilla</name>
|
||||
<name xml:lang="en">Color of Grid</name>
|
||||
<name xml:lang="ru">Цвет решетки</name>
|
||||
<name xml:lang="zh-TW">網格顏色</name>
|
||||
<description xml:lang="ko">
|
||||
<![CDATA[지정하신 색상 코드로 xy 격자를 그립니다.
|
||||
기본 : <span style="color:#9d9d9d">#9d9d9d</span>
|
||||
#과 6자리의 색상코드 입력해주세요]]>
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
<![CDATA[用指定的颜色代码画出网格线。
|
||||
默认 : <span style="color:#9d9d9d">#9d9d9d</span>
|
||||
请输入#和6位颜色代码。]]>
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
<![CDATA[指定した色コードでXYのグリッドを描きます。
|
||||
デフォルト : <span style="color:#9d9d9d">#9d9d9d</span>
|
||||
#と6桁の色コードを入力して下さい。]]>
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
<![CDATA[Con el código del color asignado dibujará la grille xy.
|
||||
Predefinido : <span style="color:#9d9d9d">#9d9d9d</span>
|
||||
Ingrese # + 6 espacios del código del color]]>
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
<![CDATA[Set the color of grid as the assigned color code.
|
||||
Default : <span style="color:#9d9d9d">#9d9d9d</span>
|
||||
Input as # + 6 digit color code.]]>
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
<![CDATA[Установить цвет фона для решетки как присвоенный цвет.
|
||||
Стандарт : <span style="color:#9d9d9d">#9d9d9d</span>
|
||||
Вводите как # + 6-ти цифровой код цвета.]]>
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
<![CDATA[指定網格顏色代碼。
|
||||
預設 : <span style="color:#9d9d9d">#9d9d9d</span>
|
||||
請輸入#和6位顏色代碼。]]>
|
||||
</description>
|
||||
</var>
|
||||
<var id="unique_line_color">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">그래프 선색</name>
|
||||
<name xml:lang="zh-CN">图像曲线颜色</name>
|
||||
<name xml:lang="jp">グラフ線の色</name>
|
||||
<name xml:lang="es">Color Línea del Gráfico</name>
|
||||
<name xml:lang="en">Color of the Lines</name>
|
||||
<name xml:lang="ru">Цвет линий</name>
|
||||
<name xml:lang="zh-TW">線條顏色</name>
|
||||
<description xml:lang="ko">
|
||||
<![CDATA[지정하신 색상 코드로 그래프 선색을 그립니다.
|
||||
기본 : <span style="color:#BBBBBB">#BBBBBB</span>
|
||||
#과 6자리의 색상코드 입력해주세요]]>
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
<![CDATA[用指定的颜色代码画出图像曲线。
|
||||
默认 : <span style="color:#BBBBBB">#BBBBBB</span>
|
||||
请输入#和6位颜色代码。]]>
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
<![CDATA[指定した色コードでグラフ線を描きます。
|
||||
デフォルト : <span style="color:#BBBBBB">#BBBBBB</span>
|
||||
#と6桁の色コードを入力して下さい。]]>
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
<![CDATA[Con el código del color asignado dibujará la línea del gráfico.
|
||||
Predefinido : <span style="color:#BBBBBB">#BBBBBB</span>
|
||||
Ingrese # + 6 espacios del código del color]]>
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
<![CDATA[Set the color of the lines in the graph as the assigned color code.
|
||||
Default : <span style="color:#BBBBBB">#BBBBBB</span>
|
||||
Input as # + 6 digit color code.]]>
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
<![CDATA[Установить цвет фона для линий как присвоенный цвет.
|
||||
Стандарт : <span style="color:#BBBBBB">#BBBBBB</span>
|
||||
Вводите как # + 6-ти цифровой код цвета.]]>
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
<![CDATA[指定線條的顏色代碼。
|
||||
預設 : <span style="color:#BBBBBB">#BBBBBB</span>
|
||||
請輸入#和6位顏色代碼。]]>
|
||||
</description>
|
||||
</var>
|
||||
<var id="unique_text_color">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">방문자 수 글자색</name>
|
||||
<name xml:lang="zh-CN">访问统计数颜色</name>
|
||||
<name xml:lang="jp">訪問者数の文字色</name>
|
||||
<name xml:lang="es">Color del número de los visitados</name>
|
||||
<name xml:lang="en">Character Color of the number of visitors</name>
|
||||
<name xml:lang="ru">Цвет знаков числа посетителей</name>
|
||||
<name xml:lang="zh-TW">統計數字顏色</name>
|
||||
<description xml:lang="ko">
|
||||
<![CDATA[지정하신 색상 코드로 방문자 수 글자를 표시합니다.
|
||||
Predefinido : <span style="color:#666666">#666666</span>
|
||||
Ingrese # + 6 espacios del código del color]]>
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
<![CDATA[用指定的颜色代码显示访问统计数。
|
||||
Predefinido : <span style="color:#666666">#666666</span>
|
||||
Ingrese # + 6 espacios del código del color]]>
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
<![CDATA[指定した色コードで訪問者数の文字を描きます。
|
||||
デフォルト : <span style="color:#666666">#666666</span>
|
||||
#と6桁の色コードを入力して下さい。]]>
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
<![CDATA[Con el código del color asignado mostrará el número de los visitados.
|
||||
Predefinido : <span style="color:#666666">#666666</span>
|
||||
Ingrese # + 6 espacios del código del color]]>
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
<![CDATA[Set the color of the number of visitors as the assigned color code.
|
||||
Default : <span style="color:#666666">#666666</span>
|
||||
Input as # + 6 digit color code.]]>
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
<![CDATA[Установить цвет знаков числа посетителей как присвоенный цвет.
|
||||
Стандарт : <span style="color:#666666">#666666</span>
|
||||
Вводите как # + 6-ти цифровой код цвета.]]>
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
<![CDATA[指定統計數字的顏色代碼。
|
||||
預設 : <span style="color:#666666">#666666</span>
|
||||
請輸入#和6位顏色代碼。]]>
|
||||
</description>
|
||||
</var>
|
||||
<var id="point_color">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">포인트 점 색</name>
|
||||
<name xml:lang="zh-CN">节点颜色</name>
|
||||
<name xml:lang="jp">ポイントの色</name>
|
||||
<name xml:lang="es">Color del Punto</name>
|
||||
<name xml:lang="en">Color of Points</name>
|
||||
<name xml:lang="ru">Цвет поинтов</name>
|
||||
<name xml:lang="zh-TW">圓點顏色</name>
|
||||
<description xml:lang="ko">
|
||||
<![CDATA[그래프의 꺽인 포인트 부분의 점 색을 지정할 수 있습니다.
|
||||
기본 : <span style="color:#ed3027">#ed3027</span>
|
||||
#과 6자리의 색상코드 입력해주세요]]>
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
<![CDATA[可以指定节点颜色。
|
||||
默认 : <span style="color:#ed3027">#ed3027</span>
|
||||
请输入#和6位颜色代码。]]>
|
||||
</description>
|
||||
<description xml:lang="ko">
|
||||
<![CDATA[グラフの曲がった部分の点の色を指定します。
|
||||
デフォルト : <span style="color:#ed3027">#ed3027</span>
|
||||
#と6桁の色コードを入力して下さい。]]>
|
||||
</description>
|
||||
<description xml:lang="es">
|
||||
<![CDATA[Con el código del color asignado mostrará el color del punto en donde la línea del gráfico esté doblado.
|
||||
Predefinido : <span style="color:#ed3027">#ed3027</span>
|
||||
Ingrese # + 6 espacios del código del color]]>
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
<![CDATA[Set the color of the points as the assigned color code.
|
||||
Default : <span style="color:#ed3027">#ed3027</span>
|
||||
Input as # + 6 digit color code.]]>
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
<![CDATA[Установить цвет поинтов как присвоенный цвет.
|
||||
Стандарт : <span style="color:#ed3027">#ed3027</span>
|
||||
Вводите как # + 6-ти цифровой код цвета.]]>
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
<![CDATA[指定圓點顏色。
|
||||
默认 : <span style="color:#ed3027">#ed3027</span>
|
||||
請輸入#和6位顏色代碼。]]>
|
||||
</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,165 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @class image_counter
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @version 0.1
|
||||
* @brief counter 모듈의 데이터를 이용하여 counter 현황을 출력
|
||||
**/
|
||||
|
||||
class image_counter extends WidgetHandler {
|
||||
|
||||
/**
|
||||
* @brief 위젯의 실행 부분
|
||||
* ./widgets/위젯/conf/info.xml에 선언한 extra_vars를 args로 받는다
|
||||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
// 인자 값 정리
|
||||
$graph_width = (int)$args->graph_width?$args->graph_width:150;
|
||||
$graph_height = (int)$args->graph_height?$args->graph_height:100;
|
||||
$day_range = (int)$args->day_range?$args->day_range:7;
|
||||
if($day_range < 7) $day_range = 7;
|
||||
|
||||
$bg_color = hexrgb($args->bg_color?$args->bg_color:'#FFFFFF');
|
||||
$check_bg_color = hexrgb($args->check_bg_color?$args->check_bg_color:'#F9F9F9');
|
||||
$grid_color = hexrgb($args->grid_color?$args->grid_color:'#dbdbdb');
|
||||
$unique_line_color = hexrgb($args->unique_line_color?$args->unique_line_color:'#BBBBBB');
|
||||
$unique_text_color = hexrgb($args->unique_text_color?$args->unique_text_color:'#666666');
|
||||
$point_color = hexrgb($args->point_color?$args->point_color:'#ed3027');
|
||||
|
||||
// 시작일 부터 오늘까지 일단 배열 만들어 놓기
|
||||
$start_time = ztime(date("YmdHis"))-$day_range*60*60*24;
|
||||
$end_time = time();
|
||||
$day_check_falg = 0;
|
||||
for($i=$start_time;$i<$end_time;$i+= 60*60*24) {
|
||||
$data[date("Ymd", $i+60*60*24)] = 0;
|
||||
$day_check_falg++;
|
||||
if($day_check_falg>$day_range) break;
|
||||
}
|
||||
unset($obj);
|
||||
|
||||
// 현재부터 지난 $day_range동안의 카운터 로그를 가져옴
|
||||
$obj->e_regdate = date("Ymd");
|
||||
$obj->s_regdate = date("Ymd", ztime(date("YmdHis"))-$day_range*60*60*24+1);
|
||||
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info->site_srl) {
|
||||
$obj->site_srl = $site_module_info->site_srl;
|
||||
$output = executeQuery('widgets.image_counter.getCounterSiteStatus', $obj);
|
||||
} else {
|
||||
$output = executeQuery('widgets.image_counter.getCounterStatus', $obj);
|
||||
}
|
||||
$site_srl = (int)($site_module_info->site_srl);
|
||||
|
||||
// 결과가 있다면 loop를 돌면서 최고/최저값을 구하고 그래프를 그릴 준비
|
||||
$max_unique_visitor = 0;
|
||||
$min_unique_visitor = 99999999999;
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $key => $val) {
|
||||
if($max_unique_visitor < $val->unique_visitor) $max_unique_visitor = $val->unique_visitor;
|
||||
if($min_unique_visitor > $val->unique_visitor) $min_unique_visitor = $val->unique_visitor;
|
||||
$data[$val->regdate] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
// 이미지를 그림 (이미지 위치는 ./files/cache/widget_cache/couter_graph.gif로 고정)
|
||||
if(!is_dir(_XE_PATH_.'files/cache/widget_cache/')) FileHandler::makeDir(_XE_PATH_.'files/cache/widget_cache/');
|
||||
$image_src = "files/cache/widget_cache/couter_graph.".$site_srl.".gif";
|
||||
|
||||
// 이미지 생성
|
||||
$image = imagecreate($graph_width, $graph_height);
|
||||
|
||||
// 각 종류의 색상을 지정
|
||||
$gridLine = imagecolorallocate($image, $grid_color['red'], $grid_color['green'], $grid_color['blue']);
|
||||
$fillBack = imagecolorallocate($image, $bg_color['red'], $bg_color['green'], $bg_color['blue']);
|
||||
$checkFillBack = imagecolorallocate($image, $check_bg_color['red'], $check_bg_color['green'], $check_bg_color['blue']);
|
||||
$visitorLine = imagecolorallocate($image, $unique_line_color['red'], $unique_line_color['green'], $unique_line_color['blue']);
|
||||
$visitorText = imagecolorallocate($image, $unique_text_color['red'], $unique_text_color['green'], $unique_text_color['blue']);
|
||||
$pointColor = imagecolorallocate($image, $point_color['red'], $point_color['green'], $point_color['blue']);
|
||||
|
||||
// 배경선 채우기
|
||||
imagefilledrectangle($image, 0, 0, $graph_width-1, $graph_height-1, $fillBack);
|
||||
|
||||
// 가로선 그리기
|
||||
$y_gap = ($graph_height - 32) /3;
|
||||
for($i=0;$i<4;$i++) {
|
||||
imageline($image, 5, 5+($i*$y_gap), $graph_width-5, 5+($i*$y_gap), $gridLine);
|
||||
}
|
||||
|
||||
// 세로선 그리기
|
||||
$x_gap = ($graph_width - 30) / ($day_range-1);
|
||||
for($i=0;$i<$day_range;$i++) {
|
||||
imageline($image, 15+($i*$x_gap), 5, 15+($i*$x_gap), $graph_height - 27, $gridLine);
|
||||
}
|
||||
|
||||
// 체크 무늬 배경 칠하기
|
||||
for($j=0;$j<$day_range-1;$j++) {
|
||||
for($i=0;$i<3;$i++) {
|
||||
if( ($j+$i)%2==1) continue;
|
||||
imagefilledrectangle($image, 15+($j*$x_gap)+1, 5+($i*$y_gap)+1, 15+($j*$x_gap)+$x_gap-1, 5+($i*$y_gap)+$y_gap-1, $checkFillBack);
|
||||
}
|
||||
}
|
||||
|
||||
// 그래프 그리기
|
||||
$prev_x = 0;
|
||||
$prev_y = $graph_height-45;
|
||||
$step = 0;
|
||||
|
||||
// 선 그림
|
||||
foreach($data as $date => $val) {
|
||||
// 그래프를 그리기 위한 좌표 구함
|
||||
$unique_visitor = $val->unique_visitor;
|
||||
if($max_unique_visitor == 0) $per = 0;
|
||||
else $per = $val->unique_visitor / $max_unique_visitor;
|
||||
|
||||
// x,y 좌표 구함
|
||||
$cur_x = (int)($step * $x_gap);
|
||||
$cur_y = (int)( ($graph_height-45) - ($graph_height-45)*$per);
|
||||
|
||||
imageline($image, $prev_x+15, $prev_y+15, $cur_x+15, $cur_y+15, $visitorLine);
|
||||
|
||||
$prev_x = $cur_x;
|
||||
$prev_y = $cur_y;
|
||||
|
||||
$step ++;
|
||||
}
|
||||
|
||||
// 포인트 + 숫자 표시
|
||||
$prev_x = 0;
|
||||
$prev_y = $graph_height-45;
|
||||
$step = 0;
|
||||
foreach($data as $date => $val) {
|
||||
// 그래프를 그리기 위한 좌표 구함
|
||||
$unique_visitor = $val->unique_visitor;
|
||||
if($max_unique_visitor == 0) $per = 0;
|
||||
else $per = $val->unique_visitor / $max_unique_visitor;
|
||||
|
||||
// x,y 좌표 구함
|
||||
$cur_x = (int)($step * $x_gap);
|
||||
$cur_y = (int)( ($graph_height-45) - ($graph_height-45)*$per);
|
||||
|
||||
imagefilledrectangle($image, $cur_x+15-1, $cur_y+15-1, $cur_x+15+1, $cur_y+15+1, $pointColor);
|
||||
|
||||
for($j=0;$j<strlen($unique_visitor);$j++) {
|
||||
imageString($image, 1, $cur_x+6+$j*4, $cur_y+5 + ($step%2-1)*13+13, substr($unique_visitor,$j,1), $visitorText);
|
||||
}
|
||||
|
||||
$prev_x = $cur_x;
|
||||
$prev_y = $cur_y;
|
||||
|
||||
imageString($image, 1, $cur_x+15-1, $graph_height - 25, substr($date,6,2), $gridLine);
|
||||
|
||||
$step ++;
|
||||
}
|
||||
|
||||
imageString($image, 1, $graph_width - 100, $graph_height - 15, date("Y-m-d H:i:s"), $gridLine);
|
||||
|
||||
// 이미지 저장
|
||||
@imagegif($image, $image_src, 100);
|
||||
@chmod($image_src, 0644);
|
||||
|
||||
// graph의 img 태그 값을 return
|
||||
return sprintf('<img src="%s%s" border="0" alt="counter" />', Context::getRequestUri(), $image_src);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
<query id="getCounterSiteStatus" action="select">
|
||||
<tables>
|
||||
<table name="counter_site_status" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" />
|
||||
<condition operation="excess" column="regdate" var="s_regdate" notnull="notnull" pipe="and" />
|
||||
<condition operation="less" column="regdate" var="e_regdate" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<query id="getCounterStatus" action="select">
|
||||
<tables>
|
||||
<table name="counter_status" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="excess" column="regdate" var="s_regdate" notnull="notnull" />
|
||||
<condition operation="less" column="regdate" var="e_regdate" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<title xml:lang="ko">로그인 사용자 출력 위젯</title>
|
||||
<title xml:lang="jp">ログイン会員出力ウィジェット</title>
|
||||
<title xml:lang="en">Display On-Line Members</title>
|
||||
<title xml:lang="es">Mostrar Miembros On-Line</title>
|
||||
<title xml:lang="zh-CN">在线会员列表</title>
|
||||
<title xml:lang="zh-TW">顯示線上會員</title>
|
||||
<description xml:lang="ko">로그인 사용자를 출력하는 위젯입니다.</description>
|
||||
<description xml:lang="jp">ログイン中の会員リストを出力するウィジェットです。</description>
|
||||
<description xml:lang="en">This widget displays on-line members.</description>
|
||||
<description xml:lang="zh-CN">显示在线会员列表的控件。</description>
|
||||
<description xml:lang="es">Este widget muestra en línea de los miembros.</description>
|
||||
<description xml:lang="zh-TW">顯示線上會員的widget。</description>
|
||||
<version>0.1</version>
|
||||
<date>2008-06-18</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">zero</name>
|
||||
<name xml:lang="jp">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="list_count">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">목록수</name>
|
||||
<name xml:lang="jp">リストへの表示数</name>
|
||||
<name xml:lang="en">List Count</name>
|
||||
<name xml:lang="en">Lista Conde</name>
|
||||
<name xml:lang="zh-CN">目录数</name>
|
||||
<name xml:lang="zh-TW">列表數</name>
|
||||
<description xml:lang="ko">출력될 목록의 수를 정하실 수 있습니다. (기본 5개)</description>
|
||||
<description xml:lang="jp">リストに表示する数の設定です。 (デフォルト5個)</description>
|
||||
<description xml:lang="en">You may set number of list to be displayed. (default 5)</description>
|
||||
<description xml:lang="es">Usted puede configurar el número de lista que se muestra. (por defecto 5)</description>
|
||||
<description xml:lang="zh-CN">可设置要显示的目录数。 (默认为5个)</description>
|
||||
<description xml:lang="zh-TW">可設置要顯示的列表數。 (預設是5個)</description>
|
||||
</var>
|
||||
<var id="use_mid">
|
||||
<type>select</type>
|
||||
<name xml:lang="ko">대상 지정</name>
|
||||
<name xml:lang="jp">対象指定</name>
|
||||
<name xml:lang="en">Target</name>
|
||||
<name xml:lang="es">Meta</name>
|
||||
<name xml:lang="zh-CN">模块对象</name>
|
||||
<name xml:lang="zh-TW">目標模組</name>
|
||||
<description xml:lang="ko">대상을 전체로 하면 홈페이지 접속자 모두가 출력되고 Mid 구분으로 하게 되면 접속한 Mid에 같이 접속한 회원만 출력이 됩니다.</description>
|
||||
<description xml:lang="jp">「全体」に指定するとサイトにログインした全ての会員が表示され、「Mid区分」にすると該当Midにアクセスしている会員のみ表示されます。</description>
|
||||
<description xml:lang="en">All on-line members will be displayed when you set target as 'All', or members in same Mid will be displayed when target is 'By Mid'.</description>
|
||||
<description xml:lang="es">Todos los miembros en línea se mostrará cuando establece como objetivo «todos», o de los miembros en el mismo medio se visualizará cuando el objetivo es "a mediados".</description>
|
||||
<description xml:lang="zh-CN">选择“全部”将显示全部在线会员,“区分Mid”为显示各模块中的在线会员。</description>
|
||||
<description xml:lang="zh-TW">選擇“全部”會顯示全部線上會員,“以 Mid”是顯示各模組中的線上會員。</description>
|
||||
<options>
|
||||
<value>total</value>
|
||||
<name xml:lang="ko">전체</name>
|
||||
<name xml:lang="jp">全体</name>
|
||||
<name xml:lang="en">All</name>
|
||||
<name xml:lang="es">Todo</name>
|
||||
<name xml:lang="zh-CN">全部</name>
|
||||
<name xml:lang="zh-TW">全部</name>
|
||||
</options>
|
||||
<options>
|
||||
<value>mid</value>
|
||||
<name xml:lang="ko">Mid 구분</name>
|
||||
<name xml:lang="jp">Mid区分</name>
|
||||
<name xml:lang="en">By Mid</name>
|
||||
<name xml:lang="es">Por Mid</name>
|
||||
<name xml:lang="zh-CN">区分Mid</name>
|
||||
<name xml:lang="zh-TW">以 Mid</name>
|
||||
</options>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @class logged_members
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief 로그인 사용자의 목록을 출력합니다.
|
||||
* @version 0.1
|
||||
**/
|
||||
|
||||
class logged_members extends WidgetHandler {
|
||||
|
||||
/**
|
||||
* @brief 위젯의 실행 부분
|
||||
*
|
||||
* ./widgets/위젯/conf/info.xml 에 선언한 extra_vars를 args로 받는다
|
||||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
|
||||
$list_count = (int)$args->list_count;
|
||||
if(!$list_count) $list_count = 5;
|
||||
|
||||
$use_mid = $args->use_mid;
|
||||
if($use_mid == 'mid') $mid = Context::get('mid');
|
||||
else $mid = null;
|
||||
|
||||
$obj->list_count = $list_count;
|
||||
$obj->mid = $mid;
|
||||
|
||||
// session model 객체 생성
|
||||
$oSessionModel = &getModel('session');
|
||||
$output = $oSessionModel->getLoggedMembers($obj);
|
||||
$widget_info->member_list = $output->data;
|
||||
$widget_info->logged_member_count = $output->total_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 = 'list';
|
||||
|
||||
// 템플릿 컴파일
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$output = $oTemplate->compile($tpl_path, $tpl_file);
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
@charset "utf-8";
|
||||
|
||||
/* widgetUlistA */
|
||||
.widgetUlistA { margin:0; padding:0; font-size:12px; line-height:1.5;}
|
||||
.widgetUlistA li{ list-style:none;}
|
||||
.widgetUlistA li a { text-decoration:none; }
|
||||
.widgetUlistA li a{ color:#666;}
|
||||
|
||||
.widgetContainer.black .widgetUlistA { margin:0; padding:0; font-size:12px; line-height:1.5;}
|
||||
.widgetContainer.black .widgetUlistA li{ list-style:none;}
|
||||
.widgetContainer.black .widgetUlistA li a { text-decoration:none; }
|
||||
.widgetContainer.black .widgetUlistA li a{ color:#999;}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<!--@if($colorset == "black" || $colorset == "white")-->
|
||||
<!--%import("./css/widget.css")-->
|
||||
<!--@end-->
|
||||
|
||||
<div class="widgetContainer<!--@if($colorset=="black")--> black<!--@end-->">
|
||||
<ul class="widgetUlistA">
|
||||
<!--@foreach($widget_info->member_list as $key => $val)-->
|
||||
<li><a href="#" class="member_{$val->member_srl}" onclick="return false">{htmlspecialchars($val->nick_name)}</a></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">로그인 회원 출력</title>
|
||||
<title xml:lang="jp">ログイン会員出力ウィジェット</title>
|
||||
<title xml:lang="en">로그인 회원 출력</title>
|
||||
<title xml:lang="es">로그인 회원 출력</title>
|
||||
<title xml:lang="zh-CN">登录会员列表皮肤</title>
|
||||
<title xml:lang="zh-TW">顯示線上會員</title>
|
||||
<description xml:lang="ko">로그인 되어 있는 회원의 목록을 출력하는 위젯입니다.</description>
|
||||
<description xml:lang="jp">ログイン中の会員リストを出力するウィジェットです。</description>
|
||||
<description xml:lang="en">로그인 되어 있는 회원의 목록을 출력하는 위젯입니다.</description>
|
||||
<description xml:lang="es">로그인 되어 있는 회원의 목록을 출력하는 위젯입니다.</description>
|
||||
<description xml:lang="zh-CN">显示已登录会员列表的默认皮肤。</description>
|
||||
<description xml:lang="zh-TW">可顯示並輸出線上會員的控件。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-07-30</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">Zero</name>
|
||||
<name xml:lang="zh-TW">Zero</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">하얀색(기본)</title>
|
||||
<title xml:lang="jp">白(デフォルト)</title>
|
||||
<title xml:lang="zh-CN">白色(默认)</title>
|
||||
<title xml:lang="en">White (default)</title>
|
||||
<title xml:lang="zh-TW">白色(預設)</title>
|
||||
</color>
|
||||
<color name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<title xml:lang="zh-TW">黑色</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<title xml:lang="ko">특정 그룹 회원 출력 위젯</title>
|
||||
<title xml:lang="jp">特定グループ会員表示</title>
|
||||
<title xml:lang="en">Specific Group Members</title>
|
||||
<title xml:lang="es">Muestra el grupo de usuario específico</title>
|
||||
<title xml:lang="zh-CN">会员列表</title>
|
||||
<title xml:lang="ru">Отображение членов определенной группы</title>
|
||||
<title xml:lang="zh-TW">特定會員群組</title>
|
||||
<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="es">
|
||||
Este widget muestra el usuario en un grupo específico.
|
||||
Este es un widget de prueba, y si hay más número de usuarios asignados, se mostrará en orden de los últimos conectados.
|
||||
Usted puede ingresar grupos para mostrar en los espacias inferiores. Puede usar una coma(,) para ingresar más.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
显示特定用户组会员列表的控件。
|
||||
该组用户数比要显示的用户数多时,按照最近注册日期顺来显示。(测试中的控件)
|
||||
要显示的对象用户组名称以,(逗号)来分隔。
|
||||
</description>
|
||||
<description xml:lang="ru">
|
||||
Этот виджет отображает членов в определенной группе.
|
||||
Это тестовый виджет, и если в группе больше членов, чем присвоенное число в группе, они будут упорядочены по дате последнего входа.
|
||||
Вы можете ввести группы для отображения в пространство ниже. Вы можете использовать запятую(,) для множественного ввода.
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
顯示特定用戶組會員列表的widget。
|
||||
該組用戶數比要顯示的用戶數多時,按照最近註冊日期來顯示。(測試中)
|
||||
要顯示的目標用戶組名稱以,(逗號)做區隔。
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-07-30</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="zh-CN">Zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="zh-TW">Zero</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="list_count">
|
||||
<type>text</type>
|
||||
<name xml:lang="ko">목록수</name>
|
||||
<name xml:lang="jp">リスト数</name>
|
||||
<name xml:lang="en">Number of List</name>
|
||||
<name xml:lang="es">Número de la lista</name>
|
||||
<name xml:lang="zh-CN">目录数</name>
|
||||
<name xml:lang="ru">Число списка</name>
|
||||
<name xml:lang="zh-TW">目錄數</name>
|
||||
<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="es">Usted puede elegir el número de la lista. (predefinido: 5)</description>
|
||||
<description xml:lang="zh-CN">可设置要显示的目录数。 (默认为5个)</description>
|
||||
<description xml:lang="ru">Вы можете выбрать число списка. (стандарт: 5)</description>
|
||||
<description xml:lang="zh-TW">可設置要顯示的列表數。 (預設是5個)</description>
|
||||
</var>
|
||||
<var id="target_group">
|
||||
<type>member_group</type>
|
||||
<name xml:lang="ko">대상 회원 그룹</name>
|
||||
<name xml:lang="jp">対象会員グループ</name>
|
||||
<name xml:lang="en">Target Member Group</name>
|
||||
<name xml:lang="es">Objetivo Grupo de usuario</name>
|
||||
<name xml:lang="zh-CN">对象用户组</name>
|
||||
<name xml:lang="ru">Группа членов назначения</name>
|
||||
<name xml:lang="zh-TW">目標用戶組</name>
|
||||
<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="es">Ingresar el nombre del grupo de usuario para mostrar con la coma(,).</description>
|
||||
<description xml:lang="zh-CN">要显示的对象用户组名称以,(逗号)来分隔。</description>
|
||||
<description xml:lang="ru">Пожалуйста, введите имена групп для отображения, разделяя их запятой(,).</description>
|
||||
<description xml:lang="zh-TW">要顯示的目標模組名稱以,(逗號)做區隔。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
<?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)) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups((int)$site_module_info->site_srl);
|
||||
if(!$group_list) return;
|
||||
$target_group = array_keys($group_list);
|
||||
}
|
||||
|
||||
$obj->selected_group_srl = implode(',',$target_group);
|
||||
$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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
@charset "utf-8";
|
||||
|
||||
/* widgetUlistA */
|
||||
.widgetUlistA { margin:0; padding:0; font-size:12px; line-height:1.5;}
|
||||
.widgetUlistA li{ list-style:none;}
|
||||
.widgetUlistA li a{ color:#666; text-decoration:none;}
|
||||
|
||||
.widgetContainer.black .widgetUlistA { margin:0; padding:0; font-size:12px; line-height:1.5;}
|
||||
.widgetContainer.black .widgetUlistA li{ list-style:none;}
|
||||
.widgetContainer.black .widgetUlistA li a{ color:#999; text-decoration:none;}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<!--@if($colorset == "black" || $colorset == "white")-->
|
||||
<!--%import("./css/widget.css")-->
|
||||
<!--@end-->
|
||||
|
||||
<div class="widgetContainer<!--@if($colorset=="black")--> black<!--@end-->">
|
||||
<ul class="widgetUlistA">
|
||||
<!--@foreach($widget_info->member_list as $key => $val)-->
|
||||
<li><a href="#" onclick="return false;" class="member_{$val->member_srl}">{htmlspecialchars($val->nick_name)}</a></li>
|
||||
<!--@end-->
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<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>
|
||||
<title xml:lang="zh-TW">會員列表預設面板</title>
|
||||
<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>
|
||||
<description xml:lang="zh-TW">顯示特定用戶組會員列表的預設面板。</description>
|
||||
<version>0.2</version>
|
||||
<date>2009-02-18</date>
|
||||
<link>http://www.zeroboard.com</link>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-CN">Zero</name>
|
||||
<name xml:lang="zh-TW">Zero</name>
|
||||
</author>
|
||||
<colorset>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">하얀색(기본)</title>
|
||||
<title xml:lang="jp">白(デフォルト)</title>
|
||||
<title xml:lang="zh-CN">白色(默认)</title>
|
||||
<title xml:lang="en">White (default)</title>
|
||||
<title xml:lang="zh-TW">白色(預設)</title>
|
||||
</color>
|
||||
<color name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<title xml:lang="zh-TW">黑色</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<widget version="0.2">
|
||||
<title xml:lang="ko">메뉴 출력기</title>
|
||||
<title xml:lang="en">Navigator</title>
|
||||
<title xml:lang="zh-CN">菜单显示器</title>
|
||||
<title xml:lang="zh-TW">導覽列</title>
|
||||
<title xml:lang="jp">メニュー表示機</title>
|
||||
<description xml:lang="ko">메뉴 모듈에서 생성된 메뉴를 출력하는 위젯입니다.</description>
|
||||
<description xml:lang="en">This widget displays menu from menu module.</description>
|
||||
<description xml:lang="zh-CN">此控件可以在任意位置显示菜单模块中的菜单。</description>
|
||||
<description xml:lang="zh-TW">可在任何地方顯示選單。</description>
|
||||
<description xml:lang="jp">メニューモジュールで作成したメニューを表示するウィジェットです。</description>
|
||||
<version>0.1</version>
|
||||
<date>2009-02-10</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com">
|
||||
<name xml:lang="ko">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
<name xml:lang="jp">zero</name>
|
||||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="menu_srl">
|
||||
<type>menu</type>
|
||||
<name xml:lang="ko">메뉴</name>
|
||||
<name xml:lang="en">Menu</name>
|
||||
<name xml:lang="zh-CN">菜单</name>
|
||||
<name xml:lang="zh-TW">選單</name>
|
||||
<name xml:lang="jp">メニュー</name>
|
||||
<description xml:lang="ko">선택하신 메뉴를 출력합니다. 선택하지 않으면 호출된 레이아웃의 첫번째 메뉴를 자동으로 지정합니다.</description>
|
||||
<description xml:lang="en">Selected menu will be displayed. The first menu of current layout is default menu.</description>
|
||||
<description xml:lang="zh-CN">请选择要显示的菜单。</description>
|
||||
<description xml:lang="zh-TW">請選擇要顯示的選單。假如不選擇則自動指定為使用中的版面選單。</description>
|
||||
<description xml:lang="jp">選択したメニューを表示します。選択しない場合、適用中のレイアウトの最初のメニューが自動に指定されます。</description>
|
||||
</var>
|
||||
<var id="start_depth">
|
||||
<type>select</type>
|
||||
<name xml:lang="ko">시작 깊이</name>
|
||||
<name xml:lang="ko">Depth</name>
|
||||
<name xml:lang="zh-CN">开始深度</name>
|
||||
<name xml:lang="zh-TW">階層數</name>
|
||||
<name xml:lang="jp">開始階層</name>
|
||||
<description xml:lang="ko">출력될 메뉴의 시작 깊이(depth)를 지정할 수 있습니다. 1이 최상단이고 2부터는 선택된 상위 메뉴가 있으면 출력하게 됩니다</description>
|
||||
<description xml:lang="en">You can set the depth of menu. 1 is the toppest.</description>
|
||||
<description xml:lang="zh-CN">请指定要显示的菜单开始深度(1为完整菜单,2开始只显示该处一级菜单下的2级菜单)。</description>
|
||||
<description xml:lang="zh-TW">請設定要顯示的選單階層數。一層是最上層,選擇二層則會顯示子選單。</description>
|
||||
<description xml:lang="jp">表示するメニューの開始階層(depth)を設定します。1が最上位階層で、2からは選択した上位メニューがある場合表示します。</description>
|
||||
<options>
|
||||
<value>1</value>
|
||||
<name xml:lang="ko">1 depth</name>
|
||||
<name xml:lang="en">1</name>
|
||||
<name xml:lang="zh-CN">1 depth</name>
|
||||
<name xml:lang="zh-TW">一層</name>
|
||||
<name xml:lang="jp">1階層</name>
|
||||
</options>
|
||||
<options>
|
||||
<value>2</value>
|
||||
<name xml:lang="ko">2 depth</name>
|
||||
<name xml:lang="en">2</name>
|
||||
<name xml:lang="zh-CN">2 depth</name>
|
||||
<name xml:lang="zh-TW">二層</name>
|
||||
<name xml:lang="jp">2階層</name>
|
||||
</options>
|
||||
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
@ -1,145 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @class navigator
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief 메뉴 출력기
|
||||
* @version 0.1
|
||||
**/
|
||||
|
||||
class navigator extends WidgetHandler {
|
||||
|
||||
/**
|
||||
* @brief 위젯의 실행 부분
|
||||
*
|
||||
* ./widgets/위젯/conf/info.xml 에 선언한 extra_vars를 args로 받는다
|
||||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// $args->menu_srl이 지정되어 있으면 해당 메뉴로, 그렇지 않다면 현재 레이아웃의 메뉴를 구함
|
||||
if(!$args->menu_srl) {
|
||||
$current_module_info = Context::get('current_module_info');
|
||||
$args->layout_srl = $current_module_info->layout_srl;
|
||||
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_info = $oLayoutModel->getLayout($current_module_info->layout_srl);
|
||||
if(!$layout_info) return;
|
||||
|
||||
if($layout_info->extra_var_count) {
|
||||
foreach($layout_info->extra_var as $var_id => $val) {
|
||||
$layout_info->{$var_id} = $val->value;
|
||||
}
|
||||
if(!$layout_info->menu_count) return;
|
||||
|
||||
// 레이아웃 정보중 menu를 Context::set
|
||||
foreach($layout_info->menu as $menu_id => $menu) {
|
||||
if(file_exists($menu->php_file)) {
|
||||
$args->menu_srl = $menu->menu_srl;
|
||||
@include($menu->php_file);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else return;
|
||||
} else {
|
||||
$php_file = sprintf('%sfiles/cache/menu/%d.php', _XE_PATH_, $args->menu_srl);
|
||||
@include($php_file);
|
||||
}
|
||||
if(!$menu) return;
|
||||
|
||||
// 시작 depth가 2이상, 즉 상위 메뉴 선택 이후 하위 메뉴 출력시 처리
|
||||
if($args->start_depth == 2 && count($menu->list)) {
|
||||
$t_menu = null;
|
||||
foreach($menu->list as $key => $val) {
|
||||
if($val['selected']) {
|
||||
$t_menu->list = $val['list'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
$menu = $t_menu;
|
||||
}
|
||||
|
||||
$widget_info->menu = $menu->list;
|
||||
|
||||
$this->_arrangeMenu($arranged_list, $menu->list, 0);
|
||||
$widget_info->arranged_menu = $arranged_list;
|
||||
|
||||
// men XML 파일
|
||||
$widget_info->xml_file = sprintf('%sfiles/cache/menu/%d.xml.php',Context::getRequestUri(), $args->menu_srl);
|
||||
$widget_info->menu_srl = $args->menu_srl;
|
||||
|
||||
if($this->selected_node_srl) $widget_info->selected_node_srl = $this->selected_node_srl;
|
||||
Context::set('widget_info', $widget_info);
|
||||
|
||||
// 템플릿 컴파일
|
||||
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
|
||||
$tpl_file = 'navigator';
|
||||
|
||||
Context::set('colorset', $args->colorset);
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
return $oTemplate->compile($tpl_path, $tpl_file);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 메뉴를 1차원 배열로 변경
|
||||
**/
|
||||
function _arrangeMenu(&$menu, $list, $depth) {
|
||||
if(!count($list)) return;
|
||||
$idx = 0;
|
||||
$list_order = array();
|
||||
foreach($list as $key => $val) {
|
||||
if(!$val['text']) continue;
|
||||
$obj = null;
|
||||
$obj->href = $val['href'];
|
||||
$obj->url = $val['url'];
|
||||
$obj->node_srl = $val['node_srl'];
|
||||
$obj->parent_srl = $val['parent_srl'];
|
||||
$obj->title = $obj->text = $val['text'];
|
||||
$obj->expand = $val['expand']=='Y'?true:false;
|
||||
$obj->depth = $depth;
|
||||
$obj->selected = $val['selected'];
|
||||
$obj->open_window = $val['open_window'];
|
||||
|
||||
$obj->normal_btn = $val['normal_btn'];
|
||||
$obj->hover_btn = $val['hover_btn'];
|
||||
$obj->active_btn = $val['active_btn'];
|
||||
|
||||
$obj->child_count = 0;
|
||||
$obj->childs = array();
|
||||
|
||||
if(Context::get('mid') == $obj->url){
|
||||
$selected = true;
|
||||
$this->selected_node_srl = $obj->node_srl;
|
||||
$obj->selected = true;
|
||||
}else{
|
||||
$selected = false;
|
||||
}
|
||||
|
||||
$list_order[$idx++] = $obj->node_srl;
|
||||
|
||||
// 부모 카테고리가 있으면 자식노드들의 데이터를 적용
|
||||
if($obj->parent_srl) {
|
||||
|
||||
$parent_srl = $obj->parent_srl;
|
||||
$expand = $obj->expand;
|
||||
if($selected) $expand = true;
|
||||
|
||||
while($parent_srl) {
|
||||
$menu[$parent_srl]->childs[] = $obj->node_srl;
|
||||
$menu[$parent_srl]->child_count = count($menu[$parent_srl]->childs);
|
||||
if($expand) $menu[$parent_srl]->expand = $expand;
|
||||
|
||||
$parent_srl = $menu[$parent_srl]->parent_srl;
|
||||
}
|
||||
}
|
||||
|
||||
$menu[$key] = $obj;
|
||||
|
||||
if(count($val['list'])) $this->_arrangeMenu($menu, $val['list'], $depth+1);
|
||||
}
|
||||
$menu[$list_order[0]]->first = true;
|
||||
$menu[$list_order[count($list_order)-1]]->last = true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
@charset "utf-8";
|
||||
/* NHN > UIT Center > Open UI Technology Team > Jeong Chan Myeong(dece24@nhncorp.com) */
|
||||
|
||||
/* widgetNavC */
|
||||
.widgetNavC{ margin:0; padding:0; font-size:12px; line-height:1.2; background-repeat:repeat-x; background-position:0 0;}
|
||||
.widgetNavC ul{ margin:0; padding:0; height:35px;}
|
||||
.widgetNavC ul li ul{ display:none; position:absolute; top:40px; left:0; height:auto; padding-bottom:7px; border:1px solid;}
|
||||
.widgetNavC ul li.active ul{ display:block;}
|
||||
.widgetNavC ul.aCenter{ margin-left:auto; margin-right:auto;}
|
||||
.widgetNavC ul.aLeft{ margin-right:auto;}
|
||||
.widgetNavC ul.aRight{ margin-left:auto;}
|
||||
.widgetNavC li{ position:relative; padding-right:3px; float:left; list-style:none; background-repeat:no-repeat; background-position:right -40px; white-space:nowrap;}
|
||||
.widgetNavC li a{ position:relative; float:left; padding:12px 22px 0 25px; height:23px; color:#fff !important; text-decoration:none !important;}
|
||||
.widgetNavC li.first a{ background-repeat:no-repeat; background-position:left -40px;}
|
||||
.widgetNavC li.active{ margin-left:-2px; background-repeat:no-repeat; background-position:right -80px;}
|
||||
.widgetNavC li.active a{ font-weight:bold; letter-spacing:-1px; color:#ff0 !important; background-repeat:no-repeat; background-position:left -80px;}
|
||||
.widgetNavC li.active li{ padding:2px 15px; float:none; background:none !important;}
|
||||
.widgetNavC li.active li.active{ margin:0;}
|
||||
.widgetNavC li.active li.first{ margin-top:-4px; padding-top:14px; background-repeat:no-repeat; background-position:30px top;}
|
||||
.widgetNavC li.active li a{ display:block; _display:inline-block; padding:0; float:none; height:auto; font-weight:normal; color:#fff !important; background:none;}
|
||||
.widgetNavC li.active li.active a{ color:#ff0 !important;}
|
||||
.widgetNavC li.active li a:hover,
|
||||
.widgetNavC li.active li a:active,
|
||||
.widgetNavC li.active li a:focus{ text-decoration:underline !important;}
|
||||
|
||||
ul.widgetNavSub { display:block; height:auto; border:1px solid; padding-bottom:7px; background:#35ad06; background-image:none !important; padding:0; margin:0;}
|
||||
ul.widgetNavSub li { list-style:none; }
|
||||
ul.widgetNavSub li a{ display:block; padding:5px 10px 5px 10px; color:#fff; text-decoration:none !important; white-space:nowrap;}
|
||||
ul.widgetNavSub li a:hover,
|
||||
ul.widgetNavSub li a:active,
|
||||
ul.widgetNavSub li a:focus{ text-decoration:underline !important;}
|
||||
ul.widgetNavSub li.first{ margin-top:-4px; padding-top:14px; background-repeat:no-repeat; background-position:30px top;}
|
||||
|
||||
/* widgetNavD */
|
||||
.widgetNavD{ margin:0; padding:0; font-size:12px; line-height:1.2; background-repeat:repeat-x; background-position:0 0;}
|
||||
.widgetNavD ul{ position:relative; margin:0; padding:0; height:65px;}
|
||||
.widgetNavD ul li ul{ display:none; position:absolute; top:35px; left:0; width:100%; height:auto; padding-top:10px;}
|
||||
.widgetNavD ul li.active ul{ display:block;}
|
||||
.widgetNavD ul.aCenter{ margin-left:auto; margin-right:auto;}
|
||||
.widgetNavD ul.aLeft{ margin-right:auto;}
|
||||
.widgetNavD ul.aRight{ margin-left:auto;}
|
||||
.widgetNavD li{ padding-right:3px; float:left; list-style:none; background-repeat:no-repeat; background-position:right -120px; white-space:nowrap;}
|
||||
.widgetNavD li a{ position:relative; float:left; padding:12px 22px 0 25px; height:23px; color:#fff !important; text-decoration:none !important;}
|
||||
.widgetNavD li.first a{ background-repeat:no-repeat; background-position:left -120px;}
|
||||
.widgetNavD li.active{ margin-left:-2px; background-repeat:no-repeat; background-position:right -160px;}
|
||||
.widgetNavD li.active a{ font-weight:bold; color:#ff0 !important; background-repeat:no-repeat; background-position:left -160px;}
|
||||
.widgetNavD li.active li{ display:inline; float:none; background:url(../img/white/lineTextDiv.gif) no-repeat 0 center; margin-right:7px; padding-left:10px;}
|
||||
.widgetNavD li.active li.first{ background:none !important; padding-left:0;}
|
||||
.widgetNavD li.active li a{ display:inline; padding:0; float:none; height:auto; font-weight:normal; color:#fff !important; background:none;}
|
||||
.widgetNavD li.active li.active a{ color:#ff0 !important;}
|
||||
.widgetNavD li.active li a:hover,
|
||||
.widgetNavD li.active li a:active,
|
||||
.widgetNavD li.active li a:focus{ text-decoration:underline !important;}
|
||||
|
||||
/* widgetNavCgreen */
|
||||
.widgetNavCgreen{ background-image:url(../img/white/bgMenuCgreen.gif);}
|
||||
.widgetNavCgreen ul li ul{ background:#35ad06; border-color:#027a00;}
|
||||
.widgetNavCgreen li{ background-image:url(../img/white/bgMenuCgreen.gif);}
|
||||
.widgetNavCgreen li.first a{ background-image:url(../img/white/bgMenuCgreen.gif);}
|
||||
.widgetNavCgreen li.active{ background-image:url(../img/white/bgMenuCgreen.gif);}
|
||||
.widgetNavCgreen li.active a{ background-image:url(../img/white/bgMenuCgreen.gif);}
|
||||
.widgetNavCgreen li.active li.first{ background-image:url(../img/white/arrowMenuCgreen.gif);}
|
||||
ul.widgetNavSub.green { background:#35ad06; border-color:#027a00;}
|
||||
ul.widgetNavSub.green { background-image:url(../img/white/bgMenuCgreen.gif);}
|
||||
ul.widgetNavSub.green li.first{ background-image:url(../img/white/arrowMenuCgreen.gif);}
|
||||
|
||||
/* widgetNavCblue */
|
||||
.widgetNavCblue{ background-image:url(../img/white/bgMenuCblue.gif);}
|
||||
.widgetNavCblue ul li ul{ background:#0688ad; border-color:#00557a;}
|
||||
.widgetNavCblue li{ background-image:url(../img/white/bgMenuCblue.gif);}
|
||||
.widgetNavCblue li.first a{ background-image:url(../img/white/bgMenuCblue.gif);}
|
||||
.widgetNavCblue li.active{ background-image:url(../img/white/bgMenuCblue.gif);}
|
||||
.widgetNavCblue li.active a{ background-image:url(../img/white/bgMenuCblue.gif);}
|
||||
.widgetNavCblue li.active li.first{ background-image:url(../img/white/arrowMenuCblue.gif);}
|
||||
ul.widgetNavSub.blue { background:#0688ad; border-color:#00557a;}
|
||||
ul.widgetNavSub.blue { background-image:url(../img/white/bgMenuCblue.gif);}
|
||||
ul.widgetNavSub.blue li.first{ background-image:url(../img/white/arrowMenuCblue.gif);}
|
||||
|
||||
/* widgetNavCcyan */
|
||||
.widgetNavCcyan{ background-image:url(../img/white/bgMenuCcyan.gif);}
|
||||
.widgetNavCcyan ul li ul{ background:#06a4ad; border-color:#00717a;}
|
||||
.widgetNavCcyan li{ background-image:url(../img/white/bgMenuCcyan.gif);}
|
||||
.widgetNavCcyan li.first a{ background-image:url(../img/white/bgMenuCcyan.gif);}
|
||||
.widgetNavCcyan li.active{ background-image:url(../img/white/bgMenuCcyan.gif);}
|
||||
.widgetNavCcyan li.active a{ background-image:url(../img/white/bgMenuCcyan.gif);}
|
||||
.widgetNavCcyan li.active li.first{ background-image:url(../img/white/arrowMenuCcyan.gif);}
|
||||
ul.widgetNavSub.cyan { background:#06a4ad; border-color:#00717a;}
|
||||
ul.widgetNavSub.cyan{ background-image:url(../img/white/bgMenuCcyan.gif);}
|
||||
ul.widgetNavSub.cyan li.first{ background-image:url(../img/white/arrowMenuCcyan.gif);}
|
||||
|
||||
/* widgetNavCorange */
|
||||
.widgetNavCorange{ background-image:url(../img/white/bgMenuCorange.gif);}
|
||||
.widgetNavCorange ul li ul{ background:#ad9906; border-color:#7a6600;}
|
||||
.widgetNavCorange li{ background-image:url(../img/white/bgMenuCorange.gif);}
|
||||
.widgetNavCorange li.first a{ background-image:url(../img/white/bgMenuCorange.gif);}
|
||||
.widgetNavCorange li.active{ background-image:url(../img/white/bgMenuCorange.gif);}
|
||||
.widgetNavCorange li.active a{ background-image:url(../img/white/bgMenuCorange.gif);}
|
||||
.widgetNavCorange li.active li.first{ background-image:url(../img/white/arrowMenuCorange.gif);}
|
||||
ul.widgetNavSub.orange { background:#ad9906; border-color:#7a6600;}
|
||||
ul.widgetNavSub.orange{ background-image:url(../img/white/bgMenuCorange.gif);}
|
||||
ul.widgetNavSub.orange li.first{ background-image:url(../img/white/arrowMenuCorange.gif);}
|
||||
|
||||
/* widgetNavCred */
|
||||
.widgetNavCred{ background-image:url(../img/white/bgMenuCred.gif);}
|
||||
.widgetNavCred ul li ul{ background:#ad4606; border-color:#7a1300;}
|
||||
.widgetNavCred li{ background-image:url(../img/white/bgMenuCred.gif);}
|
||||
.widgetNavCred li.first a{ background-image:url(../img/white/bgMenuCred.gif);}
|
||||
.widgetNavCred li.active{ background-image:url(../img/white/bgMenuCred.gif);}
|
||||
.widgetNavCred li.active a{ background-image:url(../img/white/bgMenuCred.gif);}
|
||||
.widgetNavCred li.active li.first{ background-image:url(../img/white/arrowMenuCred.gif);}
|
||||
ul.widgetNavSub.red { background:#ad4606; border-color:#7a1300;}
|
||||
ul.widgetNavSub.red {background-image:url(../img/white/bgMenuCred.gif);}
|
||||
ul.widgetNavSub.red li.first{ background-image:url(../img/white/arrowMenuCred.gif);}
|
||||
|
||||
/* widgetNavCgray */
|
||||
.widgetNavCgray{ background-image:url(../img/white/bgMenuCgray.gif);}
|
||||
.widgetNavCgray ul li ul{ background:#595959; border-color:#444;}
|
||||
.widgetNavCgray li{ background-image:url(../img/white/bgMenuCgray.gif);}
|
||||
.widgetNavCgray li.first a{ background-image:url(../img/white/bgMenuCgray.gif);}
|
||||
.widgetNavCgray li.active{ background-image:url(../img/white/bgMenuCgray.gif);}
|
||||
.widgetNavCgray li.active a{ background-image:url(../img/white/bgMenuCgray.gif);}
|
||||
.widgetNavCgray li.active li.first{ background-image:url(../img/white/arrowMenuCgray.gif);}
|
||||
ul.widgetNavSub.gray { background:#595959; border-color:#555;}
|
||||
ul.widgetNavSub.gray{ background-image:url(../img/white/bgMenuCgray.gif);}
|
||||
ul.widgetNavSub.gray li.first{ background-image:url(../img/white/arrowMenuCgray.gif);}
|
||||
|
||||
/* widgetNavDgreen */
|
||||
.widgetNavDgreen{ background-image:url(../img/white/bgMenuDgreen.gif); background-color:#399700;}
|
||||
.widgetNavDgreen li{ background-image:url(../img/white/bgMenuDgreen.gif);}
|
||||
.widgetNavDgreen li.first a{ background-image:url(../img/white/bgMenuDgreen.gif);}
|
||||
.widgetNavDgreen li.active{ background-image:url(../img/white/bgMenuDgreen.gif);}
|
||||
.widgetNavDgreen li.active a{ background-image:url(../img/white/bgMenuDgreen.gif);}
|
||||
|
||||
/* widgetNavDblue */
|
||||
.widgetNavDblue{ background-image:url(../img/white/bgMenuDblue.gif); background-color:#008598;}
|
||||
.widgetNavDblue li{ background-image:url(../img/white/bgMenuDblue.gif);}
|
||||
.widgetNavDblue li.first a{ background-image:url(../img/white/bgMenuDblue.gif);}
|
||||
.widgetNavDblue li.active{ background-image:url(../img/white/bgMenuDblue.gif);}
|
||||
.widgetNavDblue li.active a{ background-image:url(../img/white/bgMenuDblue.gif);}
|
||||
|
||||
/* widgetNavDcyan */
|
||||
.widgetNavDcyan{ background-image:url(../img/white/bgMenuDcyan.gif); background-color:#009790;}
|
||||
.widgetNavDcyan li{ background-image:url(../img/white/bgMenuDcyan.gif);}
|
||||
.widgetNavDcyan li.first a{ background-image:url(../img/white/bgMenuDcyan.gif);}
|
||||
.widgetNavDcyan li.active{ background-image:url(../img/white/bgMenuDcyan.gif);}
|
||||
.widgetNavDcyan li.active a{ background-image:url(../img/white/bgMenuDcyan.gif);}
|
||||
|
||||
/* widgetNavDorange */
|
||||
.widgetNavDorange{ background-image:url(../img/white/bgMenuDorange.gif); background-color:#957400;}
|
||||
.widgetNavDorange li{ background-image:url(../img/white/bgMenuDorange.gif);}
|
||||
.widgetNavDorange li.first a{ background-image:url(../img/white/bgMenuDorange.gif);}
|
||||
.widgetNavDorange li.active{ background-image:url(../img/white/bgMenuDorange.gif);}
|
||||
.widgetNavDorange li.active a{ background-image:url(../img/white/bgMenuDorange.gif);}
|
||||
|
||||
/* widgetNavDred */
|
||||
.widgetNavDred{ background-image:url(../img/white/bgMenuDred.gif); background-color:#962B00;}
|
||||
.widgetNavDred li{ background-image:url(../img/white/bgMenuDred.gif);}
|
||||
.widgetNavDred li.first a{ background-image:url(../img/white/bgMenuDred.gif);}
|
||||
.widgetNavDred li.active{ background-image:url(../img/white/bgMenuDred.gif);}
|
||||
.widgetNavDred li.active a{ background-image:url(../img/white/bgMenuDred.gif);}
|
||||
|
||||
/* widgetNavDgray */
|
||||
.widgetNavDgray{ background-image:url(../img/white/bgMenuDgray.gif); background-color:#4B4B4B;}
|
||||
.widgetNavDgray li{ background-image:url(../img/white/bgMenuDgray.gif);}
|
||||
.widgetNavDgray li.first a{ background-image:url(../img/white/bgMenuDgray.gif);}
|
||||
.widgetNavDgray li.active{ background-image:url(../img/white/bgMenuDgray.gif);}
|
||||
.widgetNavDgray li.active a{ background-image:url(../img/white/bgMenuDgray.gif);}
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 54 B |
|
Before Width: | Height: | Size: 55 B |
|
Before Width: | Height: | Size: 55 B |
|
Before Width: | Height: | Size: 55 B |
|
Before Width: | Height: | Size: 55 B |
|
Before Width: | Height: | Size: 55 B |
|
Before Width: | Height: | Size: 55 B |
|
Before Width: | Height: | Size: 60 B |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |