mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
모듈 선택기능 추가 (위젯의 단일/다수 위젯 선택, 첵크된 게시글 이동/복사시) 사용되며 virtualSite외의 사이트들도 검색후 선택이 가능하도록 개선
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5298 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
3345d21c4e
commit
906bb46d19
83 changed files with 970 additions and 543 deletions
|
|
@ -126,6 +126,8 @@
|
|||
$lang->colorset = 'Colorset';
|
||||
$lang->extra_vars = 'Extra Vars';
|
||||
|
||||
$lang->domain = "Domain Name";
|
||||
$lang->url = "URL";
|
||||
$lang->document_url = 'Article URL';
|
||||
$lang->trackback_url = 'Trackback URL';
|
||||
$lang->blog_name = 'Blog Title';
|
||||
|
|
|
|||
|
|
@ -125,6 +125,8 @@
|
|||
$lang->colorset = 'Conjunto de Colores';
|
||||
$lang->extra_vars = 'Variables Extra';
|
||||
|
||||
$lang->domain = "Domain Name";
|
||||
$lang->url = "URL";
|
||||
$lang->document_url = 'URL del Documento';
|
||||
$lang->trackback_url = 'URL del Trackback';
|
||||
$lang->blog_name = 'Titulo del Blog';
|
||||
|
|
|
|||
|
|
@ -126,6 +126,8 @@
|
|||
$lang->colorset = 'Arrangement de couleur';
|
||||
$lang->extra_vars = 'Variables Supplémentaires';
|
||||
|
||||
$lang->domain = "Domain Name";
|
||||
$lang->url = "URL";
|
||||
$lang->document_url = 'Document URL';
|
||||
$lang->trackback_url = 'Rétrolien URL';
|
||||
$lang->blog_name = 'Nom du Blogue';
|
||||
|
|
|
|||
|
|
@ -126,6 +126,8 @@
|
|||
$lang->colorset = 'Colorset';
|
||||
$lang->extra_vars = 'Extra Vars';
|
||||
|
||||
$lang->domain = "Domain Name";
|
||||
$lang->url = "URL";
|
||||
$lang->document_url = 'Artikel-URL';
|
||||
$lang->trackback_url = 'Trackback-URL';
|
||||
$lang->blog_name = 'Blog-Titel';
|
||||
|
|
|
|||
|
|
@ -126,6 +126,8 @@
|
|||
$lang->colorset = 'カラーセット';
|
||||
$lang->extra_vars = '拡張変数';
|
||||
|
||||
$lang->domain = "ドメイン";
|
||||
$lang->url = "URL";
|
||||
$lang->document_url = '書き込みURL';
|
||||
$lang->trackback_url = 'トラックバックURL';
|
||||
$lang->blog_name = 'ブログ名';
|
||||
|
|
|
|||
|
|
@ -126,6 +126,8 @@
|
|||
$lang->colorset = '컬러셋';
|
||||
$lang->extra_vars = '확장변수';
|
||||
|
||||
$lang->domain = "도메인";
|
||||
$lang->url = "URL";
|
||||
$lang->document_url = '게시글 주소';
|
||||
$lang->trackback_url = '엮인글 주소';
|
||||
$lang->blog_name = '블로그이름';
|
||||
|
|
|
|||
|
|
@ -126,6 +126,8 @@
|
|||
$lang->colorset = 'Цветовой набор';
|
||||
$lang->extra_vars = 'Доп. перем.';
|
||||
|
||||
$lang->domain = "Domain Name";
|
||||
$lang->url = "URL";
|
||||
$lang->document_url = 'Адрес статьи';
|
||||
$lang->trackback_url = 'Адрес трекбек';
|
||||
$lang->blog_name = 'Название блога';
|
||||
|
|
|
|||
|
|
@ -126,6 +126,8 @@
|
|||
$lang->colorset = '颜色设定';
|
||||
$lang->extra_vars = '扩展变数';
|
||||
|
||||
$lang->domain = "域名";
|
||||
$lang->url = "URL";
|
||||
$lang->document_url = '文章地址';
|
||||
$lang->trackback_url = '引用地址';
|
||||
$lang->blog_name = '博客名称';
|
||||
|
|
|
|||
|
|
@ -126,6 +126,8 @@
|
|||
$lang->colorset = '顏色設定';
|
||||
$lang->extra_vars = '延伸變數';
|
||||
|
||||
$lang->domain = "域名";
|
||||
$lang->url = "網址";
|
||||
$lang->document_url = '連結網址';
|
||||
$lang->trackback_url = '引用';
|
||||
$lang->blog_name = '部落格名稱';
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
* 2 : 1 + DB 쿼리
|
||||
* 3 : 모든 로그
|
||||
**/
|
||||
define('__DEBUG__', 0);
|
||||
define('__DEBUG__', 1);
|
||||
|
||||
/**
|
||||
* @brief 디버그 메세지의 출력 장소
|
||||
|
|
|
|||
|
|
@ -112,58 +112,6 @@
|
|||
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 모듈 카테고리 목록을 구함
|
||||
$module_categories = $oModuleModel->getModuleCategories();
|
||||
|
||||
// 모듈의 목록을 가져옴
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = $site_module_info->site_srl;
|
||||
$module_list = $oModuleModel->getMidList($args);
|
||||
|
||||
// 사이트 운영자가 아닌 경우
|
||||
if(!$oModuleModel->isSiteAdmin()) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
$user_id = $logged_info->user_id;
|
||||
$group_list = $logged_info->group_list;
|
||||
|
||||
if($logged_info->is_admin != 'Y') {
|
||||
foreach($module_list as $key => $val) {
|
||||
$info = $oModuleModel->arrangeModuleInfo($val);
|
||||
|
||||
// 직접 최고 관리자로 지정이 안되어 있으면 그룹을 체크
|
||||
if(!in_array($user_id, $info->admin_id)) {
|
||||
|
||||
$is_granted = false;
|
||||
$manager_group = $info->grants['manager'];
|
||||
if(count($group_list) && count($manager_group)) {
|
||||
foreach($group_list as $group_srl => $group_info) {
|
||||
if(in_array($group_srl, $manager_group)) {
|
||||
$is_granted = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!$is_granted) unset($module_list[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 게시판만 뽑자
|
||||
foreach($module_list as $module_srl => $module) {
|
||||
if($module->module != 'board') unset($module_list[$module_srl]);
|
||||
}
|
||||
|
||||
// module_category와 module의 조합
|
||||
if($module_categories) {
|
||||
foreach($module_list as $module_srl => $module) {
|
||||
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
|
||||
}
|
||||
} else {
|
||||
$module_categories[0]->list = $module_list;
|
||||
}
|
||||
|
||||
|
||||
// 모듈 카테고리 목록과 모듈 목록의 조합
|
||||
if(count($module_list)>1) Context::set('module_list', $module_categories);
|
||||
|
||||
|
|
|
|||
|
|
@ -25,22 +25,12 @@
|
|||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<!--@if(count($document_list) && $module_list)-->
|
||||
<!--@if(count($document_list))-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->move_target_module}</div></th>
|
||||
<td>
|
||||
<select id="target_module" name="target_module" class="w400" onchange="doGetCategoryFromModule(this); return false;">
|
||||
<!--@foreach($module_list as $module_category_srl => $modules )-->
|
||||
<!--@if($modules->title)-->
|
||||
<option disabled="disabled">{$modules->title}</option>
|
||||
<!--@else-->
|
||||
<option disabled="disabled"> </option>
|
||||
<!--@end-->
|
||||
<!--@foreach($modules->list as $key => $val)-->
|
||||
<option value="{$val->module_srl}"> {$val->browser_title} ({$val->mid})</option>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
</select>
|
||||
<input type="hidden" name="target_module" id="target_module" value="" />
|
||||
<input type="text" name="_target_module" id="_target_module" class="inputTypeText w300" value="" /><a href="{getUrl('','module','module','act','dispModuleAdminSelectList','id','target_module','type','single')}" onclick="popopen(this.href,'ModuleSelect');return false;" class="button green"><span>{$lang->cmd_select}</span></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -27,10 +27,7 @@ function completeManageDocument(ret_obj) {
|
|||
}
|
||||
|
||||
/* 선택된 모듈의 카테고리 목록을 가져오는 함수 */
|
||||
function doGetCategoryFromModule(obj) {
|
||||
if(!obj) return;
|
||||
var module_srl = obj.options[obj.selectedIndex].value;
|
||||
|
||||
function doGetCategoryFromModule(module_srl) {
|
||||
var params = new Array();
|
||||
params['module_srl'] = module_srl;
|
||||
|
||||
|
|
@ -85,3 +82,11 @@ function doCancelDeclare() {
|
|||
function completeCancelDeclare(ret_obj) {
|
||||
location.reload();
|
||||
}
|
||||
|
||||
function insertSelectedModule(id, module_srl, mid, browser_title) {
|
||||
var obj= xGetElementById('_'+id);
|
||||
var sObj = xGetElementById(id);
|
||||
sObj.value = module_srl;
|
||||
obj.value = browser_title+' ('+mid+')';
|
||||
doGetCategoryFromModule(module_srl);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@
|
|||
|
||||
$lang->homepage = "Homepage";
|
||||
$lang->homepage_title = "Title of homepage";
|
||||
$lang->domain = "Domain Name";
|
||||
$lang->module_type = "Type of target module";
|
||||
$lang->board = "Board";
|
||||
$lang->page = "Page";
|
||||
$lang->url = "URL";
|
||||
$lang->module_id = "module ID";
|
||||
$lang->item_group_grant = "Accessible group";
|
||||
$lang->homepage_admin = "Homepage administrator";
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@
|
|||
|
||||
$lang->homepage = "ホームページ";
|
||||
$lang->homepage_title = "ホームページ名";
|
||||
$lang->domain = "ドメイン";
|
||||
$lang->module_type = "タイプ";
|
||||
$lang->board = "掲示板";
|
||||
$lang->page = "ページ";
|
||||
$lang->url = "URL";
|
||||
$lang->module_id = "モジュール ID";
|
||||
$lang->item_group_grant = "メニューを見せるグループ";
|
||||
$lang->homepage_admin = "ホームページ管理者";
|
||||
|
|
@ -55,7 +53,6 @@
|
|||
$lang->cmd_go_home = "ホームへ移動";
|
||||
$lang->cmd_go_homepage_admin = 'ホームページ全体管理';
|
||||
$lang->cmd_change_layout = "変更";
|
||||
$lang->cmd_change_layout = "変更";
|
||||
$lang->cmd_select_index = "初期ページ選択";
|
||||
$lang->cmd_add_new_menu = "新しいメニュー追加";
|
||||
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@
|
|||
|
||||
$lang->homepage = "홈페이지";
|
||||
$lang->homepage_title = "홈페이지 이름";
|
||||
$lang->domain = "도메인";
|
||||
$lang->module_type = "대상";
|
||||
$lang->board = "게시판";
|
||||
$lang->page = "페이지";
|
||||
$lang->url = "URL";
|
||||
$lang->module_id = "모듈 ID";
|
||||
$lang->item_group_grant = "보여줄 그룹";
|
||||
$lang->homepage_admin = "홈페이지 관리자";
|
||||
|
|
@ -55,7 +53,6 @@
|
|||
$lang->cmd_go_home = "홈으로 이동";
|
||||
$lang->cmd_go_homepage_admin = '홈페이지 전체 관리';
|
||||
$lang->cmd_change_layout = "변경";
|
||||
$lang->cmd_change_layout = "변경";
|
||||
$lang->cmd_select_index = "초기화면 선택";
|
||||
$lang->cmd_add_new_menu = "새로운 메뉴 추가";
|
||||
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@
|
|||
|
||||
$lang->homepage = "站点";
|
||||
$lang->homepage_title = "站点名称";
|
||||
$lang->domain = "域名";
|
||||
$lang->module_type = "对象";
|
||||
$lang->board = "版面";
|
||||
$lang->page = "页面";
|
||||
$lang->url = "URL";
|
||||
$lang->module_id = "模块ID";
|
||||
$lang->item_group_grant = "用户组";
|
||||
$lang->homepage_admin = "管理员";
|
||||
|
|
@ -55,7 +53,6 @@
|
|||
$lang->cmd_go_home = "查看主页";
|
||||
$lang->cmd_go_homepage_admin = '站点管理';
|
||||
$lang->cmd_change_layout = "修改";
|
||||
$lang->cmd_change_layout = "切换";
|
||||
$lang->cmd_select_index = "选择默认首页";
|
||||
$lang->cmd_add_new_menu = "添加新菜单";
|
||||
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@
|
|||
|
||||
$lang->homepage = "網站";
|
||||
$lang->homepage_title = "網站名稱";
|
||||
$lang->domain = "域名";
|
||||
$lang->module_type = "目標";
|
||||
$lang->board = "討論板";
|
||||
$lang->page = "頁面";
|
||||
$lang->url = "網址";
|
||||
$lang->module_id = "模組 ID";
|
||||
$lang->item_group_grant = "顯示群組";
|
||||
$lang->homepage_admin = "網站管理者";
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
<action name="dispModuleSkinInfo" type="view" standalone="true" />
|
||||
|
||||
<action name="dispModuleAdminSelectList" type="view" standalone="true" />
|
||||
<action name="dispModuleAdminCopyModule" type="view" standalone="true" />
|
||||
<action name="procModuleAdminInsertCategory" type="controller" standalone="true" />
|
||||
<action name="procModuleAdminUpdateCategory" type="controller" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @brief English language pack
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "Modules List";
|
||||
$lang->module_index = "Modules List";
|
||||
$lang->module_category = "Module Category";
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
$lang->skin_license = 'License';
|
||||
$lang->skin_history = 'Update history';
|
||||
$lang->module_copy = "Duplicate Module";
|
||||
$lang->module_selector = "Module Selector";
|
||||
|
||||
$lang->header_script = "Header Script";
|
||||
$lang->about_header_script = "You can input the html script between <header> and </header> by yourself.<br />You can use <script, <style or <meta tag";
|
||||
|
|
@ -65,4 +67,5 @@
|
|||
$lang->about_module = "XE consists of modules except basic library.\n [Module Manage] module will show all installed modules and help you to manage them.";
|
||||
|
||||
$lang->about_extra_vars_default_value = 'If multiple default values are needed, you can link them with comma(,).';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @sumario Paquete del idioma español
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "Lista de Módulos";
|
||||
$lang->module_index = "Lista de Módulos";
|
||||
$lang->module_category = "Categoría de Módulos ";
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
$lang->skin_license = 'License';
|
||||
$lang->skin_history = 'Historia de actualización';
|
||||
$lang->module_copy = "Copy Module";
|
||||
$lang->module_selector = "Module Selector";
|
||||
|
||||
$lang->header_script = "헤더 스크립트";
|
||||
$lang->about_header_script = "html의 <header>와 </header> 사이에 들어가는 코드를 직접 입력할 수 있습니다.<br /><script, <style 또는 <meta 태그등을 이용하실 수 있습니다";
|
||||
|
|
@ -64,4 +66,5 @@
|
|||
$lang->about_module = "XE consiste de módulos excepto la librería básica.\n Módulo del Manejo del Módulo muestra todos los módulos instalados y ayuda el manejo de ellos.";
|
||||
|
||||
$lang->about_extra_vars_default_value = 'Si múltiples valores predefinidos son requeridos, usted puede enlazar con la coma(,).';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @brief Paque du langage en français pour le module de Module
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "Liste des Modules";
|
||||
$lang->module_index = "Liste des Modules";
|
||||
$lang->module_category = "Catégorie des Modules";
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
$lang->skin_license = 'Licence';
|
||||
$lang->skin_history = 'Histoire des Mises à jour';
|
||||
$lang->module_copy = "Copier un Module";
|
||||
$lang->module_selector = "Module Selector";
|
||||
|
||||
$lang->header_script = "Script en-tête";
|
||||
$lang->about_header_script = "Vous pouvez entrer un script en html par vous-même entre <header> et </header>.<br />Vous pouvez utiliser <script, <style ou <meta tag";
|
||||
|
|
@ -64,4 +66,5 @@
|
|||
$lang->about_module = "XE se compose des modules sauf la bibliothèque fondamental.\nLe module [Administration des Modules] montera tous les modules installés et vous aidera les administrer.";
|
||||
|
||||
$lang->about_extra_vars_default_value = 'Si plusieurs valeurs sont nécessaires, vous pouvez les connecter avec la virgule(,).';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @brief 日本語言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "モジュールリスト";
|
||||
$lang->module_index = "モジュールインデックス";
|
||||
$lang->module_category = "モジュールカテゴリ";
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
$lang->skin_license = 'License';
|
||||
$lang->skin_history = '変更内容';
|
||||
$lang->module_copy = "モジュールコピー";
|
||||
$lang->module_selector = "Module Selector";
|
||||
|
||||
$lang->header_script = "ヘッダースクリプト";
|
||||
$lang->about_header_script = "HTMLの<header>と</header>の間に入れるコードを直接入力できます。<br /><script、<styleまたは<metaタグなどが利用できます";
|
||||
|
|
@ -65,4 +67,5 @@
|
|||
$lang->about_module = "XEは、基本ライブラリの他は、すべてモジュールで構成されています。モジュール管理用のモジュールはインストールされたすべてを表示し、管理できるようにします。";
|
||||
|
||||
$lang->about_extra_vars_default_value = '多重・単一選択などのデフォルト値が、複数必要な場合は、「, (コンマ)」で区切って追加することができます。';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @brief 한국어 언어팩
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "가상 사이트";
|
||||
$lang->module_list = "모듈 목록";
|
||||
$lang->module_index = "모듈 목록";
|
||||
$lang->module_category = "모듈 분류";
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
$lang->skin_license = '라이선스';
|
||||
$lang->skin_history = '변경 이력';
|
||||
$lang->module_copy = "모듈 복사";
|
||||
$lang->module_selector = "모듈 선택기";
|
||||
|
||||
$lang->header_script = "헤더 스크립트";
|
||||
$lang->about_header_script = "html의 <head>와 </head> 사이에 들어가는 코드를 직접 입력할 수 있습니다.<br /><script, <style 또는 <meta 태그등을 이용하실 수 있습니다";
|
||||
|
|
@ -63,6 +65,6 @@
|
|||
$lang->about_admin_id = '해당 모듈에 대해 최고 권한을 가지는 관리자를 지정할 수 있습니다.<br />,(콤마)로 다수 아이디 지정이 가능합니다. (관리자페이지 접근은 불가능)';
|
||||
$lang->about_grant = '특정 권한의 대상을 모두 해제하시면 로그인하지 않은 회원까지 권한을 가질 수 있습니다';
|
||||
$lang->about_module = "XE는 기본 라이브러리를 제외한 나머지는 모두 모듈로 구성되어 있습니다.\n모듈관리 모듈은 설치된 모든 모듈을 보여주고 관리를 도와줍니다.";
|
||||
|
||||
$lang->about_extra_vars_default_value = '다중/단일 선택등 기본값이 여러개가 필요한 경우 , (콤마)로 연결하시면 됩니다';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @brief Russian basic language pack
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "Список модулей";
|
||||
$lang->module_index = "Список модулей";
|
||||
$lang->module_category = "Категория модуля";
|
||||
|
|
@ -24,6 +25,7 @@
|
|||
$lang->skin_author = 'Разработчик скина';
|
||||
$lang->skin_license = 'License';
|
||||
$lang->skin_history = 'История обновлений';
|
||||
$lang->module_selector = "Module Selector";
|
||||
$lang->module_copy = "Копировать модуль";
|
||||
|
||||
$lang->header_script = "헤더 스크립트";
|
||||
|
|
@ -64,4 +66,5 @@
|
|||
$lang->about_module = "XE состоит из модулей, за исключением базовой библиотеки.\n Управление модулем покажет все установленные модули и поможет управлять ими.";
|
||||
|
||||
$lang->about_extra_vars_default_value = 'Если нужно несколько значений по умолчанию, разделите их запятыми(,).';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @brief 简体中文语言包
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "模块目录";
|
||||
$lang->module_index = "模块目录";
|
||||
$lang->module_category = "模块分类";
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
$lang->skin_license = '版权';
|
||||
$lang->skin_history = '更新日志';
|
||||
$lang->module_copy = "Copy Module";
|
||||
$lang->module_selector = "Module Selector";
|
||||
|
||||
$lang->header_script = "文件头部脚本";
|
||||
$lang->about_header_script = "可以直接输入插入到html中<head>区的代码。<br />可使用<script, <style 或 <meta 等标签。";
|
||||
|
|
@ -64,4 +66,5 @@
|
|||
$lang->about_module = "除基本library以外XE全部由模块组成。\n模块管理中列出所有已安装的模块,因此易于管理。";
|
||||
|
||||
$lang->about_extra_vars_default_value = '复选/单选缺省值需要多个时,用,(逗号)来分隔。';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
* @brief 正體中文語言
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "模組列表";
|
||||
$lang->module_index = "模組列表";
|
||||
$lang->module_category = "模組分類";
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
$lang->skin_license = '版權';
|
||||
$lang->skin_history = '更新事項';
|
||||
$lang->module_copy = "複製模組";
|
||||
$lang->module_selector = "Module Selector";
|
||||
|
||||
$lang->header_script = "Header Script";
|
||||
$lang->about_header_script = "可以直接輸入,並插入到 HTML的<head>之間。<br />可使用<script>, <style> 或 <meta> 等標籤。";
|
||||
|
|
@ -65,4 +67,5 @@
|
|||
$lang->about_module = "除基本函式庫以外XE全部由模組組成。\n模組管理中列出所有已安裝的模組,因此易於管理。";
|
||||
|
||||
$lang->about_extra_vars_default_value = '當復選或單選的預設值需要很多個時,用 (,) 區隔。';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -97,5 +97,82 @@
|
|||
$this->setTemplateFile('copy_module');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 선택기
|
||||
**/
|
||||
function dispModuleAdminSelectList() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// virtual site의 개수를 추출
|
||||
$output = executeQuery('module.getSiteCount');
|
||||
$site_count = $output->data->count;
|
||||
Context::set('site_count', $site_count);
|
||||
|
||||
// 사이트 검색어 변수 설정
|
||||
$site_keyword = Context::get('site_keyword');
|
||||
|
||||
// 사이트 검색어가 없으면 현재 가상 사이트의 정보를 설정
|
||||
$args = null;
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin == 'Y') {
|
||||
$query_id = 'module.getSiteModules';
|
||||
$module_category_exists = false;
|
||||
if(!$site_keyword) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info && $logged_info->is_admin != 'Y') {
|
||||
$site_keyword = $site_module_info->domain;
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
Context::set('site_keyword', $site_keyword);
|
||||
} else {
|
||||
$query_id = 'module.getDefaultModules';
|
||||
$module_category_exists = true;
|
||||
}
|
||||
// 사이트 검색어가 있으면 해당 사이트(들)의 정보를 추출
|
||||
} else {
|
||||
$args->site_keyword = $site_keyword;
|
||||
}
|
||||
} else {
|
||||
$query_id = 'module.getSiteModules';
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
}
|
||||
|
||||
// 지정된 사이트(혹은 전체)의 module 목록을 구함
|
||||
$output = executeQueryArray($query_id, $args);
|
||||
$category_list = $mid_list = array();
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $key => $val) {
|
||||
$module = trim($val->module);
|
||||
if(!$module) continue;
|
||||
|
||||
$category = $val->category;
|
||||
$obj = null;
|
||||
$obj->module_srl = $val->module_srl;
|
||||
$obj->browser_title = $val->browser_title;
|
||||
$mid_list[$module]->list[$category][$val->mid] = $obj;
|
||||
}
|
||||
}
|
||||
|
||||
$selected_module = Context::get('selected_module');
|
||||
if(count($mid_list)) {
|
||||
foreach($mid_list as $module => $val) {
|
||||
if(!$selected_module) $selected_module = $module;
|
||||
$xml_info = $oModuleModel->getModuleInfoXml($module);
|
||||
$mid_list[$module]->title = $xml_info->title;
|
||||
}
|
||||
}
|
||||
|
||||
Context::set('mid_list', $mid_list);
|
||||
Context::set('selected_module', $selected_module);
|
||||
Context::set('selected_mids', $mid_list[$selected_module]->list);
|
||||
Context::set('module_category_exists', $module_category_exists);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_selector');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -113,6 +113,21 @@
|
|||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Action중 Admin이 들어갔을 경우 권한 체크
|
||||
**/
|
||||
function checkAdminActionGrant() {
|
||||
if(!Context::get('is_logged')) return false;
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin=='Y') return true;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
if($oModuleModel->isSiteAdmin()) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
|
|
|
|||
23
modules/module/queries/getDefaultModules.xml
Normal file
23
modules/module/queries/getDefaultModules.xml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<query id="getDefaultModules" action="select">
|
||||
<tables>
|
||||
<table name="modules" />
|
||||
<table name="module_categories" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="modules.site_srl" />
|
||||
<column name="modules.module" />
|
||||
<column name="modules.mid" />
|
||||
<column name="modules.browser_title" />
|
||||
<column name="module_categories.title" alias="category" />
|
||||
<column name="modules.module_srl" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="modules.site_srl" default="0" />
|
||||
<condition operation="equal" column="modules.module_category_srl" default="module_categories.module_category_srl" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="module" order="asc" />
|
||||
<index var="sort_index" default="module_categories.title" order="asc" />
|
||||
<index var="sort_index" default="mid" order="asc" />
|
||||
</navigation>
|
||||
</query>
|
||||
8
modules/module/queries/getSiteCount.xml
Normal file
8
modules/module/queries/getSiteCount.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="getSiteCount" action="select">
|
||||
<tables>
|
||||
<table name="sites" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="count(*)" alias="count"/>
|
||||
</columns>
|
||||
</query>
|
||||
23
modules/module/queries/getSiteModules.xml
Normal file
23
modules/module/queries/getSiteModules.xml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<query id="getSiteModules" action="select">
|
||||
<tables>
|
||||
<table name="sites" />
|
||||
<table name="modules" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="sites.domain" />
|
||||
<column name="modules.site_srl" />
|
||||
<column name="modules.module" />
|
||||
<column name="modules.mid" />
|
||||
<column name="modules.browser_title" />
|
||||
<column name="modules.module_srl" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="sites.site_srl" var="site_srl" />
|
||||
<condition operation="equal" column="sites.domain" var="site_keyword" pipe="and" />
|
||||
<condition operation="equal" column="sites.site_srl" default="modules.site_srl" pipe="and"/>
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="modules.module" order="asc" />
|
||||
<index var="sort_index" default="modules.mid" order="asc" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
@ -56,3 +56,17 @@ function completeCopyModule() {
|
|||
if(typeof(opener)!='undefined') opener.location.href = opener.location.href;
|
||||
window.close();
|
||||
}
|
||||
|
||||
/* 모듈 선택기에서 선택된 모듈의 입력 */
|
||||
function insertModule(id, module_srl, mid, browser_title, multi_select) {
|
||||
if(typeof(multi_select)=='undefined') multi_select = true;
|
||||
if(!window.opener) window.close();
|
||||
if(typeof(opener.insertSelectedModule)=='undefined') return;
|
||||
|
||||
if(multi_select) {
|
||||
opener.insertSelectedModules(id, module_srl, mid, browser_title);
|
||||
} else {
|
||||
opener.insertSelectedModule(id, module_srl, mid, browser_title);
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
80
modules/module/tpl/module_selector.html
Normal file
80
modules/module/tpl/module_selector.html
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<!--%import("./js/module_admin.js")-->
|
||||
|
||||
<div id="popHeadder">
|
||||
<h3>{$lang->module_selector}</h3>
|
||||
</div>
|
||||
|
||||
<div id="popBody">
|
||||
<form action="./" method="post">
|
||||
<input type="hidden" name="module" value="module" />
|
||||
<input type="hidden" name="act" value="dispModuleAdminSelectList" />
|
||||
<input type="hidden" name="id" value="{$id}" />
|
||||
<input type="hidden" name="type" value="{$type}" />
|
||||
<table class="adminTable" cellspacing="0">
|
||||
<tbody>
|
||||
<!--@if($site_count && $logged_info->is_admin == 'Y')-->
|
||||
<tr>
|
||||
<th><div>{$lang->virtual_site}</div></th>
|
||||
<td>
|
||||
<input type="text" name="site_keyword" value="{$site_keyword}" class="inputTypeText w200" /> <span class="button blue"><input type="submit" value="{$lang->cmd_search}" /></span>
|
||||
<p>{$lang->about_search_virtual_site}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th><div>{$lang->module}</div></th>
|
||||
<td>
|
||||
<select name="selected_module">
|
||||
<!--@foreach($mid_list as $key=>$val)-->
|
||||
<option value="{$key}" <!--@if($selected_module == $key)-->selected="selected"<!--@end-->>{$val->title}</option>
|
||||
<!--@end-->
|
||||
</select><span class="button blue"><input type="submit" value="{$lang->cmd_search}" /></span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="adminTable" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<!--@if($module_category_exists)--><th><div>{$lang->module_category}</div></th><!--@end-->
|
||||
<th><div>{$lang->mid}</div></th>
|
||||
<th class="wide"><div>{$lang->browser_title}</div></th>
|
||||
<th><div>{$type=='single'?$lang->cmd_select:$lang->cmd_insert}</div></th>
|
||||
<tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!--@if($module_category_exists)-->
|
||||
<!--@foreach($selected_mids as $key => $val)-->
|
||||
<tr>
|
||||
<td rowspan="{count($val)}">{$key}</td>
|
||||
{@ $_idx =0; }
|
||||
<!--@foreach($val as $k => $v)-->
|
||||
<!--@if($_idx >0)--><tr><!--@end-->
|
||||
<td>{$k}</td>
|
||||
<td>{$v->browser_title}</td>
|
||||
<td><a href="#" onclick="insertModule('{$id}', {$v->module_srl}, '{$k}', '{$v->browser_title}',{$type=='single'?'false':'true'}); return false;" class="button green"><span>{$type=='single'?$lang->cmd_select:$lang->cmd_insert}</span></a></td>
|
||||
<!--@if($_idx <count($val))--></tr><!--@end-->
|
||||
{@ $_idx ++; }
|
||||
<!--@end-->
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<!--@else-->
|
||||
<!--@foreach($selected_mids as $key => $val)-->
|
||||
<!--@foreach($val as $k => $v)-->
|
||||
<tr>
|
||||
<td>{$k}</td>
|
||||
<td>{$v->browser_title}</td>
|
||||
<td><a href="#" onclick="insertModule('{$id}', {$v->module_srl}, '{$k}', '{$v->browser_title}',{$type=='single'?'false':'true'}); return false;" class="button green"><span>{$type=='single'?$lang->cmd_select:$lang->cmd_insert}</span></a></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="popFooter" class="tCenter gap1">
|
||||
<span class="button red"><input type="button" value="{$lang->cmd_close}" onclick="window.close(); return false;"/></span>
|
||||
</div>
|
||||
|
||||
|
|
@ -8,6 +8,8 @@
|
|||
<action name="dispWidgetAdminDownloadedList" type="view" standalone="true" admin_index="true" />
|
||||
<action name="dispWidgetAdminAddContent" type="view" standalone="true" />
|
||||
|
||||
<action name="getWidgetAdminModuleList" type="model" standalone="true" />
|
||||
|
||||
<action name="procWidgetGenerateCode" type="controller" standalone="true" />
|
||||
<action name="procWidgetAddContent" type="controller" standalone="true" />
|
||||
<action name="procWidgetInsertDocument" type="controller" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
$lang->msg_widget_is_not_exists = "'%s' does not exist.";
|
||||
$lang->msg_widget_object_is_null = "Object of '%s' could not be created.";
|
||||
$lang->msg_widget_proc_is_null = "proc() of '%s' could not be executed.";
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = 'Please input required value first, and click [Generate Code] button to generate code to add to the template file.';
|
||||
$lang->about_widget_code_in_page = 'After entering the required values, click the [Add] button to insert the widget code into the page.';
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
$lang->msg_widget_is_not_exists = 'No existe widget %s .';
|
||||
$lang->msg_widget_object_is_null = 'No puede ser creado el objeto de widget %s.';
|
||||
$lang->msg_widget_proc_is_null = 'No puede ser ejecutado el proc() de widget %s.';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = 'Ingrese primero los valores requeridos, luego presiona el botón "Generar códigos" para mostrar el código en el espacio inferior para ser añadido en el archivo de los temas.';
|
||||
$lang->about_widget_code_in_page = 'Luego de ingresar los valores requeridos, presiona el botón "Añadir" para insertar el código de widget dentro de la página.';
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
$lang->msg_widget_is_not_exists = "Le Gadget de(d') '%s' n'existe pas.";
|
||||
$lang->msg_widget_object_is_null = "L'Objet de '%s' n'a pas pu être créé.";
|
||||
$lang->msg_widget_proc_is_null = "proc() de '%s' n'a pas pu être exécuté.";
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = 'Entrez les valeurs qui sont requises par le gadget choisi, et puis cliquz le bouton [Générer le Code] pour générer le code. Le code à appliquer au fichier de modèl se présentera en bas.';
|
||||
$lang->about_widget_code_in_page = 'Après entrer les valeurs requies, cliquez le bouton [Ajouter] pour insérer le gadjet dans la page.';
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
$lang->msg_widget_is_not_exists = '%s ウィジェットが見つかりません。';
|
||||
$lang->msg_widget_object_is_null = '%s ウィジェットのオブジェクトが生成できません。';
|
||||
$lang->msg_widget_proc_is_null = '%s ウィセットの proc() が実行できません。';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = '選択されたウィゼットで求められる下の項目の値を入力し、「コード生成」ボタンをクリックすると、<br />一番下にテンプレートファイルに適用できるコードが出力されます。';
|
||||
$lang->about_widget_code_in_page = '下に必要な値を入力した後、追加ボタンをクリックするとページ内にウィジェットが挿入されます。';
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
$lang->msg_widget_is_not_exists = '%s 위젯을 찾을 수 없습니다';
|
||||
$lang->msg_widget_object_is_null = '%s 위젯의 객체 생성을 할 수가 없습니다';
|
||||
$lang->msg_widget_proc_is_null = '%s 위젯의 proc() 를 실행할 수가 없습니다';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = '선택하신 위젯에서 요구하는 아래 항목들의 값을 넣고 [코드생성]버튼을 누르시면 제일 아래 칸에 템플릿 파일에 적용할 수 있는 코드가 출력 됩니다';
|
||||
$lang->about_widget_code_in_page = '아래 필요한 값들을 입력하신 후 추가 버튼을 누르시면 페이지 내에 위젯이 삽입이 됩니다';
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
$lang->msg_widget_is_not_exists = '%s виджет не существует.';
|
||||
$lang->msg_widget_object_is_null = '%s объектов виджета не могут быть созданы.';
|
||||
$lang->msg_widget_proc_is_null = 'proc() %s виджета не может быть исполнена.';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = 'Пожалуйста, сначала введите требуемые значения, и затем щелкните кнопку [Генерировать Код] для генерации кода и добавления его в файл шаблона.';
|
||||
$lang->about_widget_code_in_page = 'После ввода требуемых значений, нажмите пнопку [Добавить], чтобы вставить код виджета в страницу.';
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
$lang->msg_widget_is_not_exists = '找不到%s控件!';
|
||||
$lang->msg_widget_object_is_null = '无法生成%s控件对象!';
|
||||
$lang->msg_widget_proc_is_null = '不能执行%s控件的 proc()!';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = '输入被选控件所需要的下列各项后,按『代码生成』按钮,即可在页面下方获得可以用在布局模版代码片断。';
|
||||
$lang->about_widget_code_in_page = '输入下列各项必要值后,按『生成代码』按钮,即可把控件插入到页面当中。';
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
$lang->msg_widget_is_not_exists = '找不到%s控件!';
|
||||
$lang->msg_widget_object_is_null = '無法建立%s控件目標!';
|
||||
$lang->msg_widget_proc_is_null = '無法執行%s控件的 proc()!';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = '輸入所選控件所需要的各項資料後,按『建立原始碼』按鈕,即可在頁面下方獲得運用在版面設計中的部分原始碼。';
|
||||
$lang->about_widget_code_in_page = '輸入下列各項必要資料後,按『建立原始碼』按鈕,即可把控件插入到頁面當中。';
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
.widget_title { border:1px solid #DDDDDD; margin:10px 5px 5px 0; padding:3px; }
|
||||
.widget_mid_list { margin:0 0 5px 10px; }
|
||||
.widget_description { color:#AAAAAA; border-top:1px dotted #EEEEEE; margin:5px 0 0 0; padding:5px 0 0 0; }
|
||||
|
||||
#colorset_area { margin-top:.5em; }
|
||||
|
||||
#colorset_area .header { float:left; margin-right:.5em; padding-top:.2em;}
|
||||
|
|
@ -52,3 +51,6 @@
|
|||
div.editor { width:700px; }
|
||||
|
||||
.help { padding:5px 0; background-color:#EFEFEF; border-top:1px solid #CCCCCC; }
|
||||
|
||||
ul.midCommand { float:left; margin:0 0 0 10px;; padding:0;}
|
||||
ul.midCommand li { display:block; margin-bottom:5px; list-style:none;}
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ function doFillWidgetVars() {
|
|||
fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top");
|
||||
|
||||
for(var name in fo_obj) {
|
||||
if(name.indexOf('_')==0) continue;
|
||||
var node = fo_obj[name];
|
||||
if(!node || typeof(node)=="undefined") continue;
|
||||
|
||||
|
|
@ -99,6 +100,7 @@ function doFillWidgetVars() {
|
|||
else length = 0;
|
||||
|
||||
switch(type) {
|
||||
case "hidden" :
|
||||
case "text" :
|
||||
case "textarea" :
|
||||
var val = selected_node.getAttribute(name);
|
||||
|
|
@ -165,3 +167,140 @@ function checkFixType(obj) {
|
|||
if(width>100) fo_obj.widget_width.value = 100;
|
||||
}
|
||||
}
|
||||
|
||||
// 위젯의 대상 모듈 입력기 (단일 선택)
|
||||
function insertSelectedModule(id, module_srl, mid, browser_title) {
|
||||
var obj= xGetElementById('_'+id);
|
||||
var sObj = xGetElementById(id);
|
||||
sObj.value = module_srl;
|
||||
obj.value = browser_title+' ('+mid+')';
|
||||
|
||||
}
|
||||
|
||||
// 위젯의 대상 모듈 입력기 (다중 선택)
|
||||
function insertSelectedModules(id, module_srl, mid, browser_title) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
for(var i=0;i<sel_obj.options.length;i++) if(sel_obj.options[i].value==module_srl) return;
|
||||
var opt = new Option(browser_title+' ('+mid+')', module_srl, false, false);
|
||||
sel_obj.options[sel_obj.options.length] = opt;
|
||||
if(sel_obj.options.length>8) sel_obj.size = sel_obj.options.length;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midMoveUp(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
|
||||
if(idx < 1) return;
|
||||
|
||||
var s_obj = sel_obj.options[idx];
|
||||
var t_obj = sel_obj.options[idx-1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
sel_obj.selectedIndex = idx-1;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midMoveDown(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
|
||||
if(idx == sel_obj.options.length-1) return;
|
||||
|
||||
var s_obj = sel_obj.options[idx];
|
||||
var t_obj = sel_obj.options[idx+1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
sel_obj.selectedIndex = idx+1;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midRemove(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
sel_obj.remove(idx);
|
||||
idx = idx-1;
|
||||
if(idx < 0) idx = 0;
|
||||
if(sel_obj.options.length) sel_obj.selectedIndex = idx;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function syncMid(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
var valueArray = new Array();
|
||||
for(var i=0;i<sel_obj.options.length;i++) valueArray[valueArray.length] = sel_obj.options[i].value;
|
||||
xGetElementById(id).value = valueArray.join(',');
|
||||
}
|
||||
|
||||
function getModuleSrlList(id) {
|
||||
var obj = xGetElementById(id);
|
||||
if(!obj.value) return;
|
||||
var value = obj.value;
|
||||
var params = new Array();
|
||||
params["module_srls"] = obj.value;
|
||||
params["id"] = id;
|
||||
|
||||
var response_tags = new Array("error","message","module_list","id");
|
||||
exec_xml("widget", "getWidgetAdminModuleList", params, completeGetModuleSrlList, response_tags, params);
|
||||
}
|
||||
|
||||
function completeGetModuleSrlList(ret_obj, response_tags) {
|
||||
var id = ret_obj['id'];
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(!sel_obj) return;
|
||||
|
||||
var module_list = ret_obj['module_list'];
|
||||
if(!module_list) return;
|
||||
var item = module_list['item'];
|
||||
if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item);
|
||||
|
||||
for(var i=0;i<item.length;i++) {
|
||||
var module_srl = item[i].module_srl;
|
||||
var mid = item[i].mid;
|
||||
var browser_title = item[i].browser_title;
|
||||
var opt = new Option(browser_title+' ('+mid+')', module_srl);
|
||||
sel_obj.options.add(opt);
|
||||
}
|
||||
}
|
||||
|
||||
function getModuleSrl(id) {
|
||||
var obj = xGetElementById(id);
|
||||
if(!obj.value) return;
|
||||
var value = obj.value;
|
||||
var params = new Array();
|
||||
params["module_srls"] = obj.value;
|
||||
params["id"] = id;
|
||||
|
||||
var response_tags = new Array("error","message","module_list","id");
|
||||
exec_xml("widget", "getWidgetAdminModuleList", params, completeGetModuleSrl, response_tags, params);
|
||||
}
|
||||
|
||||
function completeGetModuleSrl(ret_obj, response_tags) {
|
||||
var id = ret_obj['id'];
|
||||
var obj = xGetElementById('_'+id);
|
||||
var sObj = xGetElementById(id);
|
||||
if(!sObj || !obj) return;
|
||||
|
||||
var module_list = ret_obj['module_list'];
|
||||
if(!module_list) return;
|
||||
var item = module_list['item'];
|
||||
if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item);
|
||||
|
||||
sObj.value = item[0].module_srl;
|
||||
obj.value = item[0].browser_title+' ('+item[0].mid+')';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,117 +11,11 @@
|
|||
</div>
|
||||
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<caption>{nl2br($lang->about_widget_code)}</caption>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->widget}</div></th>
|
||||
<td>{$widget_info->title} ver {$widget_info->version}</td>
|
||||
</tr>
|
||||
<!--@if(count($skin_list))-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->skin}</div></th>
|
||||
<td>
|
||||
<select name="skin" onchange="doDisplaySkinColorset(this);return false;">
|
||||
<option value=""> </option>
|
||||
<!--@foreach($skin_list as $key => $val)-->
|
||||
<option value="{$key}">{$val->title} ({$key})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
<div id="colorset_area" style="display:none">
|
||||
<div class="header">{$lang->colorset}</div>
|
||||
<div class="footer">
|
||||
<select name="colorset" id="widget_colorset">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->widget_cache}</div></th>
|
||||
<td>
|
||||
<input type="text" name="widget_cache" value="0" class="inputTypeText" size="2" />{$lang->unit_min}
|
||||
<p>{$lang->about_widget_cache}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@foreach($widget_info->extra_var as $id => $var)-->
|
||||
|
||||
<!--@if($var->group && ((!$group) || $group != $var->group))-->
|
||||
{@$group = $var->group}
|
||||
</table>
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<caption>{$group}</caption>
|
||||
<!--@end-->
|
||||
|
||||
<tr class="row{$cycle_idx}">
|
||||
<th scope="row"><div>
|
||||
{$var->name}
|
||||
<!--@if($var->type == "mid_list")-->
|
||||
<input type="checkbox" onclick="XE.checkboxToggleAll('{$id}'); return false;" />
|
||||
<!--@end-->
|
||||
</div></th>
|
||||
<td>
|
||||
<!--@if($var->type == "text")-->
|
||||
<input type="text" name="{$id}" value="" class="inputTypeText w400" />
|
||||
|
||||
<!--@elseif($var->type == "textarea")-->
|
||||
<textarea name="{$id}" class="inputTypeTextArea w200"></textarea>
|
||||
|
||||
<!--@elseif($var->type == "select")-->
|
||||
<select name="{$id}">
|
||||
<!--@foreach($var->options as $key => $val)-->
|
||||
<option value="{$key}">{$val}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
<!--@elseif($var->type == "mid_list")-->
|
||||
|
||||
<!--@foreach($mid_list as $module_category_srl => $modules)-->
|
||||
<!--@if($modules->title)-->
|
||||
<div class="widget_title">{$modules->title}</div>
|
||||
<!--@else-->
|
||||
<div class="widget_title">{$lang->none_category}</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@foreach($modules->list as $key => $val)-->
|
||||
<div class="widget_mid_list">
|
||||
<input type="checkbox" value="{$key}" name="{$id}" id="chk_mid_list_{$key}" />
|
||||
<label for="chk_mid_list_{$key}">{$key} ({$val->browser_title})</label>
|
||||
</div>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
|
||||
<!--@elseif($var->type == "mid")-->
|
||||
|
||||
<select name="{$id}">
|
||||
<!--@foreach($mid_list as $module_category_srl => $modules)-->
|
||||
<!--@if($modules->title)-->
|
||||
<option disabled="disabled">{$modules->title}</option>
|
||||
<!--@else-->
|
||||
<option disabled="disabled">{$lang->none_category}</option>
|
||||
<!--@end-->
|
||||
|
||||
<!--@foreach($modules->list as $key => $val)-->
|
||||
<option value="{$key}"> {$key} ({$val->browser_title})</option>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
|
||||
<!--@end-->
|
||||
<p class="clear">{nl2br($var->description)}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($group)-->
|
||||
</table>
|
||||
{@ $_caption = $lang->about_widget_code}
|
||||
<!--#include("widget_generate_code.include.html")-->
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<col width="100" />
|
||||
<col width="*" />
|
||||
<!--@end-->
|
||||
|
||||
<tr>
|
||||
<th><div>{$lang->widget_code}</div></th>
|
||||
<td><textarea readonly="true" id="widget_code" class="inputTypeTextArea w400"></textarea></td>
|
||||
|
|
@ -130,8 +24,8 @@
|
|||
</div>
|
||||
|
||||
<div id="popFooter" class="tCenter gap1">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_generate_code}" /></span>
|
||||
<a href="#" onclick="window.close(); return false;" class="button"><span>{$lang->cmd_close}</span></a>
|
||||
<span class="button green"><input type="submit" value="{$lang->cmd_generate_code}" /></span>
|
||||
<a href="#" onclick="window.close(); return false;" class="button red"><span>{$lang->cmd_close}</span></a>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
|
|
|||
116
modules/widget/tpl/widget_generate_code.include.html
Normal file
116
modules/widget/tpl/widget_generate_code.include.html
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
<table cellspacing="0" class="adminTable">
|
||||
<caption>{nl2br($_caption)}</caption>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->widget}</div></th>
|
||||
<td>
|
||||
{$widget_info->title} ver {$widget_info->version}
|
||||
<!--@if($widget_info->author->description)-->
|
||||
<div class="widget_description">{nl2br(trim($widget_info->author->description))}</div>
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<!--@if(count($skin_list))-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->skin}</div></th>
|
||||
<td>
|
||||
<select name="skin" onchange="doDisplaySkinColorset(this);return false;" id="widget_skin">
|
||||
<option value=""> </option>
|
||||
<!--@foreach($skin_list as $key => $val)-->
|
||||
<option value="{$key}">{$val->title} ({$key})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
<div id="colorset_area" style="display:none">
|
||||
<div class="header">{$lang->colorset}</div>
|
||||
<div class="footer">
|
||||
<select name="colorset" id="widget_colorset">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->widget_cache}</div></th>
|
||||
<td>
|
||||
<input type="text" name="widget_cache" value="0" class="inputTypeText" size="2" />{$lang->unit_min}
|
||||
<p>{$lang->about_widget_cache}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@foreach($widget_info->extra_var as $id => $var)-->
|
||||
|
||||
<!--@if($var->group && ((!$group) || $group != $var->group))-->
|
||||
{@$group = $var->group}
|
||||
</table>
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<caption>{$group}</caption>
|
||||
<!--@end-->
|
||||
|
||||
<tr class="row{$cycle_idx}">
|
||||
<th scope="row">
|
||||
<div>
|
||||
{$var->name}
|
||||
<!--@if($var->type == "mid_list")-->
|
||||
<input type="checkbox" onclick="XE.checkboxToggleAll('{$id}'); return false;" />
|
||||
<!--@end-->
|
||||
</div>
|
||||
</th>
|
||||
<td>
|
||||
<!--@if($var->type == "text")-->
|
||||
<input type="text" name="{$id}" value="" class="inputTypeText w400" />
|
||||
|
||||
<!--@elseif($var->type == "textarea")-->
|
||||
<textarea name="{$id}" class="inputTypeTextArea w400"></textarea>
|
||||
|
||||
<!--@elseif($var->type == "select")-->
|
||||
<select name="{$id}">
|
||||
<!--@foreach($var->options as $key => $val)-->
|
||||
<option value="{$key}">{$val}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
<!--@elseif($var->type == "mid_list")-->
|
||||
|
||||
<!--@foreach($mid_list as $module_category_srl => $modules)-->
|
||||
<!--@if($modules->title)-->
|
||||
<div class="widget_title">{$modules->title}</div>
|
||||
<!--@else-->
|
||||
<div class="widget_title">{$lang->none_category}</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@foreach($modules->list as $key => $val)-->
|
||||
<div class="widget_mid_list">
|
||||
<input type="checkbox" value="{$key}" name="{$id}" id="chk_mid_list_{$key}" />
|
||||
<label for="chk_mid_list_{$key}">{$key} ({$val->browser_title})</label>
|
||||
</div>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
|
||||
<!--@elseif($var->type == "module_srl_list")-->
|
||||
<input type="hidden" name="{$id}" id="{$id}" value="" />
|
||||
<select name="_{$id}" id="_{$id}" size="8" class="w300 fl"></select>
|
||||
<ul class="midCommand">
|
||||
<li><a href="{getUrl('','module','module','act','dispModuleAdminSelectList','id',$id)}" onclick="popopen(this.href, 'ModuleSelect');return false;" class="button blue"><span>{$lang->cmd_insert}</span></a></li>
|
||||
<li><a href="#" onclick="midMoveUp('{$id}');return false;" class="button black"><span>{$lang->cmd_move_up}</span></a></li>
|
||||
<li><a href="#" onclick="midMoveDown('{$id}');return false;" class="button black"><span>{$lang->cmd_move_down}</span></a></li>
|
||||
<li><a href="#" onclick="midRemove('{$id}');return false;" class="button red"><span>{$lang->cmd_delete}</span></a></li>
|
||||
</ul>
|
||||
<script type="text/javascript">
|
||||
if(typeof(getModuleSrlList)!=='undefined') {
|
||||
xAddEventListener(window,'load',function() { getModuleSrlList('{$id}'); });
|
||||
}
|
||||
</script>
|
||||
<!--@elseif($var->type == "mid")-->
|
||||
<input type="hidden" name="{$id}" id="{$id}" value="" />
|
||||
<input type="text" name="_{$id}" id="_{$id}" value="" class="inputTypeText w300" readonly="readonly"/><a href="{getUrl('','module','module','act','dispModuleAdminSelectList','id',$id,'type','single')}" onclick="popopen(this.href, 'ModuleSelect');return false;" class="button blue"><span>{$lang->cmd_select}</span></a>
|
||||
<script type="text/javascript">
|
||||
if(typeof(getModuleSrlList)!=='undefined') {
|
||||
xAddEventListener(window,'load',function() { getModuleSrl('{$id}'); });
|
||||
}
|
||||
</script>
|
||||
<!--@end-->
|
||||
<p class="clear">{nl2br($var->description)}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</table>
|
||||
|
|
@ -3,6 +3,10 @@
|
|||
<!--%import("css/widget.css")-->
|
||||
<!--%import("../../admin/tpl/css/admin.css")-->
|
||||
|
||||
<script type="text/javascript">
|
||||
xAddEventListener(window, "load", doFillWidgetVars);
|
||||
</script>
|
||||
|
||||
<form action="./" method="get" onsubmit="return procFilter(this, generate_code_in_page);" id="fo_widget">
|
||||
<input type="hidden" name="selected_widget" value="{$selected_widget}" />
|
||||
<input type="hidden" name="module_srl" value="{$module_srl}" />
|
||||
|
|
@ -18,122 +22,11 @@
|
|||
</div>
|
||||
|
||||
<div id="popBody">
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<caption>{nl2br($lang->about_widget_code_in_page)}</caption>
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->widget}</div></th>
|
||||
<td>
|
||||
{$widget_info->title} ver {$widget_info->version}
|
||||
<!--@if($widget_info->author->description)-->
|
||||
<div class="widget_description">{nl2br(trim($widget_info->author->description))}</div>
|
||||
<!--@end-->
|
||||
</td>
|
||||
</tr>
|
||||
<!--@if(count($skin_list))-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->skin}</div></th>
|
||||
<td>
|
||||
<select name="skin" onchange="doDisplaySkinColorset(this);return false;" id="widget_skin">
|
||||
<option value=""> </option>
|
||||
<!--@foreach($skin_list as $key => $val)-->
|
||||
<option value="{$key}">{$val->title} ({$key})</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
<div id="colorset_area" style="display:none">
|
||||
<div class="header">{$lang->colorset}</div>
|
||||
<div class="footer">
|
||||
<select name="colorset" id="widget_colorset">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th scope="row"><div>{$lang->widget_cache}</div></th>
|
||||
<td>
|
||||
<input type="text" name="widget_cache" value="0" class="inputTypeText" size="2" />{$lang->unit_min}
|
||||
<p>{$lang->about_widget_cache}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@foreach($widget_info->extra_var as $id => $var)-->
|
||||
|
||||
<!--@if($var->group && ((!$group) || $group != $var->group))-->
|
||||
{@$group = $var->group}
|
||||
</table>
|
||||
<table cellspacing="0" class="adminTable">
|
||||
<caption>{$group}</caption>
|
||||
<!--@end-->
|
||||
|
||||
<tr class="row{$cycle_idx}">
|
||||
<th scope="row"><div>
|
||||
{$var->name}
|
||||
<!--@if($var->type == "mid_list")-->
|
||||
<input type="checkbox" onclick="XE.checkboxToggleAll('{$id}'); return false;" />
|
||||
<!--@end-->
|
||||
</div></th>
|
||||
<td>
|
||||
<!--@if($var->type == "text")-->
|
||||
<input type="text" name="{$id}" value="" class="inputTypeText w400" />
|
||||
|
||||
<!--@elseif($var->type == "textarea")-->
|
||||
<textarea name="{$id}" class="inputTypeTextArea w100"></textarea>
|
||||
|
||||
<!--@elseif($var->type == "select")-->
|
||||
<select name="{$id}">
|
||||
<!--@foreach($var->options as $key => $val)-->
|
||||
<option value="{$key}">{$val}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
<!--@elseif($var->type == "mid_list")-->
|
||||
|
||||
<!--@foreach($mid_list as $module_category_srl => $modules)-->
|
||||
<!--@if($modules->title)-->
|
||||
<div class="widget_title">{$modules->title}</div>
|
||||
<!--@else-->
|
||||
<div class="widget_title">{$lang->none_category}</div>
|
||||
<!--@end-->
|
||||
|
||||
<!--@foreach($modules->list as $key => $val)-->
|
||||
<div class="widget_mid_list">
|
||||
<input type="checkbox" value="{$key}" name="{$id}" id="chk_mid_list_{$key}" />
|
||||
<label for="chk_mid_list_{$key}">{$key} ({$val->browser_title})</label>
|
||||
</div>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
|
||||
<!--@elseif($var->type == "mid")-->
|
||||
|
||||
<select name="{$id}">
|
||||
<!--@foreach($mid_list as $module_category_srl => $modules)-->
|
||||
<!--@if($modules->title)-->
|
||||
<option disabled="disabled">{$modules->title}</option>
|
||||
<!--@else-->
|
||||
<option disabled="disabled">{$lang->none_category}</option>
|
||||
<!--@end-->
|
||||
|
||||
<!--@foreach($modules->list as $key => $val)-->
|
||||
<option value="{$key}"> {$key} ({$val->browser_title})</option>
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
</select>
|
||||
|
||||
<!--@end-->
|
||||
<p class="clear">{nl2br($var->description)}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
</table>
|
||||
|
||||
{@ $_caption = $lang->about_widget_code_in_page}
|
||||
<!--#include("widget_generate_code.include.html")-->
|
||||
</div>
|
||||
<div id="popFooter" class="tCenter gap1">
|
||||
<span class="button"><input type="submit" value="{$lang->cmd_generate_code}" /></span>
|
||||
<a href="#" onclick="window.close(); return false;" class="button"><span>{$lang->cmd_close}</span></a>
|
||||
<span class="button green"><input type="submit" value="{$lang->cmd_generate_code}" /></span>
|
||||
<a href="#" onclick="window.close(); return false;" class="button red"><span>{$lang->cmd_close}</span></a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
xAddEventListener(window, "load", doFillWidgetVars);
|
||||
</script>
|
||||
|
|
|
|||
37
modules/widget/widget.admin.model.php
Normal file
37
modules/widget/widget.admin.model.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
/**
|
||||
* @class widgetAdminModel
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @version 0.1
|
||||
* @brief widget 모듈의 AdminModel class
|
||||
**/
|
||||
|
||||
class widgetAdminModel extends widget {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 경로를 구함
|
||||
**/
|
||||
function getWidgetAdminModuleList() {
|
||||
$args->module_srls = Context::get('module_srls');
|
||||
$output = executeQueryArray('module.getModulesInfo', $args);
|
||||
if(!$output->toBool() || !$output->data) return new Object();
|
||||
|
||||
foreach($output->data as $key => $val) {
|
||||
$list[$val->module_srl] = array('module_srl'=>$val->module_srl,'mid'=>$val->mid,'browser_title'=>$val->browser_title);
|
||||
}
|
||||
$modules = explode(',',$args->module_srls);
|
||||
for($i=0;$i<count($modules);$i++) {
|
||||
$module_list[$modules[$i]] = $list[$modules[$i]];
|
||||
}
|
||||
|
||||
$this->add('id', Context::get('id'));
|
||||
$this->add('module_list', $module_list);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -50,6 +50,22 @@
|
|||
FileHandler::removeFilesInDir("./files/cache/widget_cache");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Action중 Admin이 들어갔을 경우 권한 체크
|
||||
**/
|
||||
function checkAdminActionGrant() {
|
||||
if(!Context::get('is_logged')) return false;
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin=='Y') return true;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
if($oModuleModel->isSiteAdmin()) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 권한 체크를 실행하는 method
|
||||
* 모듈 객체가 생성된 경우는 직접 권한을 체크하지만 기능성 모듈등 스스로 객체를 생성하지 않는 모듈들의 경우에는
|
||||
|
|
|
|||
|
|
@ -14,19 +14,27 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 생성된 코드를 return
|
||||
* @brief request 변수와 위젯 정보를 통해 변수 정렬
|
||||
**/
|
||||
function procWidgetGenerateCode() {
|
||||
// 변수 정리
|
||||
$vars = Context::getRequestVars();
|
||||
function arrangeWidgetVars($widget, $request_vars, &$vars) {
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_info = $oWidgetModel->getWidgetInfo($widget);
|
||||
|
||||
$widget = $vars->selected_widget;
|
||||
|
||||
$blank_img_path = Context::getRequestUri()."common/tpl/images/widget_bg.jpg";
|
||||
|
||||
unset($vars->module);
|
||||
unset($vars->act);
|
||||
unset($vars->selected_widget);
|
||||
unset($vars->body);
|
||||
$vars->skin = trim($request_vars->skin);
|
||||
$vars->colorset = trim($request_vars->colorset);
|
||||
$vars->widget_sequence = (int)($request_vars->widget_sequence);
|
||||
$vars->widget_cache = (int)($request_vars->widget_cache);
|
||||
$vars->style = trim($request_vars->style);
|
||||
$vars->widget_padding_left = trim($request_vars->widget_padding_left);
|
||||
$vars->widget_padding_right = trim($request_vars->widget_padding_right);
|
||||
$vars->widget_padding_top = trim($request_vars->widget_padding_top);
|
||||
$vars->widget_padding_bottom = trim($request_vars->widget_padding_bottom);
|
||||
if(count($widget_info->extra_var)) {
|
||||
foreach($widget_info->extra_var as $key=>$val) {
|
||||
$vars->{$key} = trim($request_vars->{$key});
|
||||
}
|
||||
}
|
||||
|
||||
if($vars->widget_sequence) {
|
||||
$cache_path = './files/cache/widget_cache/';
|
||||
|
|
@ -37,20 +45,30 @@
|
|||
if($vars->widget_cache>0) $vars->widget_sequence = getNextSequence();
|
||||
|
||||
$attribute = array();
|
||||
if($vars) {
|
||||
foreach($vars as $key => $val) {
|
||||
if(!$val) continue;
|
||||
if(strpos($val,'|@|') > 0) $val = str_replace('|@|', ',', $val);
|
||||
$val = htmlspecialchars($val);
|
||||
$attribute[] = sprintf('%s="%s"', $key, $val);
|
||||
foreach($vars as $key => $val) {
|
||||
if(!$val) {
|
||||
unset($vars->{$key});
|
||||
continue;
|
||||
}
|
||||
if(strpos($val,'|@|') > 0) $val = str_replace('|@|', ',', $val);
|
||||
$vars->{$key} = htmlspecialchars($val);
|
||||
$attribute[] = sprintf('%s="%s"', $key, $val);
|
||||
}
|
||||
|
||||
$widget_code = sprintf('<img class="zbxe_widget_output" widget="%s" %s />', $widget, implode(' ',$attribute));
|
||||
return $attribute;
|
||||
}
|
||||
|
||||
$cache_path = './files/cache/widget_cache/';
|
||||
$cache_file = sprintf('%s%d.%s.cache', $cache_path, $vars->widget_sequence, Context::getLangType());
|
||||
FileHandler::removeFile($cache_file);
|
||||
/**
|
||||
* @brief 위젯의 생성된 코드를 return
|
||||
**/
|
||||
function procWidgetGenerateCode() {
|
||||
$widget = Context::get('selected_widget');
|
||||
if(!$widget) return new Object(-1,'msg_invalid_request');
|
||||
if(!Context::get('skin')) return new Object(-1,Context::getLang('msg_widget_skin_is_null'));
|
||||
|
||||
$attribute = $this->arrangeWidgetVars($widget, Context::getRequestVars(), $vars);
|
||||
|
||||
$widget_code = sprintf('<img class="zbxe_widget_output" widget="%s" %s />', $widget, implode(' ',$attribute));
|
||||
|
||||
// 코드 출력
|
||||
$this->add('widget_code', $widget_code);
|
||||
|
|
@ -60,38 +78,11 @@
|
|||
* @brief 페이지 수정시 위젯 코드의 생성 요청
|
||||
**/
|
||||
function procWidgetGenerateCodeInPage() {
|
||||
// 먼저 정상적인 widget 코드를 구함
|
||||
$this->procWidgetGenerateCode();
|
||||
$widget_code = $this->get('widget_code');
|
||||
$widget = Context::get('selected_widget');
|
||||
if(!$widget) return new Object(-1,'msg_invalid_request');
|
||||
if(!Context::get('skin')) return new Object(-1,Context::getLang('msg_widget_skin_is_null'));
|
||||
|
||||
// 변수 정리
|
||||
$vars = Context::getRequestVars();
|
||||
$widget = $vars->selected_widget;
|
||||
unset($vars->module);
|
||||
unset($vars->act);
|
||||
unset($vars->body);
|
||||
unset($vars->selected_widget);
|
||||
|
||||
if($vars->widget_sequence) {
|
||||
$cache_path = './files/cache/widget_cache/';
|
||||
$cache_file = sprintf('%s%d.%s.cache', $cache_path, $vars->widget_sequence, Context::getLangType());
|
||||
FileHandler::removeFile($cache_file);
|
||||
}
|
||||
|
||||
if($vars->widget_cache>0) $vars->widget_sequence = getNextSequence();
|
||||
|
||||
// args 정리
|
||||
$attribute = array();
|
||||
if($vars) {
|
||||
foreach($vars as $key => $val) {
|
||||
if(!$val) continue;
|
||||
if(strpos($val,'|@|')>0) {
|
||||
$val = str_replace('|@|',',',$val);
|
||||
$vars->{$key} = $val;
|
||||
}
|
||||
$attribute[] = sprintf('%s="%s"', $key, str_replace('"','\"',$val));
|
||||
}
|
||||
}
|
||||
$attribute = $this->arrangeWidgetVars($widget, Context::getRequestVars(), $vars);
|
||||
|
||||
// 결과물을 구함
|
||||
$oWidgetHandler = new WidgetHandler();
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
// module_category와 module의 조합
|
||||
if($module_categories) {
|
||||
foreach($mid_list as $module_srl => $module) {
|
||||
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
|
||||
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
|
||||
}
|
||||
} else {
|
||||
$module_categories[0]->list = $mid_list;
|
||||
|
|
|
|||
|
|
@ -15,24 +15,36 @@
|
|||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 기존에 mid_list, mid를 쓸 때의 코드를 위하여 하위 호환 유지 코드
|
||||
if($args->mid_list) {
|
||||
$tmp_mid = explode(",",$args->mid_list);
|
||||
$mid = $tmp_mid[0];
|
||||
} else {
|
||||
} elseif($args->mid) {
|
||||
$mid = $args->mid;
|
||||
}
|
||||
if($mid) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid);
|
||||
}
|
||||
|
||||
if($args->srl) $module_srl = $args->srl;
|
||||
|
||||
// DocumentModel::getMonthlyArchivedList()를 이용하기 위한 변수 정리
|
||||
$obj->mid = $mid;
|
||||
$obj->module_srl = $module_srl;
|
||||
|
||||
// 선택된 모듈이 없으면 실행 취소
|
||||
if(!$obj->module_srl) return;
|
||||
|
||||
// 모듈의 정보를 구함
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($obj->module_srl);
|
||||
|
||||
// document 모듈의 model 객체를 받아서 getMonthlyArchivedList() method를 실행
|
||||
$oDocumentModel = &getModel('document');
|
||||
$output = $oDocumentModel->getMonthlyArchivedList($obj);
|
||||
|
||||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
$widget_info->module_name = $mid;
|
||||
$widget_info->mid = $mid;
|
||||
|
||||
$widget_info->mid = $widget_info->module_name = $module_info->mid;
|
||||
$widget_info->title = $args->title;
|
||||
$widget_info->archive_list = $output->data;
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
<description xml:lang="en">Это будет заголовком отчета.</description>
|
||||
<description xml:lang="zh-TW">顯示封存標題。</description>
|
||||
</var>
|
||||
<var id="mid">
|
||||
<var id="srl">
|
||||
<type>mid</type>
|
||||
<name xml:lang="ko">대상 모듈</name>
|
||||
<name xml:lang="zh-CN">对象模块</name>
|
||||
|
|
@ -84,4 +84,4 @@
|
|||
<description xml:lang="zh-TW">將所選擇的模組作為統計目標。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
|
|||
|
|
@ -15,32 +15,43 @@
|
|||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
// 위젯 자체적으로 설정한 변수들을 체크
|
||||
$pos = strpos($args->mid_list, ',');
|
||||
if($pos === false) $mid = $args->mid_list;
|
||||
else $mid = substr($args->mid_list, 0, $pos);
|
||||
if(!$mid) return;
|
||||
|
||||
// 대상 mid의 module_srl 을 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByMid($mid);
|
||||
|
||||
$module_srl = $module_info->module_srl;
|
||||
// 기존에 mid_list, mid를 쓸 때의 코드를 위하여 하위 호환 유지 코드
|
||||
if($args->mid_list) {
|
||||
$tmp_mid = explode(",",$args->mid_list);
|
||||
$mid = $tmp_mid[0];
|
||||
} elseif($args->mid) {
|
||||
$mid = $args->mid;
|
||||
}
|
||||
if($mid) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid);
|
||||
}
|
||||
|
||||
if($args->srl) $module_srl = $args->srl;
|
||||
debugPrint($args);
|
||||
|
||||
// DocumentModel::getMonthlyArchivedList()를 이용하기 위한 변수 정리
|
||||
$obj->module_srl = $module_srl;
|
||||
|
||||
// 선택된 모듈이 없으면 실행 취소
|
||||
if(!$obj->module_srl) return;
|
||||
|
||||
// 모듈의 정보를 구함
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($obj->module_srl);
|
||||
|
||||
// 대상 모듈의 카테고리 파일을 불러옴
|
||||
$oDocumentModel = &getModel('document');
|
||||
$category_list = $oDocumentModel->getCategoryList($module_srl);
|
||||
$category_list = $oDocumentModel->getCategoryList($obj->module_srl);
|
||||
|
||||
// 모듈의 정보를 구함
|
||||
$widget_info->module_info = $module_info;
|
||||
|
||||
$widget_info->mid = $mid;
|
||||
$widget_info->mid = $module_info->mid;
|
||||
$widget_info->document_category = $document_category;
|
||||
$widget_info->module_info = $module_info;
|
||||
$widget_info->category_list = $category_list;
|
||||
|
||||
// 전체 개수를 구함
|
||||
$total_count = $oDocumentModel->getDocumentCount($module_srl);
|
||||
$total_count = $oDocumentModel->getDocumentCount($obj->module_srl);
|
||||
$widget_info->total_document_count = $total_count;
|
||||
|
||||
Context::set('widget_info', $widget_info);
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@
|
|||
</author>
|
||||
|
||||
<extra_vars>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<var id="srl">
|
||||
<type>mid</type>
|
||||
<name xml:lang="ko">대상 모듈</name>
|
||||
<name xml:lang="es">대상 모듈</name>
|
||||
<name xml:lang="en">Target Module</name>
|
||||
|
|
@ -46,4 +46,4 @@
|
|||
<description xml:lang="zh-TW">將所選擇的模組作為目標。只能選擇一個模組。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
|
|||
|
|
@ -90,8 +90,8 @@
|
|||
<description xml:lang="ru">Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину)</description>
|
||||
<description xml:lang="zh-TW">可設置標題的字數。(0或留白為不限制)</description>
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<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>
|
||||
|
|
@ -108,4 +108,4 @@
|
|||
<description xml:lang="zh-TW">把所選擇之模組當作目標。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
|
|||
|
|
@ -26,16 +26,29 @@
|
|||
$subject_cut_size = $args->subject_cut_size;
|
||||
if(!$subject_cut_size) $subject_cut_size = 0;
|
||||
|
||||
// 대상 모듈
|
||||
if($args->mid_list) $mid_list = explode(",",$args->mid_list);
|
||||
else return;
|
||||
|
||||
// module_srl 대신 mid가 넘어왔을 경우는 직접 module_srl을 구해줌
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_srls = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
if(!is_array($module_srl)) $module_srl = array($module_srl);
|
||||
for($i=0;$i<count($module_srl);$i++) $modules[$module_srl[$i]] = null;
|
||||
|
||||
// 대상 모듈의 정보를 구함
|
||||
$module_list = $oModuleModel->getModulesInfo($module_srls);
|
||||
$module_list = $oModuleModel->getModulesInfo($module_srl);
|
||||
|
||||
// 각 모듈별로 먼저 정리 시작
|
||||
foreach($module_list as $module) {
|
||||
|
|
@ -74,9 +87,7 @@
|
|||
}
|
||||
|
||||
// 각 모듈별 전체글을 구함
|
||||
$total_documents_args->module_srl = $module->module_srl;
|
||||
$total_documents_args->module_srls = implode(',',$module_srls);
|
||||
|
||||
if($module_srl) $total_documents_args->module_srls = implode(',',$module_srl);
|
||||
$total_documents_output = executeQueryArray('widgets.forum.getTotalDocuments',$total_documents_args);
|
||||
if($total_documents_output->data) {
|
||||
foreach($total_documents_output->data as $val) {
|
||||
|
|
@ -85,8 +96,7 @@
|
|||
}
|
||||
|
||||
// 각 모듈별 댓글 수를 구함
|
||||
$total_comments_args->module_srl = $module->module_srl;
|
||||
$total_comments_args->module_srls = implode(',',$module_srls);
|
||||
$total_comments_args->module_srls = implode(',',$module_srl);
|
||||
|
||||
$total_comments_output = executeQueryArray('widgets.forum.getTotalComments',$total_comments_args);
|
||||
if($total_comments_output->data) {
|
||||
|
|
|
|||
|
|
@ -108,8 +108,8 @@
|
|||
</options>
|
||||
<description />
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -15,36 +15,47 @@
|
|||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
// 위젯 자체적으로 설정한 변수들을 체크
|
||||
// 제목
|
||||
$title = $args->title;
|
||||
|
||||
// 정렬 대상
|
||||
$order_target = $args->order_target;
|
||||
|
||||
// 정렬 순서
|
||||
$order_type = $args->order_type;
|
||||
|
||||
// 출력된 목록 수
|
||||
$list_count = (int)$args->list_count;
|
||||
if(!$list_count) $list_count = 5;
|
||||
if($args->mid_list) $mid_list = explode(",",$args->mid_list);
|
||||
else $mid_list = array();
|
||||
|
||||
// module_srl 대신 mid가 넘어왔을 경우는 직접 module_srl을 구해줌
|
||||
$oModuleModel = &getModel('module');
|
||||
if(!count($mid_list)) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
}
|
||||
}
|
||||
|
||||
// CommentModel::getCommentList()를 이용하기 위한 변수 정리
|
||||
$obj->mid = $mid_list;
|
||||
$obj->sort_index = $order_target;
|
||||
$obj->list_count = $list_count;
|
||||
|
||||
// 제목 길이 자르기
|
||||
$subject_cut_size = $args->subject_cut_size;
|
||||
if(!$subject_cut_size) $subject_cut_size = 0;
|
||||
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
$oModuleModel = &getModel('module');
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
|
||||
// CommentModel::getCommentList()를 이용하기 위한 변수 정리
|
||||
if(is_array($module_srl)) $obj->module_srl = implode(',',$module_srl);
|
||||
else $obj->module_srl = $module_srl;
|
||||
$obj->sort_index = $order_target;
|
||||
$obj->list_count = $list_count;
|
||||
|
||||
// comment 모듈의 model 객체를 받아서 getCommentList() method를 실행
|
||||
$oCommentModel = &getModel('comment');
|
||||
$output = $oCommentModel->getNewestCommentList($obj);
|
||||
|
|
|
|||
|
|
@ -196,8 +196,8 @@
|
|||
</options>
|
||||
<description />
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -30,10 +30,6 @@
|
|||
$list_count = (int)$args->list_count;
|
||||
if(!$list_count) $list_count = 5;
|
||||
|
||||
// 대상 모듈
|
||||
if($args->mid_list) $mid_list = explode(",",$args->mid_list);
|
||||
else $mid_list = array();
|
||||
|
||||
// 제목 길이 자르기
|
||||
$subject_cut_size = $args->subject_cut_size;
|
||||
if(!$subject_cut_size) $subject_cut_size = 0;
|
||||
|
|
@ -42,28 +38,30 @@
|
|||
$duration_new = $args->duration_new;
|
||||
if(!$duration_new) $duration_new = 12;
|
||||
|
||||
// module_srl 대신 mid가 넘어왔을 경우는 직접 module_srl을 구해줌
|
||||
$oModuleModel = &getModel('module');
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
$oModuleModel = &getModel('module');
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
|
||||
// DocumentModel::getDocumentList()를 이용하기 위한 변수 정리
|
||||
// newest_document 위젯에서 정의한 query문을 직접 사용
|
||||
if(is_array($module_srl)) $obj->module_srl = implode(',',$module_srl);
|
||||
else $obj->module_srl = $module_srl;
|
||||
$obj->sort_index = $order_target;
|
||||
$obj->order_type = $order_type=="desc"?"asc":"desc";
|
||||
$obj->list_count = $list_count;
|
||||
|
||||
$output = executeQueryArray('widgets.newest_document.getNewestDocuments', $obj);
|
||||
|
||||
// document 모듈의 model 객체를 받아서 결과를 객체화 시킴
|
||||
|
|
|
|||
|
|
@ -285,8 +285,8 @@
|
|||
<name xml:lang="zh-TW">隱藏</name>
|
||||
</options>
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<var id="module_srls">
|
||||
<type>module_srl_list</type>
|
||||
<name xml:lang="ko">대상 모듈</name>
|
||||
<name xml:lang="jp">モジュール</name>
|
||||
<name xml:lang="zh-CN">对象模块</name>
|
||||
|
|
|
|||
|
|
@ -52,23 +52,29 @@
|
|||
// 제목
|
||||
$widget_info->title = $args->title;
|
||||
|
||||
// 대상 모듈 정리
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
|
||||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
if(count($mid_list)==1) $widget_info->module_name = $mid_list[0];
|
||||
|
||||
// 변수 정리
|
||||
$obj->list_count = $widget_info->rows_list_count * $widget_info->cols_list_count;
|
||||
|
||||
// mid에 해당하는 module_srl을 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_srl_list = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
if(is_array($module_srl_list)) $obj->module_srls = implode(",",$module_srl_list);
|
||||
else $obj->module_srls = $module_srl_list;
|
||||
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
$oModuleModel = &getModel('module');
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
|
||||
$obj->module_srls = implode(",",$module_srl);
|
||||
$obj->direct_download = 'Y';
|
||||
$obj->isvalid = 'Y';
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
|
||||
// 정해진 모듈에서 문서별 파일 목록을 구함
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@
|
|||
|
||||
.ni_box .thumbnail_box td div { text-align:center; }
|
||||
.ni_box .thumbnail_box td.bottomBorder { border-bottom:1px dashed #EEEEEE; padding-bottom:5px; }
|
||||
.ni_box .thumbnail_box div strong { font-weight:bold; font-size:0.75em; color:#CCCCCC; }
|
||||
.ni_box .thumbnail_box div strong { font-weight:normal; font-size:0.9em; color:#ed2a32; }
|
||||
.ni_box .thumbnail_box div.author { color:#AAAAAA; }
|
||||
.ni_box .thumbnail_box div.author a { color:#AAAAAA; }
|
||||
.ni_box .thumbnail_box div.regdate { font-size:0.75em; color:#CCCCCC; margin-top:2px;}
|
||||
|
||||
.ni_box .thumbnail_box div.readAndVoted { color:#AAAAAA; font-size:0.75em; }
|
||||
.ni_box .thumbnail_box div.readAndVoted span.div_block { color:#DDDDDD; font-size:0.75em; }
|
||||
.ni_box .thumbnail_box div.readAndVoted strong { color:#FE6700; }
|
||||
.ni_box .thumbnail_box div.readAndVoted strong { font-weight:normal; color:#FE6700; }
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
<div>
|
||||
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->title_length)}</a>
|
||||
<!--@if($oDocument->getCommentCount())--><strong>[{$oDocument->getCommentCount()}]</strong><!--@end-->
|
||||
<!--@if($oDocument->getCommentCount())--><a href="{$oDocument->getPermanentUrl()}#comment"><strong>[{$oDocument->getCommentCount()}]</strong></a><!--@end-->
|
||||
</div>
|
||||
<!--@if($widget_info->display_author == 'Y')-->
|
||||
<div><span class="member_{$oDocument->get('member_srl')}">{$oDocument->getNickName()}</span></div>
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@
|
|||
.ni_box .thumbnail_box a:visited { color:#54564b; text-decoration:none; }
|
||||
|
||||
.ni_box .thumbnail_box td.bottomBorder { border-bottom:1px dashed #EEEEEE; padding-bottom:5px; }
|
||||
.ni_box .thumbnail_box div strong { font-weight:bold; font-size:0.9em; color:#ed2a32; }
|
||||
.ni_box .thumbnail_box div strong { font-weight:normal; font-size:0.9em; color:#ed2a32; }
|
||||
.ni_box .thumbnail_box div.author { color:#54564b; text-align:center;}
|
||||
.ni_box .thumbnail_box div.author span, .ni_box .thumbnail_box div.author div { color:#54564b; }
|
||||
.ni_box .thumbnail_box div.regdate { font-size:0.9em; color:#AAAAAA; margin-top:2px;text-align:center;}
|
||||
|
||||
.ni_box .thumbnail_box div.readAndVoted { color:#999999; font-size:0.9em; text-align:center;}
|
||||
.ni_box .thumbnail_box div.readAndVoted span.div_block { color:#333333; font-size:0.9em; }
|
||||
.ni_box .thumbnail_box div.readAndVoted strong { color:#FE6700; }
|
||||
.ni_box .thumbnail_box div.readAndVoted strong { font-weight:normal; color:#FE6700; }
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
<div class="title">
|
||||
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->title_length)}</a>
|
||||
<!--@if($oDocument->getCommentCount())--><strong>[{$oDocument->getCommentCount()}]</strong><!--@end-->
|
||||
<!--@if($oDocument->getCommentCount())--><a href="{$oDocument->getPermanentUrl()}#comment"><strong>[{$oDocument->getCommentCount()}]</strong></a><!--@end-->
|
||||
</div>
|
||||
<!--@if($widget_info->display_author == 'Y')-->
|
||||
<div class="author"><div class="member_{$oDocument->get('member_srl')}">{$oDocument->getNickName()}</div></div>
|
||||
|
|
|
|||
|
|
@ -62,8 +62,8 @@
|
|||
<description xml:lang="ru">Вы можете выбрать число списка трекбеков для отображения. (стандарт: 5)</description>
|
||||
<description xml:lang="zh-TW">可設置要顯示的列表數。(預設是5個)</description>
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<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>
|
||||
|
|
@ -80,4 +80,4 @@
|
|||
<description xml:lang="zh-TW">將所選擇的模組當作目標。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
|
|||
|
|
@ -15,25 +15,47 @@
|
|||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
// 위젯 자체적으로 설정한 변수들을 체크
|
||||
// 제목
|
||||
$title = $args->title;
|
||||
|
||||
// 정렬 대상
|
||||
$order_target = $args->order_target;
|
||||
if(!in_array($order_target, array('list_order','update_order'))) $order_target = 'list_order';
|
||||
|
||||
// 정렬 순서
|
||||
$order_type = $args->order_type;
|
||||
if(!in_array($order_type, array('asc','desc'))) $order_type = 'asc';
|
||||
|
||||
// 출력된 목록 수
|
||||
$list_count = (int)$args->list_count;
|
||||
if(!$list_count) $list_count = 5;
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
$oModuleModel = &getModel('module');
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
|
||||
// TrackbackModel::getTrackbackList()를 이용하기 위한 변수 정리
|
||||
$obj->mid = $mid_list;
|
||||
$obj->module_srl = $module_srl;
|
||||
$obj->sort_index = $order_target;
|
||||
$obj->list_count = $list_count;
|
||||
|
||||
// trackback 모듈의 model 객체를 받아서 getTrackbackList() method를 실행
|
||||
$oTrackbackModel = &getModel('trackback');
|
||||
$output = $oTrackbackModel->getNewestTrackbackList($obj);
|
||||
|
||||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
if(count($mid_list)==1) $widget_info->module_name = $mid_list[0];
|
||||
|
||||
$widget_info->title = $title;
|
||||
$widget_info->trackback_list = $output->data;
|
||||
|
|
|
|||
|
|
@ -146,8 +146,8 @@
|
|||
<name xml:lang="zh-TW">隱藏</name>
|
||||
</options>
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<var id="module_srls">
|
||||
<type>module_srl_list</type>
|
||||
<name xml:lang="ko">대상 모듈</name>
|
||||
<name xml:lang="jp">対象モジュール</name>
|
||||
<name xml:lang="en">Target Module</name>
|
||||
|
|
@ -164,4 +164,4 @@
|
|||
<description xml:lang="zh-TW">將所選擇的模組當作目標。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
|
|||
|
|
@ -14,24 +14,40 @@
|
|||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
// 위젯 자체적으로 설정한 변수들을 체크
|
||||
// 제목
|
||||
$title = $args->title;
|
||||
$order_target = 'download_count';
|
||||
$args->order_type = 'desc';
|
||||
|
||||
// 정렬 대상
|
||||
$order_target = $args->order_target;
|
||||
|
||||
// 정렬 순서
|
||||
$order_type = $args->order_type;
|
||||
if(!in_array($order_type, array('asc','desc'))) $order_type = 'asc';
|
||||
|
||||
// 출력된 목록 수
|
||||
$list_count = (int)$args->list_count;
|
||||
if(!$list_count) $list_count = 5;
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
$subject_cut_size = $args->subject_cut_size;
|
||||
if(!$subject_cut_size) $subject_cut_size = 0;
|
||||
|
||||
// module_srl 대신 mid가 넘어왔을 경우는 직접 module_srl을 구해줌
|
||||
if($mid_list) {
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
|
||||
// FileModel::getFileList()를 이용하기 위한 변수 정리
|
||||
$obj->s_module_srl = (is_array($module_srl)) ? implode(',',$module_srl) : "";
|
||||
$obj->s_module_srl = implode(',',$module_srl);
|
||||
$obj->direct_download = ($args->attach_type == "noimage") ? "N": (($args->attach_type == "image") ? "Y" : "");
|
||||
|
||||
if($args->without_image == "true") $obj->direct_download = "N";
|
||||
|
|
@ -58,9 +74,6 @@
|
|||
$file_list[$key] = $file;
|
||||
}
|
||||
}
|
||||
|
||||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
if(count($mid_list)==1) $widget_info->module_name = $mid_list[0];
|
||||
|
||||
$widget_info->title = $title;
|
||||
$widget_info->list_count = $list_count;
|
||||
|
|
|
|||
|
|
@ -322,8 +322,8 @@
|
|||
<name xml:lang="zh-TW">隱藏</name>
|
||||
</options>
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<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>
|
||||
|
|
@ -340,4 +340,4 @@
|
|||
<description xml:lang="zh-TW">將所選擇的模組當成顯示目標。</description>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
|
|||
|
|
@ -63,30 +63,42 @@
|
|||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
if(count($mid_list)==1) $widget_info->module_name = $mid_list[0];
|
||||
|
||||
// mid에 해당하는 module_srl을 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$oDocumentModel = &getModel('document');
|
||||
$module_srl_list = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
if(is_array($module_srl_list)) $obj->module_srls = implode(",",$module_srl_list);
|
||||
else $obj->module_srls = $module_srl_list;
|
||||
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
$oModuleModel = &getModel('module');
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
|
||||
$obj->module_srls = implode(',',$module_srl);
|
||||
|
||||
// 모듈 목록을 구함
|
||||
$tab_list = $oModuleModel->getMidList($obj);
|
||||
if(!$tab_list || !count($tab_list)) return;
|
||||
$module_list = $oModuleModel->getMidList($obj);
|
||||
if(!$module_list || !count($module_list)) return;
|
||||
foreach($module_list as $key => $val) $mid_module_list[$val->module_srl] = $key;
|
||||
|
||||
// 최근글이 등록된 탭의 순서를 정하기 위한 변수
|
||||
$newest_tab = array();
|
||||
for($i=0;$i<count($module_srl);$i++) $tab_list[$mid_module_list[$module_srl[$i]]] = $module_list[$mid_module_list[$module_srl[$i]]];
|
||||
|
||||
// 각 모듈에 해당하는 문서들을 구함
|
||||
$obj = null;
|
||||
$obj->list_count = $widget_info->list_count;
|
||||
$obj->sort_index = $widget_info->order_target;
|
||||
$obj->order_type = $widget_info->order_type=="desc"?"asc":"desc";
|
||||
foreach($tab_list as $key => $value) {
|
||||
$mid = $key;
|
||||
$module_srl = $value->module_srl;
|
||||
$browser_title = $value->browser_title;
|
||||
|
||||
foreach($tab_list as $mid => $module) {
|
||||
$obj->module_srl = $module_srl;
|
||||
$output = executeQueryArray("widgets.tab_newest_document.getNewestDocuments", $obj);
|
||||
unset($data);
|
||||
|
|
@ -96,24 +108,15 @@
|
|||
$oDocument = null;
|
||||
$oDocument = $oDocumentModel->getDocument();
|
||||
$oDocument->setAttribute($v);
|
||||
$data[$k] = $oDocument;
|
||||
if(!$newest_tab[$key]) $newest_tab[$key] = $oDocument->get('last_update');
|
||||
$tab_list[$mid]->document_list[] = $oDocument;
|
||||
}
|
||||
$tab_list[$key]->document_list = $data;
|
||||
} else {
|
||||
unset($tab_list[$key]);
|
||||
$tab_list[$mid]->document_list = array();
|
||||
}
|
||||
}
|
||||
|
||||
if(count($newest_tab)) {
|
||||
arsort($newest_tab);
|
||||
foreach($newest_tab as $key => $val) {
|
||||
$sorted_tab_list[$key] = $tab_list[$key];
|
||||
}
|
||||
} else $sorted_tab_list = $tab_list;
|
||||
|
||||
Context::set('widget_info', $widget_info);
|
||||
Context::set('tab_list', $sorted_tab_list);
|
||||
Context::set('tab_list', $tab_list);
|
||||
|
||||
// 템플릿의 스킨 경로를 지정 (skin, colorset에 따른 값을 설정)
|
||||
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
|
||||
|
|
|
|||
|
|
@ -62,8 +62,8 @@
|
|||
<description xml:lang="ru">Вы можете сконфигурировать число тегов для показа. (стандарт: 20)</description>
|
||||
<description xml:lang="zh-TW">可設置要顯示的標籤數。(預設是 20個)</description>
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -15,13 +15,33 @@
|
|||
* 결과를 만든후 print가 아니라 return 해주어야 한다
|
||||
**/
|
||||
function proc($args) {
|
||||
// 위젯 자체적으로 설정한 변수들을 체크
|
||||
// 제목
|
||||
$title = $args->title;
|
||||
|
||||
// 출력된 목록 수
|
||||
$list_count = (int)$args->list_count;
|
||||
if(!$list_count) $list_count = 20;
|
||||
if(!$list_count) $list_count = 5;
|
||||
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
$oModuleModel = &getModel('module');
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
|
||||
// TagModel::getTagList()를 이용하기 위한 변수 정리
|
||||
$obj->mid = $args->mid_list;
|
||||
$obj->module_srl = $args->module_srl;
|
||||
$obj->list_count = $list_count;
|
||||
|
||||
// tag 모듈의 model 객체를 받아서 getTagList() method를 실행
|
||||
|
|
@ -29,11 +49,14 @@
|
|||
$output = $oTagModel->getTagList($obj);
|
||||
|
||||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
if(preg_match('/^([0-9a-z\_]+)$/i', $args->mid_list)) $widget_info->mid = $widget_info->module_name = $args->mid_list;
|
||||
if(count($module_srl)==1) {
|
||||
$srl = $module_srl[0];
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($srl);
|
||||
$widget_info->mid = $widget_info->module_name = $module_info->mid;
|
||||
}
|
||||
$widget_info->title = $title;
|
||||
|
||||
if(count($output->data)) {
|
||||
|
||||
$tags = array();
|
||||
$max = 0;
|
||||
$min = 99999999;
|
||||
|
|
|
|||
|
|
@ -398,8 +398,8 @@
|
|||
<name xml:lang="zh-TW">隱藏</name>
|
||||
</options>
|
||||
</var>
|
||||
<var id="mid_list">
|
||||
<type>mid_list</type>
|
||||
<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>
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 43 B |
Binary file not shown.
|
Before Width: | Height: | Size: 44 B |
|
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 139 B |
|
|
@ -1,7 +1,7 @@
|
|||
<!--// 설정된 컬러셋의 종류에 따라서 css파일을 import 합니다 -->
|
||||
|
||||
<!--@if($colorset=="normal"||!$colorset)-->
|
||||
<!--%import("css/normal.css")-->
|
||||
<!--%import("normal.css")-->
|
||||
<!--@end-->
|
||||
|
||||
<div class="nw_box">
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
<span class="title">
|
||||
<a href="{$oDocument->getPermanentUrl()}#{$oDocument->getCommentCount()}">{$oDocument->getTitle($widget_info->subject_cut_size)}</a>
|
||||
<!--@if($oDocument->getCommentCount())--><strong>[{$oDocument->getCommentCount()}]</strong><!--@end-->
|
||||
<!--@if($oDocument->getCommentCount())--> <a href="{$oDocument->getPermanentUrl()}#comment"><strong>[{$oDocument->getCommentCount()}]</strong></a><!--@end-->
|
||||
</span>
|
||||
|
||||
<!--@if($widget_info->display_regdate == 'Y')-->
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
.nw_box { padding-bottom:5px; overflow:hidden; }
|
||||
.nw_box h2 { margin:0; font-size:1em; display:block; height:21px; padding:9px 0 0 9px; margin-bottom:5px; color:#000000; background:url(../images/normal/lineNotice.gif) no-repeat left bottom;}
|
||||
.nw_box h2 { margin:0; font-size:1em; display:block; height:21px; padding:9px 0 0 9px; margin-bottom:5px; color:#000000; background:url(./lineNotice.gif) no-repeat left bottom;}
|
||||
|
||||
.nw_box a.more { text-decoration:none;}
|
||||
.nw_box a.more:hover { text-decoration:underline;}
|
||||
|
||||
.nw_box .listTable { width:100%; table-layout:fixed; border:none;}
|
||||
|
||||
.nw_box .listTable tr td { border-bottom:1px dotted #DEDEDE; padding:0;margin:0; vertical-align:top; overflow:hidden; }
|
||||
.nw_box .listTable tr td { padding:0;margin:0; vertical-align:top; overflow:hidden; }
|
||||
|
||||
.nw_box .thumbnailBox { width:100%; margin:0;padding:0;border:none; table-layout:fixed; }
|
||||
.nw_box .thumbnailBox tr td { border-bottom:none; padding:none; margin:none; }
|
||||
|
|
@ -65,17 +65,25 @@
|
|||
// 제목
|
||||
$widget_info->title = $args->title;
|
||||
|
||||
// 대상 모듈 정리
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
|
||||
if($args->mid_list) {
|
||||
$mid_list = explode(",",$args->mid_list);
|
||||
$oModuleModel = &getModel('module');
|
||||
if(count($mid_list)) {
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
} else {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if($site_module_info) {
|
||||
$margs->site_srl = $site_module_info->site_srl;
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getMidList($margs);
|
||||
if(count($output)) $mid_list = array_keys($output);
|
||||
$module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
}
|
||||
}
|
||||
} else $module_srl = explode(',',$args->module_srls);
|
||||
|
||||
// 템플릿 파일에서 사용할 변수들을 세팅
|
||||
if(count($mid_list)==1) $widget_info->module_name = $mid_list[0];
|
||||
|
||||
// mid에 해당하는 module_srl을 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_srl_list = $oModuleModel->getModuleSrlByMid($mid_list);
|
||||
if(is_array($module_srl_list)) $obj->module_srl = implode(",",$module_srl_list);
|
||||
else $obj->module_srl = $module_srl_list;
|
||||
$obj->module_srl = implode(",",$module_srl);
|
||||
$obj->sort_index = $widget_info->order_target;
|
||||
$obj->order_type = $widget_info->order_type=="desc"?"asc":"desc";
|
||||
$obj->list_count = $widget_info->rows_list_count * $widget_info->cols_list_count;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue