From 906bb46d19bc5c400aa68e1e4e048ce39d4d0911 Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 9 Jan 2009 09:37:43 +0000 Subject: [PATCH] =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=84=A0=ED=83=9D?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80=20(=EC=9C=84=EC=A0=AF?= =?UTF-8?q?=EC=9D=98=20=EB=8B=A8=EC=9D=BC/=EB=8B=A4=EC=88=98=20=EC=9C=84?= =?UTF-8?q?=EC=A0=AF=20=EC=84=A0=ED=83=9D,=20=EC=B2=B5=ED=81=AC=EB=90=9C?= =?UTF-8?q?=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20=EC=9D=B4=EB=8F=99/=EB=B3=B5?= =?UTF-8?q?=EC=82=AC=EC=8B=9C)=20=EC=82=AC=EC=9A=A9=EB=90=98=EB=A9=B0=20vi?= =?UTF-8?q?rtualSite=EC=99=B8=EC=9D=98=20=EC=82=AC=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=EB=93=A4=EB=8F=84=20=EA=B2=80=EC=83=89=ED=9B=84=20=EC=84=A0?= =?UTF-8?q?=ED=83=9D=EC=9D=B4=20=EA=B0=80=EB=8A=A5=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5298 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/lang/en.lang.php | 2 + common/lang/es.lang.php | 2 + common/lang/fr.lang.php | 2 + common/lang/ge.lang.php | 2 + common/lang/jp.lang.php | 2 + common/lang/ko.lang.php | 2 + common/lang/ru.lang.php | 2 + common/lang/zh-CN.lang.php | 2 + common/lang/zh-TW.lang.php | 2 + config/config.inc.php | 2 +- modules/document/document.admin.view.php | 52 ------- modules/document/tpl/checked_list.html | 16 +- modules/document/tpl/js/document_admin.js | 13 +- modules/homepage/lang/en.lang.php | 2 - modules/homepage/lang/jp.lang.php | 3 - modules/homepage/lang/ko.lang.php | 3 - modules/homepage/lang/zh-CN.lang.php | 3 - modules/homepage/lang/zh-TW.lang.php | 2 - modules/module/conf/module.xml | 1 + modules/module/lang/en.lang.php | 3 + modules/module/lang/es.lang.php | 3 + modules/module/lang/fr.lang.php | 3 + modules/module/lang/jp.lang.php | 3 + modules/module/lang/ko.lang.php | 4 +- modules/module/lang/ru.lang.php | 3 + modules/module/lang/zh-CN.lang.php | 3 + modules/module/lang/zh-TW.lang.php | 3 + modules/module/module.admin.view.php | 77 ++++++++++ modules/module/module.class.php | 15 ++ modules/module/queries/getDefaultModules.xml | 23 +++ modules/module/queries/getSiteCount.xml | 8 + modules/module/queries/getSiteModules.xml | 23 +++ modules/module/tpl/js/module_admin.js | 14 ++ modules/module/tpl/module_selector.html | 80 ++++++++++ modules/widget/conf/module.xml | 2 + modules/widget/lang/en.lang.php | 1 + modules/widget/lang/es.lang.php | 1 + modules/widget/lang/fr.lang.php | 1 + modules/widget/lang/jp.lang.php | 1 + modules/widget/lang/ko.lang.php | 1 + modules/widget/lang/ru.lang.php | 1 + modules/widget/lang/zh-CN.lang.php | 1 + modules/widget/lang/zh-TW.lang.php | 1 + modules/widget/tpl/css/widget.css | 4 +- modules/widget/tpl/js/widget_admin.js | 139 ++++++++++++++++++ modules/widget/tpl/widget_generate_code.html | 114 +------------- .../tpl/widget_generate_code.include.html | 116 +++++++++++++++ .../tpl/widget_generate_code_in_page.html | 123 +--------------- modules/widget/widget.admin.model.php | 37 +++++ modules/widget/widget.class.php | 16 ++ modules/widget/widget.controller.php | 95 ++++++------ modules/widget/widget.view.php | 2 +- widgets/archive_list/archive_list.class.php | 22 ++- widgets/archive_list/conf/info.xml | 4 +- widgets/category/category.class.php | 39 +++-- widgets/category/conf/info.xml | 6 +- widgets/forum/conf/info.xml | 6 +- widgets/forum/forum.class.php | 34 +++-- widgets/newest_comment/conf/info.xml | 4 +- .../newest_comment/newest_comment.class.php | 51 ++++--- widgets/newest_document/conf/info.xml | 4 +- .../newest_document/newest_document.class.php | 34 ++--- widgets/newest_images/conf/info.xml | 4 +- widgets/newest_images/newest_images.class.php | 34 +++-- .../skins/default/css/normal.css | 4 +- widgets/newest_images/skins/default/list.html | 2 +- .../skins/xe_official/css/normal.css | 4 +- .../newest_images/skins/xe_official/list.html | 2 +- widgets/newest_trackback/conf/info.xml | 6 +- .../newest_trackback.class.php | 34 ++++- widgets/rank_download/conf/info.xml | 6 +- widgets/rank_download/rank_download.class.php | 41 ++++-- widgets/tab_newest_document/conf/info.xml | 6 +- .../tab_newest_document.class.php | 53 +++---- widgets/tag_list/conf/info.xml | 4 +- widgets/tag_list/tag_list.class.php | 33 ++++- widgets/webzine/conf/info.xml | 4 +- .../skins/xe_official/images/blank.gif | Bin 43 -> 0 bytes .../xe_official/images/normal/bulletD0.gif | Bin 44 -> 0 bytes .../{images/normal => }/lineNotice.gif | Bin widgets/webzine/skins/xe_official/list.html | 4 +- .../skins/xe_official/{css => }/normal.css | 4 +- widgets/webzine/webzine.class.php | 28 ++-- 83 files changed, 970 insertions(+), 543 deletions(-) create mode 100644 modules/module/queries/getDefaultModules.xml create mode 100644 modules/module/queries/getSiteCount.xml create mode 100644 modules/module/queries/getSiteModules.xml create mode 100644 modules/module/tpl/module_selector.html create mode 100644 modules/widget/tpl/widget_generate_code.include.html create mode 100644 modules/widget/widget.admin.model.php delete mode 100644 widgets/webzine/skins/xe_official/images/blank.gif delete mode 100644 widgets/webzine/skins/xe_official/images/normal/bulletD0.gif rename widgets/webzine/skins/xe_official/{images/normal => }/lineNotice.gif (100%) rename widgets/webzine/skins/xe_official/{css => }/normal.css (90%) diff --git a/common/lang/en.lang.php b/common/lang/en.lang.php index f2257b8a1..9ddf9e5d9 100644 --- a/common/lang/en.lang.php +++ b/common/lang/en.lang.php @@ -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'; diff --git a/common/lang/es.lang.php b/common/lang/es.lang.php index dc49ef3bb..2caeec1ce 100644 --- a/common/lang/es.lang.php +++ b/common/lang/es.lang.php @@ -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'; diff --git a/common/lang/fr.lang.php b/common/lang/fr.lang.php index 769047ae9..ae45d799f 100644 --- a/common/lang/fr.lang.php +++ b/common/lang/fr.lang.php @@ -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'; diff --git a/common/lang/ge.lang.php b/common/lang/ge.lang.php index c5fa00e68..5d1340acc 100644 --- a/common/lang/ge.lang.php +++ b/common/lang/ge.lang.php @@ -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'; diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index c1c44352d..bffbb3997 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -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 = 'ブログ名'; diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index 3e1e254fc..6f8552625 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -126,6 +126,8 @@ $lang->colorset = '컬러셋'; $lang->extra_vars = '확장변수'; + $lang->domain = "도메인"; + $lang->url = "URL"; $lang->document_url = '게시글 주소'; $lang->trackback_url = '엮인글 주소'; $lang->blog_name = '블로그이름'; diff --git a/common/lang/ru.lang.php b/common/lang/ru.lang.php index b93002a45..eaee41067 100644 --- a/common/lang/ru.lang.php +++ b/common/lang/ru.lang.php @@ -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 = 'Название блога'; diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php index 3af0ffaf1..4f8d9da5f 100644 --- a/common/lang/zh-CN.lang.php +++ b/common/lang/zh-CN.lang.php @@ -126,6 +126,8 @@ $lang->colorset = '颜色设定'; $lang->extra_vars = '扩展变数'; + $lang->domain = "域名"; + $lang->url = "URL"; $lang->document_url = '文章地址'; $lang->trackback_url = '引用地址'; $lang->blog_name = '博客名称'; diff --git a/common/lang/zh-TW.lang.php b/common/lang/zh-TW.lang.php index 22ab9c775..42e567126 100644 --- a/common/lang/zh-TW.lang.php +++ b/common/lang/zh-TW.lang.php @@ -126,6 +126,8 @@ $lang->colorset = '顏色設定'; $lang->extra_vars = '延伸變數'; + $lang->domain = "域名"; + $lang->url = "網址"; $lang->document_url = '連結網址'; $lang->trackback_url = '引用'; $lang->blog_name = '部落格名稱'; diff --git a/config/config.inc.php b/config/config.inc.php index 2cdc0b252..4553c6e24 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -23,7 +23,7 @@ * 2 : 1 + DB 쿼리 * 3 : 모든 로그 **/ - define('__DEBUG__', 0); + define('__DEBUG__', 1); /** * @brief 디버그 메세지의 출력 장소 diff --git a/modules/document/document.admin.view.php b/modules/document/document.admin.view.php index 71c66e3dd..0bc5357ee 100644 --- a/modules/document/document.admin.view.php +++ b/modules/document/document.admin.view.php @@ -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); diff --git a/modules/document/tpl/checked_list.html b/modules/document/tpl/checked_list.html index 3d3699b4c..8e53a9b2d 100644 --- a/modules/document/tpl/checked_list.html +++ b/modules/document/tpl/checked_list.html @@ -25,22 +25,12 @@ - +
{$lang->move_target_module}
- + + {$lang->cmd_select} diff --git a/modules/document/tpl/js/document_admin.js b/modules/document/tpl/js/document_admin.js index 442f0a5ce..59f2ccd5f 100644 --- a/modules/document/tpl/js/document_admin.js +++ b/modules/document/tpl/js/document_admin.js @@ -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); +} diff --git a/modules/homepage/lang/en.lang.php b/modules/homepage/lang/en.lang.php index 7789ffe0b..8b5e92185 100644 --- a/modules/homepage/lang/en.lang.php +++ b/modules/homepage/lang/en.lang.php @@ -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"; diff --git a/modules/homepage/lang/jp.lang.php b/modules/homepage/lang/jp.lang.php index 844af4148..2012ae4b5 100644 --- a/modules/homepage/lang/jp.lang.php +++ b/modules/homepage/lang/jp.lang.php @@ -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 = "新しいメニュー追加"; diff --git a/modules/homepage/lang/ko.lang.php b/modules/homepage/lang/ko.lang.php index fded754af..0f8262853 100644 --- a/modules/homepage/lang/ko.lang.php +++ b/modules/homepage/lang/ko.lang.php @@ -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 = "새로운 메뉴 추가"; diff --git a/modules/homepage/lang/zh-CN.lang.php b/modules/homepage/lang/zh-CN.lang.php index 8be0ce69b..7d0ed9217 100644 --- a/modules/homepage/lang/zh-CN.lang.php +++ b/modules/homepage/lang/zh-CN.lang.php @@ -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 = "添加新菜单"; diff --git a/modules/homepage/lang/zh-TW.lang.php b/modules/homepage/lang/zh-TW.lang.php index acf2dbd42..22cce3ed0 100644 --- a/modules/homepage/lang/zh-TW.lang.php +++ b/modules/homepage/lang/zh-TW.lang.php @@ -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 = "網站管理者"; diff --git a/modules/module/conf/module.xml b/modules/module/conf/module.xml index 7208be473..51479dbfe 100644 --- a/modules/module/conf/module.xml +++ b/modules/module/conf/module.xml @@ -8,6 +8,7 @@ + diff --git a/modules/module/lang/en.lang.php b/modules/module/lang/en.lang.php index 145475feb..63f45334a 100644 --- a/modules/module/lang/en.lang.php +++ b/modules/module/lang/en.lang.php @@ -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.
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등)의 도메인을 입력하신 후 검색하세요.
가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)"; ?> diff --git a/modules/module/lang/es.lang.php b/modules/module/lang/es.lang.php index 530eefcdb..0fcf24fb1 100644 --- a/modules/module/lang/es.lang.php +++ b/modules/module/lang/es.lang.php @@ -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> 사이에 들어가는 코드를 직접 입력할 수 있습니다.
<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등)의 도메인을 입력하신 후 검색하세요.
가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)"; ?> diff --git a/modules/module/lang/fr.lang.php b/modules/module/lang/fr.lang.php index 2510dfff3..f0c3c5d0f 100644 --- a/modules/module/lang/fr.lang.php +++ b/modules/module/lang/fr.lang.php @@ -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>.
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등)의 도메인을 입력하신 후 검색하세요.
가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)"; ?> diff --git a/modules/module/lang/jp.lang.php b/modules/module/lang/jp.lang.php index ba35905bb..62f78802c 100644 --- a/modules/module/lang/jp.lang.php +++ b/modules/module/lang/jp.lang.php @@ -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>の間に入れるコードを直接入力できます。
<script、<styleまたは<metaタグなどが利用できます"; @@ -65,4 +67,5 @@ $lang->about_module = "XEは、基本ライブラリの他は、すべてモジュールで構成されています。モジュール管理用のモジュールはインストールされたすべてを表示し、管理できるようにします。"; $lang->about_extra_vars_default_value = '多重・単一選択などのデフォルト値が、複数必要な場合は、「, (コンマ)」で区切って追加することができます。'; + $lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.
가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)"; ?> diff --git a/modules/module/lang/ko.lang.php b/modules/module/lang/ko.lang.php index 61c765539..43d16c9d9 100644 --- a/modules/module/lang/ko.lang.php +++ b/modules/module/lang/ko.lang.php @@ -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> 사이에 들어가는 코드를 직접 입력할 수 있습니다.
<script, <style 또는 <meta 태그등을 이용하실 수 있습니다"; @@ -63,6 +65,6 @@ $lang->about_admin_id = '해당 모듈에 대해 최고 권한을 가지는 관리자를 지정할 수 있습니다.
,(콤마)로 다수 아이디 지정이 가능합니다. (관리자페이지 접근은 불가능)'; $lang->about_grant = '특정 권한의 대상을 모두 해제하시면 로그인하지 않은 회원까지 권한을 가질 수 있습니다'; $lang->about_module = "XE는 기본 라이브러리를 제외한 나머지는 모두 모듈로 구성되어 있습니다.\n모듈관리 모듈은 설치된 모든 모듈을 보여주고 관리를 도와줍니다."; - $lang->about_extra_vars_default_value = '다중/단일 선택등 기본값이 여러개가 필요한 경우 , (콤마)로 연결하시면 됩니다'; + $lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.
가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)"; ?> diff --git a/modules/module/lang/ru.lang.php b/modules/module/lang/ru.lang.php index e66dc4757..e04148d83 100644 --- a/modules/module/lang/ru.lang.php +++ b/modules/module/lang/ru.lang.php @@ -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등)의 도메인을 입력하신 후 검색하세요.
가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)"; ?> diff --git a/modules/module/lang/zh-CN.lang.php b/modules/module/lang/zh-CN.lang.php index 66c1bbaea..5ffaaffdc 100644 --- a/modules/module/lang/zh-CN.lang.php +++ b/modules/module/lang/zh-CN.lang.php @@ -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>区的代码。
可使用<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등)의 도메인을 입력하신 후 검색하세요.
가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)"; ?> diff --git a/modules/module/lang/zh-TW.lang.php b/modules/module/lang/zh-TW.lang.php index 7f724b1fd..217d70a78 100644 --- a/modules/module/lang/zh-TW.lang.php +++ b/modules/module/lang/zh-TW.lang.php @@ -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>之間。
可使用<script>, <style> 或 <meta> 等標籤。"; @@ -65,4 +67,5 @@ $lang->about_module = "除基本函式庫以外XE全部由模組組成。\n模組管理中列出所有已安裝的模組,因此易於管理。"; $lang->about_extra_vars_default_value = '當復選或單選的預設值需要很多個時,用 (,) 區隔。'; + $lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.
가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)"; ?> diff --git a/modules/module/module.admin.view.php b/modules/module/module.admin.view.php index 59bebf5ce..5d24a96c1 100644 --- a/modules/module/module.admin.view.php +++ b/modules/module/module.admin.view.php @@ -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'); + } + } ?> diff --git a/modules/module/module.class.php b/modules/module/module.class.php index 0a2c9dbfb..6e00c5360 100644 --- a/modules/module/module.class.php +++ b/modules/module/module.class.php @@ -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 캐시 파일 재생성 **/ diff --git a/modules/module/queries/getDefaultModules.xml b/modules/module/queries/getDefaultModules.xml new file mode 100644 index 000000000..5c7843e0a --- /dev/null +++ b/modules/module/queries/getDefaultModules.xml @@ -0,0 +1,23 @@ + + + +
+ + + + + + + + + + + + + + + + + + + diff --git a/modules/module/queries/getSiteCount.xml b/modules/module/queries/getSiteCount.xml new file mode 100644 index 000000000..3a4de8838 --- /dev/null +++ b/modules/module/queries/getSiteCount.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/module/queries/getSiteModules.xml b/modules/module/queries/getSiteModules.xml new file mode 100644 index 000000000..9d34a6a12 --- /dev/null +++ b/modules/module/queries/getSiteModules.xml @@ -0,0 +1,23 @@ + + +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/modules/module/tpl/js/module_admin.js b/modules/module/tpl/js/module_admin.js index 8c4143694..3caa8bb56 100644 --- a/modules/module/tpl/js/module_admin.js +++ b/modules/module/tpl/js/module_admin.js @@ -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(); + } +} diff --git a/modules/module/tpl/module_selector.html b/modules/module/tpl/module_selector.html new file mode 100644 index 000000000..36b50a928 --- /dev/null +++ b/modules/module/tpl/module_selector.html @@ -0,0 +1,80 @@ + + +
+

{$lang->module_selector}

+
+ +
+
+ + + + +
+ + + + + + + + + + + + +
{$lang->virtual_site}
+ +

{$lang->about_search_virtual_site}

+
{$lang->module}
+ +
+ + + + + + + + + + + + + + + {@ $_idx =0; } + + + + + + + {@ $_idx ++; } + + + + + + + + + + + + + + + +
{$lang->module_category}
{$lang->mid}
{$lang->browser_title}
{$type=='single'?$lang->cmd_select:$lang->cmd_insert}
{$key}
{$k}{$v->browser_title}{$type=='single'?$lang->cmd_select:$lang->cmd_insert}
{$k}{$v->browser_title}{$type=='single'?$lang->cmd_select:$lang->cmd_insert}
+ + + +
+ +
+ diff --git a/modules/widget/conf/module.xml b/modules/widget/conf/module.xml index c19c308aa..7c23c8497 100644 --- a/modules/widget/conf/module.xml +++ b/modules/widget/conf/module.xml @@ -8,6 +8,8 @@ + + diff --git a/modules/widget/lang/en.lang.php b/modules/widget/lang/en.lang.php index 900d9b0aa..22a2dc1ee 100644 --- a/modules/widget/lang/en.lang.php +++ b/modules/widget/lang/en.lang.php @@ -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.'; diff --git a/modules/widget/lang/es.lang.php b/modules/widget/lang/es.lang.php index 59266b4b4..a7fc3bab1 100644 --- a/modules/widget/lang/es.lang.php +++ b/modules/widget/lang/es.lang.php @@ -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.'; diff --git a/modules/widget/lang/fr.lang.php b/modules/widget/lang/fr.lang.php index a62521061..873851022 100644 --- a/modules/widget/lang/fr.lang.php +++ b/modules/widget/lang/fr.lang.php @@ -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.'; diff --git a/modules/widget/lang/jp.lang.php b/modules/widget/lang/jp.lang.php index 763ca9f5d..c014bcc24 100644 --- a/modules/widget/lang/jp.lang.php +++ b/modules/widget/lang/jp.lang.php @@ -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 = '下に必要な値を入力した後、追加ボタンをクリックするとページ内にウィジェットが挿入されます。'; diff --git a/modules/widget/lang/ko.lang.php b/modules/widget/lang/ko.lang.php index 17754491f..ec4132c62 100644 --- a/modules/widget/lang/ko.lang.php +++ b/modules/widget/lang/ko.lang.php @@ -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 = '아래 필요한 값들을 입력하신 후 추가 버튼을 누르시면 페이지 내에 위젯이 삽입이 됩니다'; diff --git a/modules/widget/lang/ru.lang.php b/modules/widget/lang/ru.lang.php index e085bf852..04bf6ac0f 100644 --- a/modules/widget/lang/ru.lang.php +++ b/modules/widget/lang/ru.lang.php @@ -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 = 'После ввода требуемых значений, нажмите пнопку [Добавить], чтобы вставить код виджета в страницу.'; diff --git a/modules/widget/lang/zh-CN.lang.php b/modules/widget/lang/zh-CN.lang.php index 4e3e0024b..631a52dee 100644 --- a/modules/widget/lang/zh-CN.lang.php +++ b/modules/widget/lang/zh-CN.lang.php @@ -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 = '输入下列各项必要值后,按『生成代码』按钮,即可把控件插入到页面当中。'; diff --git a/modules/widget/lang/zh-TW.lang.php b/modules/widget/lang/zh-TW.lang.php index 4becb7ce7..8679057f0 100644 --- a/modules/widget/lang/zh-TW.lang.php +++ b/modules/widget/lang/zh-TW.lang.php @@ -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 = '輸入下列各項必要資料後,按『建立原始碼』按鈕,即可把控件插入到頁面當中。'; diff --git a/modules/widget/tpl/css/widget.css b/modules/widget/tpl/css/widget.css index 10a7e3137..af7a87fc1 100644 --- a/modules/widget/tpl/css/widget.css +++ b/modules/widget/tpl/css/widget.css @@ -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;} diff --git a/modules/widget/tpl/js/widget_admin.js b/modules/widget/tpl/js/widget_admin.js index aba022d46..5f8a51a85 100644 --- a/modules/widget/tpl/js/widget_admin.js +++ b/modules/widget/tpl/js/widget_admin.js @@ -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;i8) 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
- - - - - - - - - - - - - - - - - - - - {@$group = $var->group} -
{nl2br($lang->about_widget_code)}
{$lang->widget}
{$widget_info->title} ver {$widget_info->version}
{$lang->skin}
- - - -
{$lang->widget_cache}
- {$lang->unit_min} -

{$lang->about_widget_cache}

-
- - - - - - - - - - - -
{$group}
- {$var->name} - - - -
- - - - - - - - - - - - - -
{$modules->title}
- -
{$lang->none_category}
- - - -
- - -
- - - - - - - - - -

{nl2br($var->description)}

-
+ {@ $_caption = $lang->about_widget_code} + - - @@ -130,8 +24,8 @@ diff --git a/modules/widget/tpl/widget_generate_code.include.html b/modules/widget/tpl/widget_generate_code.include.html new file mode 100644 index 000000000..693ced25a --- /dev/null +++ b/modules/widget/tpl/widget_generate_code.include.html @@ -0,0 +1,116 @@ +
{$lang->widget_code}
+ + + + + + + + + + + + + + + + + + + {@$group = $var->group} +
{nl2br($_caption)}
{$lang->widget}
+ {$widget_info->title} ver {$widget_info->version} + +
{nl2br(trim($widget_info->author->description))}
+ +
{$lang->skin}
+ + + +
{$lang->widget_cache}
+ {$lang->unit_min} +

{$lang->about_widget_cache}

+
+ + + + + + + + + +
{$group}
+
+ {$var->name} + + + +
+
+ + + + + + + + + + + + + +
{$modules->title}
+ +
{$lang->none_category}
+ + + +
+ + +
+ + + + + + + + + + + {$lang->cmd_select} + + +

{nl2br($var->description)}

+
diff --git a/modules/widget/tpl/widget_generate_code_in_page.html b/modules/widget/tpl/widget_generate_code_in_page.html index 2b513ab1b..576e0f993 100644 --- a/modules/widget/tpl/widget_generate_code_in_page.html +++ b/modules/widget/tpl/widget_generate_code_in_page.html @@ -3,6 +3,10 @@ + +
@@ -18,122 +22,11 @@
- - - - - - - - - - - - - - - - - - - - {@$group = $var->group} -
{nl2br($lang->about_widget_code_in_page)}
{$lang->widget}
- {$widget_info->title} ver {$widget_info->version} - -
{nl2br(trim($widget_info->author->description))}
- -
{$lang->skin}
- - - -
{$lang->widget_cache}
- {$lang->unit_min} -

{$lang->about_widget_cache}

-
- - - - - - - - - -
{$group}
- {$var->name} - - - -
- - - - - - - - - - - - - -
{$modules->title}
- -
{$lang->none_category}
- - - -
- - -
- - - - - - - - -

{nl2br($var->description)}

-
- + {@ $_caption = $lang->about_widget_code_in_page} +
- - diff --git a/modules/widget/widget.admin.model.php b/modules/widget/widget.admin.model.php new file mode 100644 index 000000000..1a2635940 --- /dev/null +++ b/modules/widget/widget.admin.model.php @@ -0,0 +1,37 @@ +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;$iadd('id', Context::get('id')); + $this->add('module_list', $module_list); + } + } +?> diff --git a/modules/widget/widget.class.php b/modules/widget/widget.class.php index 7bedf4803..71f052820 100644 --- a/modules/widget/widget.class.php +++ b/modules/widget/widget.class.php @@ -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 * 모듈 객체가 생성된 경우는 직접 권한을 체크하지만 기능성 모듈등 스스로 객체를 생성하지 않는 모듈들의 경우에는 diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index d6cee8a7a..05620c7d8 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -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('', $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('', $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(); diff --git a/modules/widget/widget.view.php b/modules/widget/widget.view.php index 9d52a5fb6..684760057 100644 --- a/modules/widget/widget.view.php +++ b/modules/widget/widget.view.php @@ -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; diff --git a/widgets/archive_list/archive_list.class.php b/widgets/archive_list/archive_list.class.php index 932d17c47..7849c626b 100644 --- a/widgets/archive_list/archive_list.class.php +++ b/widgets/archive_list/archive_list.class.php @@ -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; diff --git a/widgets/archive_list/conf/info.xml b/widgets/archive_list/conf/info.xml index 7cb69a97d..848478edc 100644 --- a/widgets/archive_list/conf/info.xml +++ b/widgets/archive_list/conf/info.xml @@ -66,7 +66,7 @@ Это будет заголовком отчета. 顯示封存標題。 - + mid 대상 모듈 对象模块 @@ -84,4 +84,4 @@ 將所選擇的模組作為統計目標。 - \ No newline at end of file + diff --git a/widgets/category/category.class.php b/widgets/category/category.class.php index 41790ac7e..ead3a0962 100644 --- a/widgets/category/category.class.php +++ b/widgets/category/category.class.php @@ -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); diff --git a/widgets/category/conf/info.xml b/widgets/category/conf/info.xml index 973b26658..1b5cf5099 100644 --- a/widgets/category/conf/info.xml +++ b/widgets/category/conf/info.xml @@ -28,8 +28,8 @@ - - mid_list + + mid 대상 모듈 대상 모듈 Target Module @@ -46,4 +46,4 @@ 將所選擇的模組作為目標。只能選擇一個模組。 - \ No newline at end of file + diff --git a/widgets/forum/conf/info.xml b/widgets/forum/conf/info.xml index 32dead96d..63d83a502 100644 --- a/widgets/forum/conf/info.xml +++ b/widgets/forum/conf/info.xml @@ -90,8 +90,8 @@ Длина темы может быть присвоена. (0 или пустое значение не будут ограничивать длину) 可設置標題的字數。(0或留白為不限制) - - mid_list + + module_srl_list 대상 모듈 模块对象 モジュール @@ -108,4 +108,4 @@ 把所選擇之模組當作目標。 - \ No newline at end of file + diff --git a/widgets/forum/forum.class.php b/widgets/forum/forum.class.php index a725cb8fd..5f3884164 100644 --- a/widgets/forum/forum.class.php +++ b/widgets/forum/forum.class.php @@ -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;$igetModulesInfo($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) { diff --git a/widgets/newest_comment/conf/info.xml b/widgets/newest_comment/conf/info.xml index 6ee41af73..30045720a 100644 --- a/widgets/newest_comment/conf/info.xml +++ b/widgets/newest_comment/conf/info.xml @@ -108,8 +108,8 @@ - - mid_list + + module_srl_list 대상 모듈 模块对象 モジュール diff --git a/widgets/newest_comment/newest_comment.class.php b/widgets/newest_comment/newest_comment.class.php index 7893c5c58..feb5048d9 100644 --- a/widgets/newest_comment/newest_comment.class.php +++ b/widgets/newest_comment/newest_comment.class.php @@ -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); diff --git a/widgets/newest_document/conf/info.xml b/widgets/newest_document/conf/info.xml index c37a789af..b79d07927 100644 --- a/widgets/newest_document/conf/info.xml +++ b/widgets/newest_document/conf/info.xml @@ -196,8 +196,8 @@ - - mid_list + + module_srl_list 대상 모듈 模块对象 モジュール diff --git a/widgets/newest_document/newest_document.class.php b/widgets/newest_document/newest_document.class.php index e7d48d0f6..ed645c677 100644 --- a/widgets/newest_document/newest_document.class.php +++ b/widgets/newest_document/newest_document.class.php @@ -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 객체를 받아서 결과를 객체화 시킴 diff --git a/widgets/newest_images/conf/info.xml b/widgets/newest_images/conf/info.xml index 86c8b097a..61ed5ceb0 100644 --- a/widgets/newest_images/conf/info.xml +++ b/widgets/newest_images/conf/info.xml @@ -285,8 +285,8 @@ 隱藏 - - mid_list + + module_srl_list 대상 모듈 モジュール 对象模块 diff --git a/widgets/newest_images/newest_images.class.php b/widgets/newest_images/newest_images.class.php index ecd3d6dd0..927d9f66b 100644 --- a/widgets/newest_images/newest_images.class.php +++ b/widgets/newest_images/newest_images.class.php @@ -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'); // 정해진 모듈에서 문서별 파일 목록을 구함 diff --git a/widgets/newest_images/skins/default/css/normal.css b/widgets/newest_images/skins/default/css/normal.css index 996f3fcd8..5e22c84aa 100644 --- a/widgets/newest_images/skins/default/css/normal.css +++ b/widgets/newest_images/skins/default/css/normal.css @@ -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; } diff --git a/widgets/newest_images/skins/default/list.html b/widgets/newest_images/skins/default/list.html index b52c46d1a..4a4e445c2 100644 --- a/widgets/newest_images/skins/default/list.html +++ b/widgets/newest_images/skins/default/list.html @@ -27,7 +27,7 @@
{$oDocument->getNickName()}
diff --git a/widgets/newest_images/skins/xe_official/css/normal.css b/widgets/newest_images/skins/xe_official/css/normal.css index 55a18d5de..0c233d690 100644 --- a/widgets/newest_images/skins/xe_official/css/normal.css +++ b/widgets/newest_images/skins/xe_official/css/normal.css @@ -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; } diff --git a/widgets/newest_images/skins/xe_official/list.html b/widgets/newest_images/skins/xe_official/list.html index 5859c8718..9e76f8fcd 100644 --- a/widgets/newest_images/skins/xe_official/list.html +++ b/widgets/newest_images/skins/xe_official/list.html @@ -23,7 +23,7 @@
{$oDocument->getNickName()}
diff --git a/widgets/newest_trackback/conf/info.xml b/widgets/newest_trackback/conf/info.xml index 9db76f032..3029fe83a 100644 --- a/widgets/newest_trackback/conf/info.xml +++ b/widgets/newest_trackback/conf/info.xml @@ -62,8 +62,8 @@ Вы можете выбрать число списка трекбеков для отображения. (стандарт: 5) 可設置要顯示的列表數。(預設是5個)
- - mid_list + + module_srl_list 대상 모듈 模块对象 モジュール @@ -80,4 +80,4 @@ 將所選擇的模組當作目標。 - \ No newline at end of file + diff --git a/widgets/newest_trackback/newest_trackback.class.php b/widgets/newest_trackback/newest_trackback.class.php index 461549c2f..548ba8d4a 100644 --- a/widgets/newest_trackback/newest_trackback.class.php +++ b/widgets/newest_trackback/newest_trackback.class.php @@ -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; diff --git a/widgets/rank_download/conf/info.xml b/widgets/rank_download/conf/info.xml index eb4056422..a8df8157a 100644 --- a/widgets/rank_download/conf/info.xml +++ b/widgets/rank_download/conf/info.xml @@ -146,8 +146,8 @@ 隱藏 - - mid_list + + module_srl_list 대상 모듈 対象モジュール Target Module @@ -164,4 +164,4 @@ 將所選擇的模組當作目標。 - \ No newline at end of file + diff --git a/widgets/rank_download/rank_download.class.php b/widgets/rank_download/rank_download.class.php index 223b22030..8a5a73e1f 100644 --- a/widgets/rank_download/rank_download.class.php +++ b/widgets/rank_download/rank_download.class.php @@ -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; diff --git a/widgets/tab_newest_document/conf/info.xml b/widgets/tab_newest_document/conf/info.xml index fee13c632..f5a9a4892 100644 --- a/widgets/tab_newest_document/conf/info.xml +++ b/widgets/tab_newest_document/conf/info.xml @@ -322,8 +322,8 @@ 隱藏 - - mid_list + + module_srl_list 대상 모듈 模块对象 モジュール @@ -340,4 +340,4 @@ 將所選擇的模組當成顯示目標。 - \ No newline at end of file + diff --git a/widgets/tab_newest_document/tab_newest_document.class.php b/widgets/tab_newest_document/tab_newest_document.class.php index f31588ea8..ba9c3945d 100644 --- a/widgets/tab_newest_document/tab_newest_document.class.php +++ b/widgets/tab_newest_document/tab_newest_document.class.php @@ -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;$ilist_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); diff --git a/widgets/tag_list/conf/info.xml b/widgets/tag_list/conf/info.xml index a9975b96f..6f65b1383 100644 --- a/widgets/tag_list/conf/info.xml +++ b/widgets/tag_list/conf/info.xml @@ -62,8 +62,8 @@ Вы можете сконфигурировать число тегов для показа. (стандарт: 20) 可設置要顯示的標籤數。(預設是 20個) - - mid_list + + module_srl_list 대상 모듈 模块对象 モジュール diff --git a/widgets/tag_list/tag_list.class.php b/widgets/tag_list/tag_list.class.php index 939184d23..de0a33399 100644 --- a/widgets/tag_list/tag_list.class.php +++ b/widgets/tag_list/tag_list.class.php @@ -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; diff --git a/widgets/webzine/conf/info.xml b/widgets/webzine/conf/info.xml index 54ce5afa3..2283812a2 100644 --- a/widgets/webzine/conf/info.xml +++ b/widgets/webzine/conf/info.xml @@ -398,8 +398,8 @@ 隱藏 - - mid_list + + module_srl_list 대상 모듈 模块对象 モジュール diff --git a/widgets/webzine/skins/xe_official/images/blank.gif b/widgets/webzine/skins/xe_official/images/blank.gif deleted file mode 100644 index 35d42e808f0a8017b8d52a06be2f8fec0b466a66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ diff --git a/widgets/webzine/skins/xe_official/images/normal/bulletD0.gif b/widgets/webzine/skins/xe_official/images/normal/bulletD0.gif deleted file mode 100644 index e8e17d4c63d93ac478a0a54a3abc39ad94eed969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44 tcmZ?wbhEHbWM*JyXkcKtaNz<21B2pE79h#MpaUX6G7L=2E%mGn)&RoU2R8r! diff --git a/widgets/webzine/skins/xe_official/images/normal/lineNotice.gif b/widgets/webzine/skins/xe_official/lineNotice.gif similarity index 100% rename from widgets/webzine/skins/xe_official/images/normal/lineNotice.gif rename to widgets/webzine/skins/xe_official/lineNotice.gif diff --git a/widgets/webzine/skins/xe_official/list.html b/widgets/webzine/skins/xe_official/list.html index 69e735122..b0973fb33 100644 --- a/widgets/webzine/skins/xe_official/list.html +++ b/widgets/webzine/skins/xe_official/list.html @@ -1,7 +1,7 @@ - +
@@ -33,7 +33,7 @@ {$oDocument->getTitle($widget_info->subject_cut_size)} - [{$oDocument->getCommentCount()}] + [{$oDocument->getCommentCount()}] diff --git a/widgets/webzine/skins/xe_official/css/normal.css b/widgets/webzine/skins/xe_official/normal.css similarity index 90% rename from widgets/webzine/skins/xe_official/css/normal.css rename to widgets/webzine/skins/xe_official/normal.css index 2d7ca3234..b0d2929cf 100644 --- a/widgets/webzine/skins/xe_official/css/normal.css +++ b/widgets/webzine/skins/xe_official/normal.css @@ -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; } diff --git a/widgets/webzine/webzine.class.php b/widgets/webzine/webzine.class.php index 1de1edec6..98e3477a5 100644 --- a/widgets/webzine/webzine.class.php +++ b/widgets/webzine/webzine.class.php @@ -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;