mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-23 21:29:58 +09:00
merge sandbox to trunk for 1.4.4
git-svn-id: http://xe-core.googlecode.com/svn/trunk@7723 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
200d63636c
commit
b8299c8a65
683 changed files with 70982 additions and 69716 deletions
|
|
@ -1,33 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="0.2">
|
||||
<title xml:lang="ko">모듈</title>
|
||||
<title xml:lang="zh-CN">模块列表</title>
|
||||
<title xml:lang="jp">モジュール</title>
|
||||
<title xml:lang="en">Module</title>
|
||||
<title xml:lang="vi">Module</title>
|
||||
<title xml:lang="es">Módulo</title>
|
||||
<title xml:lang="ru">Модули</title>
|
||||
<title xml:lang="zh-TW">模組</title>
|
||||
<description xml:lang="ko">모듈 생성 및 관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">生成及管理模块的模块。</description>
|
||||
<description xml:lang="jp">モジュールの生成、管理するモジュールです。</description>
|
||||
<description xml:lang="en">This module is for creating/managering the other modules.</description>
|
||||
<description xml:lang="vi">Module cho phép tạo và quản lý những Module khác.</description>
|
||||
<description xml:lang="es">Este módulo is para crear y manejar los otros módulos.</description>
|
||||
<description xml:lang="ru">Этот модуль служит для создания/управления другими модулями.</description>
|
||||
<description xml:lang="zh-TW">用於建立與管理其他模組。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<category>system</category>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
|
||||
<name xml:lang="ko">zero</name>
|
||||
<name xml:lang="vi">zero</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<name xml:lang="es">zero</name>
|
||||
<name xml:lang="ru">zero</name>
|
||||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
</module>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="0.2">
|
||||
<title xml:lang="ko">모듈</title>
|
||||
<title xml:lang="zh-CN">模块列表</title>
|
||||
<title xml:lang="jp">モジュール</title>
|
||||
<title xml:lang="en">Module</title>
|
||||
<title xml:lang="vi">Module</title>
|
||||
<title xml:lang="es">Módulo</title>
|
||||
<title xml:lang="ru">Модули</title>
|
||||
<title xml:lang="zh-TW">模組</title>
|
||||
<description xml:lang="ko">모듈 생성 및 관리하는 모듈입니다.</description>
|
||||
<description xml:lang="zh-CN">生成及管理模块的模块。</description>
|
||||
<description xml:lang="jp">モジュールの生成、管理するモジュールです。</description>
|
||||
<description xml:lang="en">This module is for creating/managering the other modules.</description>
|
||||
<description xml:lang="vi">Module cho phép tạo và quản lý những Module khác.</description>
|
||||
<description xml:lang="es">Este módulo is para crear y manejar los otros módulos.</description>
|
||||
<description xml:lang="ru">Этот модуль служит для создания/управления другими модулями.</description>
|
||||
<description xml:lang="zh-TW">用於建立與管理其他模組。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<category>system</category>
|
||||
|
||||
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
|
||||
<name xml:lang="ko">NHN</name>
|
||||
<name xml:lang="vi">NHN</name>
|
||||
<name xml:lang="zh-CN">NHN</name>
|
||||
<name xml:lang="jp">NHN</name>
|
||||
<name xml:lang="en">NHN</name>
|
||||
<name xml:lang="es">NHN</name>
|
||||
<name xml:lang="ru">NHN</name>
|
||||
<name xml:lang="zh-TW">NHN</name>
|
||||
</author>
|
||||
</module>
|
||||
|
|
|
|||
|
|
@ -1,99 +1,99 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/en.lang.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief English language pack
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "Modules List";
|
||||
$lang->module_index = "Modules List";
|
||||
$lang->module_category = "Module Category";
|
||||
$lang->module_info = "Module Info";
|
||||
$lang->add_shortcut = "Add Shortcuts";
|
||||
$lang->module_action = "Actions";
|
||||
$lang->module_maker = "Module Developer";
|
||||
$lang->module_license = 'License';
|
||||
$lang->module_history = "Update history";
|
||||
$lang->category_title = "Category Title";
|
||||
$lang->header_text = 'Header Text';
|
||||
$lang->footer_text = 'Footer Text';
|
||||
$lang->use_category = 'Enable Category';
|
||||
$lang->category_title = 'Category Title';
|
||||
$lang->checked_count = 'Number of Checked Articles';
|
||||
$lang->skin_default_info = 'Default Skin Info';
|
||||
$lang->skin_author = 'Skin Developer';
|
||||
$lang->skin_license = 'License';
|
||||
$lang->skin_history = 'Update history';
|
||||
$lang->module_copy = "Duplicate Module";
|
||||
$lang->module_selector = "Module Selector";
|
||||
$lang->do_selected = "I want to";
|
||||
$lang->bundle_setup = "Bundle Setup";
|
||||
$lang->bundle_addition_setup = "Bundle Additional Setup";
|
||||
$lang->bundle_grant_setup = "Bundle Permission Setup";
|
||||
$lang->lang_code = "Language Code";
|
||||
$lang->filebox = "FileBox";
|
||||
|
||||
$lang->access_type = 'Access Type';
|
||||
$lang->access_domain = 'With Domain Name';
|
||||
$lang->access_vid = 'With Site ID';
|
||||
$lang->about_domain = "In order to create more than one virtual site, every club needs to have its own domain name.<br />Sub-domain (e.g., aaa.bbb.com of bbb.com) also can be used. Input the address including the path where XE is installed. <br /> ex) www.xpressengine.com/xe";
|
||||
$lang->about_vid = 'Users can access via http://XEaddress/ID. You cannot use same site id as the existing module name(mid).<br />Site id should start with an alphabet character . Alphabet characters, numbers and _ can be used for the site id.';
|
||||
$lang->msg_already_registed_vid = 'Already registered site id. Please input another ID.';
|
||||
$lang->msg_already_registed_domain = "Domain name has already been used. Please input another domain name.";
|
||||
|
||||
$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";
|
||||
|
||||
$lang->grant_access = "Access";
|
||||
$lang->grant_manager = "Management";
|
||||
|
||||
$lang->grant_to_all = "All users";
|
||||
$lang->grant_to_login_user = "Logged users";
|
||||
$lang->grant_to_site_user = "Registered users";
|
||||
$lang->grant_to_group = "Specification group users";
|
||||
|
||||
$lang->cmd_add_shortcut = "Add Shortcut";
|
||||
$lang->cmd_install = "Install";
|
||||
$lang->cmd_update = "Update";
|
||||
$lang->cmd_manage_category = 'Manage Categories';
|
||||
$lang->cmd_manage_grant = 'Manage Permission';
|
||||
$lang->cmd_manage_skin = 'Manage Skins';
|
||||
$lang->cmd_manage_document = 'Manage Articles';
|
||||
$lang->cmd_find_module = 'Find Module';
|
||||
$lang->cmd_find_langcode = 'Find lang code';
|
||||
|
||||
$lang->msg_new_module = "Create new module";
|
||||
$lang->msg_update_module = "Modify module";
|
||||
$lang->msg_module_name_exists = "The name already exists. Please try another name.";
|
||||
$lang->msg_category_is_null = 'There is no registered category.';
|
||||
$lang->msg_grant_is_null = 'There is no permission list.';
|
||||
$lang->msg_no_checked_document = 'No checked articles exist.';
|
||||
$lang->msg_move_failed = 'Failed to move';
|
||||
$lang->msg_cannot_delete_for_child = 'Cannot delete a category having child categories.';
|
||||
$lang->msg_limit_mid ="Only alphabets+[alphabets+numbers+_] can be used as module name.";
|
||||
$lang->msg_extra_name_exists = 'Already registered extra variable name. Please input another name.';
|
||||
|
||||
$lang->about_browser_title = "It will be shown in the browser title. It will be also used in a RSS/Trackback.";
|
||||
$lang->about_mid = "The module name will be used like http://address/?mid=ModuleName.\n(Only english alphabet + [english alphabet, numbers, and underscore(_)] are allowed. The maximum length is 40.)";
|
||||
$lang->about_default = "If checked, the default will be shown when access to the site without no mid value(mid=NoValue).";
|
||||
$lang->about_module_category = "It enables you to manage it through module category.\n The URL for the module manager is <a href=\"./?module=admin&act=dispModuleAdminCategory\">Manage module > Module category </a>.";
|
||||
$lang->about_description= 'It is the description only for a manager.';
|
||||
$lang->about_default = 'If checked, this module will be shown when users access to the site without mid value (mid=NoValue).';
|
||||
$lang->about_header_text = 'The contents will be shown on the top of the module.(html tags available)';
|
||||
$lang->about_footer_text = 'The contents will be shown on the bottom of the module.(html tags available)';
|
||||
$lang->about_skin = 'You may choose a module skin.';
|
||||
$lang->about_use_category = 'If checked, category function will be enabled.';
|
||||
$lang->about_list_count = 'You can set the number of limit to show article in a page.(default is 20)';
|
||||
$lang->about_search_list_count = 'You may set the number of articles to be exposed when you use search or category function. (default is 20)';
|
||||
$lang->about_page_count = 'You can set the number of page link to move pages in a bottom of page.(default is 10)';
|
||||
$lang->about_admin_id = 'You can grant a manager to have all permissions to the module.';
|
||||
$lang->about_grant = 'If you disable all permissions for a specific object, members who has not logged in would get permission.';
|
||||
$lang->about_grant_deatil = 'Registered users mean users who signed-up to the virtual sites (e.g., cafeXE).';
|
||||
$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 = "Input domain of virtual sites.<br />To search modules of non-virtual site, search with blank";
|
||||
$lang->about_langcode = "If you want to configure seperately, use 'find language code'";
|
||||
$lang->about_file_extension= "Only %s extension(s) is available.";
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/en.lang.php
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief English language pack
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "Modules List";
|
||||
$lang->module_index = "Modules List";
|
||||
$lang->module_category = "Module Category";
|
||||
$lang->module_info = "Module Info";
|
||||
$lang->add_shortcut = "Add Shortcuts";
|
||||
$lang->module_action = "Actions";
|
||||
$lang->module_maker = "Module Developer";
|
||||
$lang->module_license = 'License';
|
||||
$lang->module_history = "Update history";
|
||||
$lang->category_title = "Category Title";
|
||||
$lang->header_text = 'Header Text';
|
||||
$lang->footer_text = 'Footer Text';
|
||||
$lang->use_category = 'Enable Category';
|
||||
$lang->category_title = 'Category Title';
|
||||
$lang->checked_count = 'Number of Checked Articles';
|
||||
$lang->skin_default_info = 'Default Skin Info';
|
||||
$lang->skin_author = 'Skin Developer';
|
||||
$lang->skin_license = 'License';
|
||||
$lang->skin_history = 'Update history';
|
||||
$lang->module_copy = "Duplicate Module";
|
||||
$lang->module_selector = "Module Selector";
|
||||
$lang->do_selected = "I want to";
|
||||
$lang->bundle_setup = "Bundle Setup";
|
||||
$lang->bundle_addition_setup = "Bundle Additional Setup";
|
||||
$lang->bundle_grant_setup = "Bundle Permission Setup";
|
||||
$lang->lang_code = "Language Code";
|
||||
$lang->filebox = "FileBox";
|
||||
|
||||
$lang->access_type = 'Access Type';
|
||||
$lang->access_domain = 'With Domain Name';
|
||||
$lang->access_vid = 'With Site ID';
|
||||
$lang->about_domain = "In order to create more than one virtual site, every club needs to have its own domain name.<br />Sub-domain (e.g., aaa.bbb.com of bbb.com) also can be used. Input the address including the path where XE is installed. <br /> ex) www.xpressengine.com/xe";
|
||||
$lang->about_vid = 'Users can access via http://XEaddress/ID. You cannot use same site id as the existing module name(mid).<br />Site id should start with an alphabet character . Alphabet characters, numbers and _ can be used for the site id.';
|
||||
$lang->msg_already_registed_vid = 'Already registered site id. Please input another ID.';
|
||||
$lang->msg_already_registed_domain = "Domain name has already been used. Please input another domain name.";
|
||||
|
||||
$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";
|
||||
|
||||
$lang->grant_access = "Access";
|
||||
$lang->grant_manager = "Management";
|
||||
|
||||
$lang->grant_to_all = "All users";
|
||||
$lang->grant_to_login_user = "Logged users";
|
||||
$lang->grant_to_site_user = "Registered users";
|
||||
$lang->grant_to_group = "Specification group users";
|
||||
|
||||
$lang->cmd_add_shortcut = "Add Shortcut";
|
||||
$lang->cmd_install = "Install";
|
||||
$lang->cmd_update = "Update";
|
||||
$lang->cmd_manage_category = 'Manage Categories';
|
||||
$lang->cmd_manage_grant = 'Manage Permission';
|
||||
$lang->cmd_manage_skin = 'Manage Skins';
|
||||
$lang->cmd_manage_document = 'Manage Articles';
|
||||
$lang->cmd_find_module = 'Find Module';
|
||||
$lang->cmd_find_langcode = 'Find lang code';
|
||||
|
||||
$lang->msg_new_module = "Create new module";
|
||||
$lang->msg_update_module = "Modify module";
|
||||
$lang->msg_module_name_exists = "The name already exists. Please try another name.";
|
||||
$lang->msg_category_is_null = 'There is no registered category.';
|
||||
$lang->msg_grant_is_null = 'There is no permission list.';
|
||||
$lang->msg_no_checked_document = 'No checked articles exist.';
|
||||
$lang->msg_move_failed = 'Failed to move';
|
||||
$lang->msg_cannot_delete_for_child = 'Cannot delete a category having child categories.';
|
||||
$lang->msg_limit_mid ="Only alphabets+[alphabets+numbers+_] can be used as module name.";
|
||||
$lang->msg_extra_name_exists = 'Already registered extra variable name. Please input another name.';
|
||||
|
||||
$lang->about_browser_title = "It will be shown in the browser title. It will be also used in a RSS/Trackback.";
|
||||
$lang->about_mid = "The module name will be used like http://address/?mid=ModuleName.\n(Only english alphabet + [english alphabet, numbers, and underscore(_)] are allowed. The maximum length is 40.)";
|
||||
$lang->about_default = "If checked, the default will be shown when access to the site without no mid value(mid=NoValue).";
|
||||
$lang->about_module_category = "It enables you to manage it through module category.\n The URL for the module manager is <a href=\"./?module=admin&act=dispModuleAdminCategory\">Manage module > Module category </a>.";
|
||||
$lang->about_description= 'It is the description only for a manager.';
|
||||
$lang->about_default = 'If checked, this module will be shown when users access to the site without mid value (mid=NoValue).';
|
||||
$lang->about_header_text = 'The contents will be shown on the top of the module.(html tags available)';
|
||||
$lang->about_footer_text = 'The contents will be shown on the bottom of the module.(html tags available)';
|
||||
$lang->about_skin = 'You may choose a module skin.';
|
||||
$lang->about_use_category = 'If checked, category function will be enabled.';
|
||||
$lang->about_list_count = 'You can set the number of limit to show article in a page.(default is 20)';
|
||||
$lang->about_search_list_count = 'You may set the number of articles to be exposed when you use search or category function. (default is 20)';
|
||||
$lang->about_page_count = 'You can set the number of page link to move pages in a bottom of page.(default is 10)';
|
||||
$lang->about_admin_id = 'You can grant a manager to have all permissions to the module.';
|
||||
$lang->about_grant = 'If you disable all permissions for a specific object, members who has not logged in would get permission.';
|
||||
$lang->about_grant_deatil = 'Registered users mean users who signed-up to the virtual sites (e.g., cafeXE).';
|
||||
$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 = "Input domain of virtual sites.<br />To search modules of non-virtual site, search with blank";
|
||||
$lang->about_langcode = "If you want to configure seperately, use 'find language code'";
|
||||
$lang->about_file_extension= "Only %s extension(s) is available.";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @archivo modules/module/lang/es.lang.php
|
||||
* @autor zero (zero@nzeo.com)
|
||||
* @autor NHN (developers@xpressengine.com)
|
||||
* @sumario Paquete del idioma español
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,98 +1,98 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/fr.lang.php
|
||||
* @author zero (zero@nzeo.com) traduit par Pierre duvent <PierreDuvent@gmail.com>
|
||||
* @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";
|
||||
$lang->module_info = "Information de Module";
|
||||
$lang->add_shortcut = "Ajouter un raccourci dans le menu pour l'administrateur";
|
||||
$lang->module_action = "Actions";
|
||||
$lang->module_maker = "Développeur du Module";
|
||||
$lang->module_license = 'Licence';
|
||||
$lang->module_history = "Histoire de Mise à Jour";
|
||||
$lang->category_title = "Titre de la Catégorie";
|
||||
$lang->header_text = 'Texte en-tête';
|
||||
$lang->footer_text = 'Text au bas de page';
|
||||
$lang->use_category = 'Utiliser catégorie';
|
||||
$lang->category_title = 'Titre de la Catégorie';
|
||||
$lang->checked_count = 'somme des Articles choisis';
|
||||
$lang->skin_default_info = 'Information fondamental de l\'habillage';
|
||||
$lang->skin_author = 'Developpeur de l\'habillage';
|
||||
$lang->skin_license = 'Licence';
|
||||
$lang->skin_history = 'Histoire des Mises à jour';
|
||||
$lang->module_copy = "Copier un Module";
|
||||
$lang->module_selector = "Module Selector";
|
||||
$lang->do_selected = "선택된 것들을...";
|
||||
$lang->bundle_setup = "일괄 기본 설정";
|
||||
$lang->bundle_addition_setup = "일괄 추가 설정";
|
||||
$lang->bundle_grant_setup = "일괄 권한 설정";
|
||||
$lang->lang_code = "언어 코드";
|
||||
$lang->filebox = "파일박스";
|
||||
|
||||
$lang->access_type = '접속 방법';
|
||||
$lang->access_domain = 'Domain 접속';
|
||||
$lang->access_vid = 'Site ID 접속';
|
||||
$lang->about_vid = '별도의 도메인이 아닌 http://XE주소/ID 로 접속할 수 있습니다. 모듈명(mid)와 중복될 수 없습니다.<br/>첫글자는 영문으로 시작해야 하고 영문과 숫자 그리고 _ 만 사용할 수 있습니다';
|
||||
$lang->msg_already_registed_vid = '이미 등록된 사이트 ID 입니다. 게시판등의 mid와도 중복이 되지 않습니다. 다른 ID를 입력해주세요.';
|
||||
$lang->msg_already_registed_domain = '이미 등록된 도메인입니다. 다른 도메인을 사용해주세요';
|
||||
|
||||
$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";
|
||||
|
||||
$lang->grant_access = "Access";
|
||||
$lang->grant_manager = "Management";
|
||||
|
||||
$lang->grant_to_all = "All users";
|
||||
$lang->grant_to_login_user = "Logged users";
|
||||
$lang->grant_to_site_user = "Joined users";
|
||||
$lang->grant_to_group = "Specification group users";
|
||||
|
||||
$lang->cmd_add_shortcut = "Ajouter un raccourci";
|
||||
$lang->cmd_install = "Installer";
|
||||
$lang->cmd_update = "Mettre à Jour";
|
||||
$lang->cmd_manage_category = 'Administrer des Catégories';
|
||||
$lang->cmd_manage_grant = 'Administrer des Permissions';
|
||||
$lang->cmd_manage_skin = 'Administrer des Habillages';
|
||||
$lang->cmd_manage_document = 'Administrer des Articles';
|
||||
$lang->cmd_find_module = '모듈 찾기';
|
||||
$lang->cmd_find_langcode = 'Find lang code';
|
||||
|
||||
$lang->msg_new_module = "Créer un module";
|
||||
$lang->msg_update_module = "Modifier un module";
|
||||
$lang->msg_module_name_exists = "Le nom existe déjà. Essayez un autre nom, S.V.P.";
|
||||
$lang->msg_category_is_null = 'Il n\'y a pas de catégorie enrégistrée.';
|
||||
$lang->msg_grant_is_null = 'Il n\'y a pas de liste de permission.';
|
||||
$lang->msg_no_checked_document = 'Pas un article est choisi.';
|
||||
$lang->msg_move_failed = 'Echoué de bouger';
|
||||
$lang->msg_cannot_delete_for_child = 'On ne peut pas supprimer une catégorie qui a des catégories inférieures.';
|
||||
$lang->msg_limit_mid ='모듈이름은 영문+[영문+숫자+_] 만 가능합니다.';
|
||||
$lang->msg_extra_name_exists = '이미 존재하는 확장변수 이름입니다. 다른 이름을 입력해주세요.';
|
||||
|
||||
$lang->about_browser_title = "C'est la valeur qui se représentera dans le titre de navigateur Web. Ce sera encore utilisé dans RSS/Rétrolien.";
|
||||
$lang->about_mid = "Le nom de module sera utilisé comme http://adresse/?mid=ModuleName.\n(alphabet anglais + [alphabet anglais, nombres, et soulignement(_)] sont seulement permis. The maximum length is 40.)";
|
||||
$lang->about_default = "Si c'est coché, on verra ce module quand on connecte ce site sans aucune valeur de mid(mid=Nulle Valeur).";
|
||||
$lang->about_module_category = "Ça vous permet d'administrer le module par la catégorie.\nOn peut administrer la classification des modules à <a href=\"./?module=admin&act=dispModuleAdminCategory\">Administration des modules > Catégorie des Modules </a>.";
|
||||
$lang->about_description= 'C\'est la description pour la facilité à administrer.';
|
||||
$lang->about_default = 'Si c\'est coché, on verra ce module quand on connecte ce site sans aucune valeur de mid(mid=Nulle Valeur).';
|
||||
$lang->about_header_text = 'Ce contenu sera exposé en tête du module.(balise en html est disponible)';
|
||||
$lang->about_footer_text = 'Ce contenu sera exposé en bas du module.(balise en html est disponible)';
|
||||
$lang->about_skin = 'Vous pouvez choisir un habillage pour le module.';
|
||||
$lang->about_use_category = 'Cochez pour utiliser la fonction de catégorie, .';
|
||||
$lang->about_list_count = 'Vous pouvez configurer combien d\'articles soient exposés dans une page.(20 par défaut)';
|
||||
$lang->about_search_list_count = 'Vous pouvez configurer combien d\'articles soient exposés quand vous utilisez la fonction de recherche ou de catégorie. (20 par défaut)';
|
||||
$lang->about_page_count = 'Vous pouvez configurer combien de liens pour les Pages à Bouger en bas de chaque page.(10 par défaut)';
|
||||
$lang->about_admin_id = 'Vous pouvez désigner un directeur qui aura tous les permissions sur le module.\nVous pouvez entrer plusieurs compte en utilisant.';
|
||||
$lang->about_grant = 'Si vous ne donnez pas la permission à aucune personne, même les membres qui n\'a pas ouvert la connexion auront la permission. ';
|
||||
$lang->about_grant_deatil = '가입한 사용자는 cafeXE등 분양형 가상 사이트에 가입을 한 로그인 사용자를 의미합니다';
|
||||
$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:// 는 제외)";
|
||||
$lang->about_langcode = "언어별로 다르게 설정하고 싶으시면 언어코드 찾기를 이용해주세요";
|
||||
$lang->about_file_extension= "%s 파일만 가능합니다.";
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/fr.lang.php
|
||||
* @author NHN (developers@xpressengine.com) traduit par Pierre duvent <PierreDuvent@gmail.com>
|
||||
* @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";
|
||||
$lang->module_info = "Information de Module";
|
||||
$lang->add_shortcut = "Ajouter un raccourci dans le menu pour l'administrateur";
|
||||
$lang->module_action = "Actions";
|
||||
$lang->module_maker = "Développeur du Module";
|
||||
$lang->module_license = 'Licence';
|
||||
$lang->module_history = "Histoire de Mise à Jour";
|
||||
$lang->category_title = "Titre de la Catégorie";
|
||||
$lang->header_text = 'Texte en-tête';
|
||||
$lang->footer_text = 'Text au bas de page';
|
||||
$lang->use_category = 'Utiliser catégorie';
|
||||
$lang->category_title = 'Titre de la Catégorie';
|
||||
$lang->checked_count = 'somme des Articles choisis';
|
||||
$lang->skin_default_info = 'Information fondamental de l\'habillage';
|
||||
$lang->skin_author = 'Developpeur de l\'habillage';
|
||||
$lang->skin_license = 'Licence';
|
||||
$lang->skin_history = 'Histoire des Mises à jour';
|
||||
$lang->module_copy = "Copier un Module";
|
||||
$lang->module_selector = "Module Selector";
|
||||
$lang->do_selected = "선택된 것들을...";
|
||||
$lang->bundle_setup = "일괄 기본 설정";
|
||||
$lang->bundle_addition_setup = "일괄 추가 설정";
|
||||
$lang->bundle_grant_setup = "일괄 권한 설정";
|
||||
$lang->lang_code = "언어 코드";
|
||||
$lang->filebox = "파일박스";
|
||||
|
||||
$lang->access_type = '접속 방법';
|
||||
$lang->access_domain = 'Domain 접속';
|
||||
$lang->access_vid = 'Site ID 접속';
|
||||
$lang->about_vid = '별도의 도메인이 아닌 http://XE주소/ID 로 접속할 수 있습니다. 모듈명(mid)와 중복될 수 없습니다.<br/>첫글자는 영문으로 시작해야 하고 영문과 숫자 그리고 _ 만 사용할 수 있습니다';
|
||||
$lang->msg_already_registed_vid = '이미 등록된 사이트 ID 입니다. 게시판등의 mid와도 중복이 되지 않습니다. 다른 ID를 입력해주세요.';
|
||||
$lang->msg_already_registed_domain = '이미 등록된 도메인입니다. 다른 도메인을 사용해주세요';
|
||||
|
||||
$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";
|
||||
|
||||
$lang->grant_access = "Access";
|
||||
$lang->grant_manager = "Management";
|
||||
|
||||
$lang->grant_to_all = "All users";
|
||||
$lang->grant_to_login_user = "Logged users";
|
||||
$lang->grant_to_site_user = "Joined users";
|
||||
$lang->grant_to_group = "Specification group users";
|
||||
|
||||
$lang->cmd_add_shortcut = "Ajouter un raccourci";
|
||||
$lang->cmd_install = "Installer";
|
||||
$lang->cmd_update = "Mettre à Jour";
|
||||
$lang->cmd_manage_category = 'Administrer des Catégories';
|
||||
$lang->cmd_manage_grant = 'Administrer des Permissions';
|
||||
$lang->cmd_manage_skin = 'Administrer des Habillages';
|
||||
$lang->cmd_manage_document = 'Administrer des Articles';
|
||||
$lang->cmd_find_module = '모듈 찾기';
|
||||
$lang->cmd_find_langcode = 'Find lang code';
|
||||
|
||||
$lang->msg_new_module = "Créer un module";
|
||||
$lang->msg_update_module = "Modifier un module";
|
||||
$lang->msg_module_name_exists = "Le nom existe déjà. Essayez un autre nom, S.V.P.";
|
||||
$lang->msg_category_is_null = 'Il n\'y a pas de catégorie enrégistrée.';
|
||||
$lang->msg_grant_is_null = 'Il n\'y a pas de liste de permission.';
|
||||
$lang->msg_no_checked_document = 'Pas un article est choisi.';
|
||||
$lang->msg_move_failed = 'Echoué de bouger';
|
||||
$lang->msg_cannot_delete_for_child = 'On ne peut pas supprimer une catégorie qui a des catégories inférieures.';
|
||||
$lang->msg_limit_mid ='모듈이름은 영문+[영문+숫자+_] 만 가능합니다.';
|
||||
$lang->msg_extra_name_exists = '이미 존재하는 확장변수 이름입니다. 다른 이름을 입력해주세요.';
|
||||
|
||||
$lang->about_browser_title = "C'est la valeur qui se représentera dans le titre de navigateur Web. Ce sera encore utilisé dans RSS/Rétrolien.";
|
||||
$lang->about_mid = "Le nom de module sera utilisé comme http://adresse/?mid=ModuleName.\n(alphabet anglais + [alphabet anglais, nombres, et soulignement(_)] sont seulement permis. The maximum length is 40.)";
|
||||
$lang->about_default = "Si c'est coché, on verra ce module quand on connecte ce site sans aucune valeur de mid(mid=Nulle Valeur).";
|
||||
$lang->about_module_category = "Ça vous permet d'administrer le module par la catégorie.\nOn peut administrer la classification des modules à <a href=\"./?module=admin&act=dispModuleAdminCategory\">Administration des modules > Catégorie des Modules </a>.";
|
||||
$lang->about_description= 'C\'est la description pour la facilité à administrer.';
|
||||
$lang->about_default = 'Si c\'est coché, on verra ce module quand on connecte ce site sans aucune valeur de mid(mid=Nulle Valeur).';
|
||||
$lang->about_header_text = 'Ce contenu sera exposé en tête du module.(balise en html est disponible)';
|
||||
$lang->about_footer_text = 'Ce contenu sera exposé en bas du module.(balise en html est disponible)';
|
||||
$lang->about_skin = 'Vous pouvez choisir un habillage pour le module.';
|
||||
$lang->about_use_category = 'Cochez pour utiliser la fonction de catégorie, .';
|
||||
$lang->about_list_count = 'Vous pouvez configurer combien d\'articles soient exposés dans une page.(20 par défaut)';
|
||||
$lang->about_search_list_count = 'Vous pouvez configurer combien d\'articles soient exposés quand vous utilisez la fonction de recherche ou de catégorie. (20 par défaut)';
|
||||
$lang->about_page_count = 'Vous pouvez configurer combien de liens pour les Pages à Bouger en bas de chaque page.(10 par défaut)';
|
||||
$lang->about_admin_id = 'Vous pouvez désigner un directeur qui aura tous les permissions sur le module.\nVous pouvez entrer plusieurs compte en utilisant.';
|
||||
$lang->about_grant = 'Si vous ne donnez pas la permission à aucune personne, même les membres qui n\'a pas ouvert la connexion auront la permission. ';
|
||||
$lang->about_grant_deatil = '가입한 사용자는 cafeXE등 분양형 가상 사이트에 가입을 한 로그인 사용자를 의미합니다';
|
||||
$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:// 는 제외)";
|
||||
$lang->about_langcode = "언어별로 다르게 설정하고 싶으시면 언어코드 찾기를 이용해주세요";
|
||||
$lang->about_file_extension= "%s 파일만 가능합니다.";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,98 +1,98 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/jp.lang.php
|
||||
* @author zero (zero@nzeo.com) 翻訳:RisaPapa、liahona、ミニミ
|
||||
* @brief 日本語言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->virtual_site = 'バーチャル(Virtual)サイト';
|
||||
$lang->module_list = 'モジュールリスト';
|
||||
$lang->module_index = 'モジュールインデックス';
|
||||
$lang->module_category = 'モジュールカテゴリ';
|
||||
$lang->module_info = '詳細';
|
||||
$lang->add_shortcut = '管理者メニューに追加する';
|
||||
$lang->module_action = '動作';
|
||||
$lang->module_maker = 'モジュール作者';
|
||||
$lang->module_license = 'ライセンス';
|
||||
$lang->module_history = '変更履歴 ';
|
||||
$lang->category_title = 'カテゴリ名';
|
||||
$lang->header_text = 'ヘッダー内容';
|
||||
$lang->footer_text = 'フッター内容';
|
||||
$lang->use_category = 'カテゴリ使用';
|
||||
$lang->category_title = 'カテゴリ名';
|
||||
$lang->checked_count = '選択された書き込み数';
|
||||
$lang->skin_default_info = 'スキン基本情報';
|
||||
$lang->skin_author = 'スキン作者';
|
||||
$lang->skin_license = 'ライセンス';
|
||||
$lang->skin_history = '変更内容';
|
||||
$lang->module_copy = 'モジュールコピー';
|
||||
$lang->module_selector = 'モジュールセレクター';
|
||||
$lang->do_selected = '選択したものを...';
|
||||
$lang->bundle_setup = '一括基本設定';
|
||||
$lang->bundle_addition_setup = '一括追加設定';
|
||||
$lang->bundle_grant_setup = '一括権限設定';
|
||||
$lang->lang_code = '言語コード';
|
||||
$lang->filebox = 'ファイルボックス';
|
||||
|
||||
$lang->access_type = 'アクセスタイプ';
|
||||
$lang->access_domain = 'Doaminアクセス';
|
||||
$lang->access_vid = 'Site IDアクセス';
|
||||
$lang->about_domain = '複数のホームページを作成するためには、「オリジナルドメイン」や「サブ ドメイン」のような専用のドメインが必要です。<br />また、 XEのインストールパスも一緒に記入して下さい。<br />ex) www.xpressengine.com/xe';
|
||||
$lang->about_vid = '別の違うドメインではなく、「http://XEアドレス/ID」へのアクセスが可能です。この際、モジュール名(mid)と重複しないように登録して下さい。<br/>必ず、頭文字は半角英文字にし、「(すべて半角の)英数字・_ 」 だけの組み合わせで入力して下さい。';
|
||||
$lang->msg_already_registed_vid = '既に登録されたサイトIDです。掲示板などのmidと重複は不可です。異なるIDを入力して下さい。';
|
||||
$lang->msg_already_registed_domain = '既に登録されているドメインです。異なるドメインを利用して下さい。';
|
||||
|
||||
$lang->header_script = 'ヘッダースクリプト';
|
||||
$lang->about_header_script = 'HTMLの<header>と</header>の間に入れるコードを直接入力出来ます。<br /><script、<styleまたは<metaタグなどが利用出来ます。';
|
||||
|
||||
$lang->grant_access = 'アクセス権限';
|
||||
$lang->grant_manager = '管理権限';
|
||||
|
||||
$lang->grant_to_all = 'すべてのユーザー';
|
||||
$lang->grant_to_login_user = 'ログインユーザー';
|
||||
$lang->grant_to_site_user = '登録ユーザー';
|
||||
$lang->grant_to_group = '特定グループのユーザー';
|
||||
|
||||
$lang->cmd_add_shortcut = 'ショットカット追加';
|
||||
$lang->cmd_install = 'インストール';
|
||||
$lang->cmd_update = 'アップデート';
|
||||
$lang->cmd_manage_category = 'カテゴリ管理';
|
||||
$lang->cmd_manage_grant = '権限管理';
|
||||
$lang->cmd_manage_skin = 'スキン管理';
|
||||
$lang->cmd_manage_document = '書き込み管理';
|
||||
$lang->cmd_find_module = 'モジュール検索';
|
||||
$lang->cmd_find_langcode = '言語コード検索';
|
||||
|
||||
$lang->msg_new_module = 'モジュール作成';
|
||||
$lang->msg_update_module = 'モジュール修正';
|
||||
$lang->msg_module_name_exists = '既に存在するモジュール名です。他の名前を入力して下さい。';
|
||||
$lang->msg_category_is_null = '登録されているカテゴリがありません。';
|
||||
$lang->msg_grant_is_null = '登録された権限がありません。';
|
||||
$lang->msg_no_checked_document = '選択された書き込みがありません。';
|
||||
$lang->msg_move_failed = '移動することが出来ませんでした。';
|
||||
$lang->msg_cannot_delete_for_child = '下位カテゴリのカテゴリは削除することが出来ません。';
|
||||
$lang->msg_limit_mid ='モジュール名は「 半角英小文字+[半角英小文字+半角数字+_] 」のみ出来ます。';
|
||||
$lang->msg_extra_name_exists = '既に存在する拡張変数名です。他の拡張変数名を入力して下さい。';
|
||||
|
||||
$lang->about_browser_title = 'ブラウザのタイトルバーに表示される内容です。RSS/Trackbackでも使用します。';
|
||||
$lang->about_mid = 'モジュール名は「http://アドレス/?mid=モジュール名」のように直接呼び出せるパラメーター値です。<br />※英数の頭文字と[英数と_のみ]の組み合わせ (すべて半角、最大40文字) ';
|
||||
$lang->about_default = 'チェックすると、サイトに「mid値」なしでアクセスした場合、デフォルトで表示します。';
|
||||
$lang->about_module_category = "カテゴリで管理出来るようにします。モジュールのカテゴリの管理は、「<a href=\"./?module=admin&act=dispModuleAdminCategory\">モジュール管理 > モジュールカテゴリ</a>」にて行います。";
|
||||
$lang->about_description= '管理用として用いられる説明です。';
|
||||
$lang->about_header_text = 'モジュールのヘッダーに表示される内容です。(HTMLタグの使用可能)';
|
||||
$lang->about_footer_text = 'モジュールのフッターに表示される内容です。(HTMLタグの使用可能)';
|
||||
$lang->about_skin = 'モジュールのスキンを選択します。';
|
||||
$lang->about_use_category = 'チェックするとカテゴリ機能が使用出来ます。';
|
||||
$lang->about_list_count = '1ページ当たりに表示される書き込みの数が指定出来ます(デフォルト20個)。';
|
||||
$lang->about_search_list_count = 'お勧めの記事数を設定するにさらされるかのカテゴリ検索機能を使用する場合です。 (デフォルトは20 )';
|
||||
$lang->about_page_count = 'リストの下段に移動出来るページのリンク数が指定出来ます(デフォルト10個)。';
|
||||
$lang->about_admin_id = '該当するモジュールに対して最高権限を持つ管理者を指定することが出来ます。';
|
||||
$lang->about_grant = '特定権限の対象をすべて解除するとログインしていない会員ユーザまで権限が与えられます。';
|
||||
$lang->about_grant_deatil = '登録ユーザーとはcafeXEなど分譲型バーチャル(Virtual)サイトに登録した、ログインユーザーを意味します。';
|
||||
$lang->about_module = "XEは、基本ライブラリの他は、すべてモジュールで構成されています。モジュール管理用のモジュールはインストールされたすべてを表示し、管理出来るようにします。";
|
||||
$lang->about_extra_vars_default_value = '多重・単一選択などのデフォルト値が、複数必要な場合は、「, (コンマ)」で区切って追加することが出来ます。';
|
||||
$lang->about_search_virtual_site = 'バーチャル(Virtual)サイト(:cafeXEなど)のドメインを入力して検索して下さい。<br />バーチャル(Virtual)サイト以外のモジュールは内容を空にしてから検索します。(http://は省く)';
|
||||
$lang->about_extra_vars_eid_value = '拡張変数名を入力して下さい。 (英字+[英字+数字+_]のみ可能(全て半角))';
|
||||
$lang->about_langcode = '言語ごとに異なる設定をする場合、言語コード検索を利用して下さい。';
|
||||
$lang->about_file_extension= "%s ファイルのみ可能です。";
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/jp.lang.php
|
||||
* @author NHN (developers@xpressengine.com) 翻訳:RisaPapa、liahona、ミニミ
|
||||
* @brief 日本語言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->virtual_site = 'バーチャル(Virtual)サイト';
|
||||
$lang->module_list = 'モジュールリスト';
|
||||
$lang->module_index = 'モジュールインデックス';
|
||||
$lang->module_category = 'モジュールカテゴリ';
|
||||
$lang->module_info = '詳細';
|
||||
$lang->add_shortcut = '管理者メニューに追加する';
|
||||
$lang->module_action = '動作';
|
||||
$lang->module_maker = 'モジュール作者';
|
||||
$lang->module_license = 'ライセンス';
|
||||
$lang->module_history = '変更履歴 ';
|
||||
$lang->category_title = 'カテゴリ名';
|
||||
$lang->header_text = 'ヘッダー内容';
|
||||
$lang->footer_text = 'フッター内容';
|
||||
$lang->use_category = 'カテゴリ使用';
|
||||
$lang->category_title = 'カテゴリ名';
|
||||
$lang->checked_count = '選択された書き込み数';
|
||||
$lang->skin_default_info = 'スキン基本情報';
|
||||
$lang->skin_author = 'スキン作者';
|
||||
$lang->skin_license = 'ライセンス';
|
||||
$lang->skin_history = '変更内容';
|
||||
$lang->module_copy = 'モジュールコピー';
|
||||
$lang->module_selector = 'モジュールセレクター';
|
||||
$lang->do_selected = '選択したものを...';
|
||||
$lang->bundle_setup = '一括基本設定';
|
||||
$lang->bundle_addition_setup = '一括追加設定';
|
||||
$lang->bundle_grant_setup = '一括権限設定';
|
||||
$lang->lang_code = '言語コード';
|
||||
$lang->filebox = 'ファイルボックス';
|
||||
|
||||
$lang->access_type = 'アクセスタイプ';
|
||||
$lang->access_domain = 'Doaminアクセス';
|
||||
$lang->access_vid = 'Site IDアクセス';
|
||||
$lang->about_domain = '複数のホームページを作成するためには、「オリジナルドメイン」や「サブ ドメイン」のような専用のドメインが必要です。<br />また、 XEのインストールパスも一緒に記入して下さい。<br />ex) www.xpressengine.com/xe';
|
||||
$lang->about_vid = '別の違うドメインではなく、「http://XEアドレス/ID」へのアクセスが可能です。この際、モジュール名(mid)と重複しないように登録して下さい。<br/>必ず、頭文字は半角英文字にし、「(すべて半角の)英数字・_ 」 だけの組み合わせで入力して下さい。';
|
||||
$lang->msg_already_registed_vid = '既に登録されたサイトIDです。掲示板などのmidと重複は不可です。異なるIDを入力して下さい。';
|
||||
$lang->msg_already_registed_domain = '既に登録されているドメインです。異なるドメインを利用して下さい。';
|
||||
|
||||
$lang->header_script = 'ヘッダースクリプト';
|
||||
$lang->about_header_script = 'HTMLの<header>と</header>の間に入れるコードを直接入力出来ます。<br /><script、<styleまたは<metaタグなどが利用出来ます。';
|
||||
|
||||
$lang->grant_access = 'アクセス権限';
|
||||
$lang->grant_manager = '管理権限';
|
||||
|
||||
$lang->grant_to_all = 'すべてのユーザー';
|
||||
$lang->grant_to_login_user = 'ログインユーザー';
|
||||
$lang->grant_to_site_user = '登録ユーザー';
|
||||
$lang->grant_to_group = '特定グループのユーザー';
|
||||
|
||||
$lang->cmd_add_shortcut = 'ショットカット追加';
|
||||
$lang->cmd_install = 'インストール';
|
||||
$lang->cmd_update = 'アップデート';
|
||||
$lang->cmd_manage_category = 'カテゴリ管理';
|
||||
$lang->cmd_manage_grant = '権限管理';
|
||||
$lang->cmd_manage_skin = 'スキン管理';
|
||||
$lang->cmd_manage_document = '書き込み管理';
|
||||
$lang->cmd_find_module = 'モジュール検索';
|
||||
$lang->cmd_find_langcode = '言語コード検索';
|
||||
|
||||
$lang->msg_new_module = 'モジュール作成';
|
||||
$lang->msg_update_module = 'モジュール修正';
|
||||
$lang->msg_module_name_exists = '既に存在するモジュール名です。他の名前を入力して下さい。';
|
||||
$lang->msg_category_is_null = '登録されているカテゴリがありません。';
|
||||
$lang->msg_grant_is_null = '登録された権限がありません。';
|
||||
$lang->msg_no_checked_document = '選択された書き込みがありません。';
|
||||
$lang->msg_move_failed = '移動することが出来ませんでした。';
|
||||
$lang->msg_cannot_delete_for_child = '下位カテゴリのカテゴリは削除することが出来ません。';
|
||||
$lang->msg_limit_mid ='モジュール名は「 半角英小文字+[半角英小文字+半角数字+_] 」のみ出来ます。';
|
||||
$lang->msg_extra_name_exists = '既に存在する拡張変数名です。他の拡張変数名を入力して下さい。';
|
||||
|
||||
$lang->about_browser_title = 'ブラウザのタイトルバーに表示される内容です。RSS/Trackbackでも使用します。';
|
||||
$lang->about_mid = 'モジュール名は「http://アドレス/?mid=モジュール名」のように直接呼び出せるパラメーター値です。<br />※英数の頭文字と[英数と_のみ]の組み合わせ (すべて半角、最大40文字) ';
|
||||
$lang->about_default = 'チェックすると、サイトに「mid値」なしでアクセスした場合、デフォルトで表示します。';
|
||||
$lang->about_module_category = "カテゴリで管理出来るようにします。モジュールのカテゴリの管理は、「<a href=\"./?module=admin&act=dispModuleAdminCategory\">モジュール管理 > モジュールカテゴリ</a>」にて行います。";
|
||||
$lang->about_description= '管理用として用いられる説明です。';
|
||||
$lang->about_header_text = 'モジュールのヘッダーに表示される内容です。(HTMLタグの使用可能)';
|
||||
$lang->about_footer_text = 'モジュールのフッターに表示される内容です。(HTMLタグの使用可能)';
|
||||
$lang->about_skin = 'モジュールのスキンを選択します。';
|
||||
$lang->about_use_category = 'チェックするとカテゴリ機能が使用出来ます。';
|
||||
$lang->about_list_count = '1ページ当たりに表示される書き込みの数が指定出来ます(デフォルト20個)。';
|
||||
$lang->about_search_list_count = 'お勧めの記事数を設定するにさらされるかのカテゴリ検索機能を使用する場合です。 (デフォルトは20 )';
|
||||
$lang->about_page_count = 'リストの下段に移動出来るページのリンク数が指定出来ます(デフォルト10個)。';
|
||||
$lang->about_admin_id = '該当するモジュールに対して最高権限を持つ管理者を指定することが出来ます。';
|
||||
$lang->about_grant = '特定権限の対象をすべて解除するとログインしていない会員ユーザまで権限が与えられます。';
|
||||
$lang->about_grant_deatil = '登録ユーザーとはcafeXEなど分譲型バーチャル(Virtual)サイトに登録した、ログインユーザーを意味します。';
|
||||
$lang->about_module = "XEは、基本ライブラリの他は、すべてモジュールで構成されています。モジュール管理用のモジュールはインストールされたすべてを表示し、管理出来るようにします。";
|
||||
$lang->about_extra_vars_default_value = '多重・単一選択などのデフォルト値が、複数必要な場合は、「, (コンマ)」で区切って追加することが出来ます。';
|
||||
$lang->about_search_virtual_site = 'バーチャル(Virtual)サイト(:cafeXEなど)のドメインを入力して検索して下さい。<br />バーチャル(Virtual)サイト以外のモジュールは内容を空にしてから検索します。(http://は省く)';
|
||||
$lang->about_extra_vars_eid_value = '拡張変数名を入力して下さい。 (英字+[英字+数字+_]のみ可能(全て半角))';
|
||||
$lang->about_langcode = '言語ごとに異なる設定をする場合、言語コード検索を利用して下さい。';
|
||||
$lang->about_file_extension= "%s ファイルのみ可能です。";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,98 +1,98 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/ko.lang.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief 한국어 언어팩
|
||||
**/
|
||||
|
||||
$lang->virtual_site = '가상 사이트';
|
||||
$lang->module_list = '모듈 목록';
|
||||
$lang->module_index = '모듈 목록';
|
||||
$lang->module_category = '모듈 분류';
|
||||
$lang->module_info = '모듈 정보';
|
||||
$lang->add_shortcut = '관리자 메뉴에 추가';
|
||||
$lang->module_action = '동작';
|
||||
$lang->module_maker = '모듈 제작자';
|
||||
$lang->module_license = '라이선스';
|
||||
$lang->module_history = '변경 이력 ';
|
||||
$lang->category_title = '분류 이름';
|
||||
$lang->header_text = '상단 내용';
|
||||
$lang->footer_text = '하단 내용';
|
||||
$lang->use_category = '분류 사용';
|
||||
$lang->category_title = '분류명';
|
||||
$lang->checked_count = '선택된 글 수';
|
||||
$lang->skin_default_info = '스킨 기본정보';
|
||||
$lang->skin_author = '스킨 제작자';
|
||||
$lang->skin_license = '라이선스';
|
||||
$lang->skin_history = '변경 이력';
|
||||
$lang->module_copy = '모듈 복사';
|
||||
$lang->module_selector = '모듈 선택기';
|
||||
$lang->do_selected = '선택된 것들을...';
|
||||
$lang->bundle_setup = '일괄 기본 설정';
|
||||
$lang->bundle_addition_setup = '일괄 추가 설정';
|
||||
$lang->bundle_grant_setup = '일괄 권한 설정';
|
||||
$lang->lang_code = '언어 코드';
|
||||
$lang->filebox = '파일박스';
|
||||
|
||||
$lang->access_type = '접속 방법';
|
||||
$lang->access_domain = 'Domain 접속';
|
||||
$lang->access_vid = 'Site ID 접속';
|
||||
$lang->about_domain = '1개 이상의 사이트를 만들기 위해서는 전용 도메인이 있어야 합니다.<br/>독립 도메인이나 서브 도메인이 있으면 되고 XE가 설치된 경로까지 같이 넣어주세요.<br />예) www.xpressengine.com/xe';
|
||||
$lang->about_vid = '별도의 도메인이 아닌 http://XE주소/ID 로 접속할 수 있습니다. 모듈명(mid)과 중복될 수 없습니다.<br/>첫 글자는 영문으로 시작해야 하고 영문과 숫자 그리고 _ 만 사용할 수 있습니다';
|
||||
$lang->msg_already_registed_vid = '이미 등록된 사이트 ID 입니다. 게시판 등의 mid와도 중복이 되지 않습니다. 다른 ID를 입력해주세요.';
|
||||
$lang->msg_already_registed_domain = '이미 등록된 도메인입니다. 다른 도메인을 사용해주세요';
|
||||
|
||||
$lang->header_script = '헤더 스크립트';
|
||||
$lang->about_header_script = 'HTML의 <head>와 </head> 사이에 들어가는 코드를 직접 입력할 수 있습니다.<br /><script, <style 또는 <meta 태그 등을 이용하실 수 있습니다';
|
||||
|
||||
$lang->grant_access = '접근 권한';
|
||||
$lang->grant_manager = '관리 권한';
|
||||
|
||||
$lang->grant_to_all = '모든 사용자';
|
||||
$lang->grant_to_login_user = '로그인 사용자';
|
||||
$lang->grant_to_site_user = '가입한 사용자';
|
||||
$lang->grant_to_group = '특정 그룹 사용자';
|
||||
|
||||
$lang->cmd_add_shortcut = '바로가기 추가';
|
||||
$lang->cmd_install = '설치';
|
||||
$lang->cmd_update = '업데이트';
|
||||
$lang->cmd_manage_category = '분류 관리';
|
||||
$lang->cmd_manage_grant = '권한 관리';
|
||||
$lang->cmd_manage_skin = '스킨 관리';
|
||||
$lang->cmd_manage_document = '게시글 관리';
|
||||
$lang->cmd_find_module = '모듈 찾기';
|
||||
$lang->cmd_find_langcode = '언어 코드 찾기';
|
||||
|
||||
$lang->msg_new_module = '모듈 생성';
|
||||
$lang->msg_update_module = '모듈 수정';
|
||||
$lang->msg_module_name_exists = '이미 존재하는 모듈 이름입니다. 다른 이름을 입력해주세요.';
|
||||
$lang->msg_category_is_null = '등록된 분류가 없습니다.';
|
||||
$lang->msg_grant_is_null = '등록된 권한 대상이 없습니다.';
|
||||
$lang->msg_no_checked_document = '선택된 게시물이 없습니다.';
|
||||
$lang->msg_move_failed = '이동 실패하였습니다.';
|
||||
$lang->msg_cannot_delete_for_child = '하부 분류가 있는 분류는 삭제하실 수 없습니다.';
|
||||
$lang->msg_limit_mid ='모듈 이름은 영문+[영문+숫자+_] 만 가능합니다.';
|
||||
$lang->msg_extra_name_exists = '이미 존재하는 확장 변수 이름입니다. 다른 이름을 입력해주세요.';
|
||||
|
||||
$lang->about_browser_title = '브라우저 제목에 나타나는 값입니다. RSS/Trackback에서도 사용됩니다.';
|
||||
$lang->about_mid = '모듈 이름은 http://주소/?mid=모듈이름 처럼 직접 호출할 수 있는 값입니다. (영문+[영문+숫자+_] 만 가능. 최대 40 글자)';
|
||||
$lang->about_default = '선택하시면 사이트에 mid값 없이 접속하였을 경우 기본으로 보여줍니다.';
|
||||
$lang->about_module_category = "분류를 통한 관리를 할 수 있도록 합니다. 모듈 분류 관리는 <a href=\"./?module=admin&act=dispModuleAdminCategory\">모듈관리 > 모듈분류</a>에서 하실 수 있습니다.";
|
||||
$lang->about_description= '관리용으로 사용되는 설명입니다.';
|
||||
$lang->about_header_text = '모듈 상단에 표시되는 내용입니다. (HTML 태그 사용 가능)';
|
||||
$lang->about_footer_text = '모듈 하단에 표시되는 내용입니다. (HTML 태그 사용 가능)';
|
||||
$lang->about_skin = '모듈 스킨을 선택하실 수 있습니다.';
|
||||
$lang->about_use_category = '선택하시면 분류 기능을 사용할 수 있습니다.';
|
||||
$lang->about_list_count = '한 페이지에 표시될 글 수를 지정하실 수 있습니다. (기본 20개)';
|
||||
$lang->about_search_list_count = '검색, 카테고리 선택 등을 할 경우 표시될 글 수를 지정하실 수 있습니다. (기본 20개)';
|
||||
$lang->about_page_count = '목록 하단, 페이지를 이동하는 링크 수를 지정하실 수 있습니다. (기본 10개)';
|
||||
$lang->about_admin_id = '해당 모듈에 대해 최고 권한을 가지는 관리자를 지정할 수 있습니다.';
|
||||
$lang->about_grant = '특정 권한의 대상을 모두 해제하면 로그인하지 않은 회원까지 권한을 가질 수 있습니다.';
|
||||
$lang->about_grant_deatil = '가입한 사용자는 cafeXE 등 분양형 가상 사이트에 가입을 한 로그인 사용자를 의미합니다.';
|
||||
$lang->about_module = "XE는 기본 라이브러리를 제외한 나머지는 모두 모듈로 구성되어 있습니다.\n모듈 관리 모듈은 설치된 모든 모듈을 보여주고 관리를 돕습니다.";
|
||||
$lang->about_extra_vars_default_value = '다중/단일 선택 등 기본 값이 여러 개가 필요한 경우 , (콤마)로 연결하시면 됩니다.';
|
||||
$lang->about_search_virtual_site = '가상 사이트(예:cafeXE) 도메인을 입력하신 후 검색하세요.<br/>가상 사이트 이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)';
|
||||
$lang->about_extra_vars_eid_value = '확장 변수의 이름을 적어주세요. (영문+[영문+숫자+_] 만 가능)';
|
||||
$lang->about_langcode = '언어별로 다르게 설정하고 싶으시면 언어 코드 찾기를 이용해주세요.';
|
||||
$lang->about_file_extension= "%s 파일만 가능합니다.";
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/ko.lang.php
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief 한국어 언어팩
|
||||
**/
|
||||
|
||||
$lang->virtual_site = '가상 사이트';
|
||||
$lang->module_list = '모듈 목록';
|
||||
$lang->module_index = '모듈 목록';
|
||||
$lang->module_category = '모듈 분류';
|
||||
$lang->module_info = '모듈 정보';
|
||||
$lang->add_shortcut = '관리자 메뉴에 추가';
|
||||
$lang->module_action = '동작';
|
||||
$lang->module_maker = '모듈 제작자';
|
||||
$lang->module_license = '라이선스';
|
||||
$lang->module_history = '변경 이력 ';
|
||||
$lang->category_title = '분류 이름';
|
||||
$lang->header_text = '상단 내용';
|
||||
$lang->footer_text = '하단 내용';
|
||||
$lang->use_category = '분류 사용';
|
||||
$lang->category_title = '분류명';
|
||||
$lang->checked_count = '선택된 글 수';
|
||||
$lang->skin_default_info = '스킨 기본정보';
|
||||
$lang->skin_author = '스킨 제작자';
|
||||
$lang->skin_license = '라이선스';
|
||||
$lang->skin_history = '변경 이력';
|
||||
$lang->module_copy = '모듈 복사';
|
||||
$lang->module_selector = '모듈 선택기';
|
||||
$lang->do_selected = '선택된 것들을...';
|
||||
$lang->bundle_setup = '일괄 기본 설정';
|
||||
$lang->bundle_addition_setup = '일괄 추가 설정';
|
||||
$lang->bundle_grant_setup = '일괄 권한 설정';
|
||||
$lang->lang_code = '언어 코드';
|
||||
$lang->filebox = '파일박스';
|
||||
|
||||
$lang->access_type = '접속 방법';
|
||||
$lang->access_domain = 'Domain 접속';
|
||||
$lang->access_vid = 'Site ID 접속';
|
||||
$lang->about_domain = '1개 이상의 사이트를 만들기 위해서는 전용 도메인이 있어야 합니다.<br/>독립 도메인이나 서브 도메인이 있으면 되고 XE가 설치된 경로까지 같이 넣어주세요.<br />예) www.xpressengine.com/xe';
|
||||
$lang->about_vid = '별도의 도메인이 아닌 http://XE주소/ID 로 접속할 수 있습니다. 모듈명(mid)과 중복될 수 없습니다.<br/>첫 글자는 영문으로 시작해야 하고 영문과 숫자 그리고 _ 만 사용할 수 있습니다';
|
||||
$lang->msg_already_registed_vid = '이미 등록된 사이트 ID 입니다. 게시판 등의 mid와도 중복이 되지 않습니다. 다른 ID를 입력해주세요.';
|
||||
$lang->msg_already_registed_domain = '이미 등록된 도메인입니다. 다른 도메인을 사용해주세요';
|
||||
|
||||
$lang->header_script = '헤더 스크립트';
|
||||
$lang->about_header_script = 'HTML의 <head>와 </head> 사이에 들어가는 코드를 직접 입력할 수 있습니다.<br /><script, <style 또는 <meta 태그 등을 이용하실 수 있습니다';
|
||||
|
||||
$lang->grant_access = '접근 권한';
|
||||
$lang->grant_manager = '관리 권한';
|
||||
|
||||
$lang->grant_to_all = '모든 사용자';
|
||||
$lang->grant_to_login_user = '로그인 사용자';
|
||||
$lang->grant_to_site_user = '가입한 사용자';
|
||||
$lang->grant_to_group = '특정 그룹 사용자';
|
||||
|
||||
$lang->cmd_add_shortcut = '바로가기 추가';
|
||||
$lang->cmd_install = '설치';
|
||||
$lang->cmd_update = '업데이트';
|
||||
$lang->cmd_manage_category = '분류 관리';
|
||||
$lang->cmd_manage_grant = '권한 관리';
|
||||
$lang->cmd_manage_skin = '스킨 관리';
|
||||
$lang->cmd_manage_document = '게시글 관리';
|
||||
$lang->cmd_find_module = '모듈 찾기';
|
||||
$lang->cmd_find_langcode = '언어 코드 찾기';
|
||||
|
||||
$lang->msg_new_module = '모듈 생성';
|
||||
$lang->msg_update_module = '모듈 수정';
|
||||
$lang->msg_module_name_exists = '이미 존재하는 모듈 이름입니다. 다른 이름을 입력해주세요.';
|
||||
$lang->msg_category_is_null = '등록된 분류가 없습니다.';
|
||||
$lang->msg_grant_is_null = '등록된 권한 대상이 없습니다.';
|
||||
$lang->msg_no_checked_document = '선택된 게시물이 없습니다.';
|
||||
$lang->msg_move_failed = '이동 실패하였습니다.';
|
||||
$lang->msg_cannot_delete_for_child = '하부 분류가 있는 분류는 삭제하실 수 없습니다.';
|
||||
$lang->msg_limit_mid ='모듈 이름은 영문+[영문+숫자+_] 만 가능합니다.';
|
||||
$lang->msg_extra_name_exists = '이미 존재하는 확장 변수 이름입니다. 다른 이름을 입력해주세요.';
|
||||
|
||||
$lang->about_browser_title = '브라우저 제목에 나타나는 값입니다. RSS/Trackback에서도 사용됩니다.';
|
||||
$lang->about_mid = '모듈 이름은 http://주소/?mid=모듈이름 처럼 직접 호출할 수 있는 값입니다. (영문+[영문+숫자+_] 만 가능. 최대 40 글자)';
|
||||
$lang->about_default = '선택하시면 사이트에 mid값 없이 접속하였을 경우 기본으로 보여줍니다.';
|
||||
$lang->about_module_category = "분류를 통한 관리를 할 수 있도록 합니다. 모듈 분류 관리는 <a href=\"./?module=admin&act=dispModuleAdminCategory\">모듈관리 > 모듈분류</a>에서 하실 수 있습니다.";
|
||||
$lang->about_description= '관리용으로 사용되는 설명입니다.';
|
||||
$lang->about_header_text = '모듈 상단에 표시되는 내용입니다. (HTML 태그 사용 가능)';
|
||||
$lang->about_footer_text = '모듈 하단에 표시되는 내용입니다. (HTML 태그 사용 가능)';
|
||||
$lang->about_skin = '모듈 스킨을 선택하실 수 있습니다.';
|
||||
$lang->about_use_category = '선택하시면 분류 기능을 사용할 수 있습니다.';
|
||||
$lang->about_list_count = '한 페이지에 표시될 글 수를 지정하실 수 있습니다. (기본 20개)';
|
||||
$lang->about_search_list_count = '검색, 카테고리 선택 등을 할 경우 표시될 글 수를 지정하실 수 있습니다. (기본 20개)';
|
||||
$lang->about_page_count = '목록 하단, 페이지를 이동하는 링크 수를 지정하실 수 있습니다. (기본 10개)';
|
||||
$lang->about_admin_id = '해당 모듈에 대해 최고 권한을 가지는 관리자를 지정할 수 있습니다.';
|
||||
$lang->about_grant = '특정 권한의 대상을 모두 해제하면 로그인하지 않은 회원까지 권한을 가질 수 있습니다.';
|
||||
$lang->about_grant_deatil = '가입한 사용자는 cafeXE 등 분양형 가상 사이트에 가입을 한 로그인 사용자를 의미합니다.';
|
||||
$lang->about_module = "XE는 기본 라이브러리를 제외한 나머지는 모두 모듈로 구성되어 있습니다.\n모듈 관리 모듈은 설치된 모든 모듈을 보여주고 관리를 돕습니다.";
|
||||
$lang->about_extra_vars_default_value = '다중/단일 선택 등 기본 값이 여러 개가 필요한 경우 , (콤마)로 연결하시면 됩니다.';
|
||||
$lang->about_search_virtual_site = '가상 사이트(예:cafeXE) 도메인을 입력하신 후 검색하세요.<br/>가상 사이트 이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)';
|
||||
$lang->about_extra_vars_eid_value = '확장 변수의 이름을 적어주세요. (영문+[영문+숫자+_] 만 가능)';
|
||||
$lang->about_langcode = '언어별로 다르게 설정하고 싶으시면 언어 코드 찾기를 이용해주세요.';
|
||||
$lang->about_file_extension= "%s 파일만 가능합니다.";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,99 +1,99 @@
|
|||
<?php
|
||||
/**
|
||||
* @file ru.lang.php
|
||||
* @author zero <zero@nzeo.com> | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
|
||||
* @brief Russian basic language pack
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "Список модулей";
|
||||
$lang->module_index = "Список модулей";
|
||||
$lang->module_category = "Категория модуля";
|
||||
$lang->module_info = "Информация";
|
||||
$lang->add_shortcut = "Добавить ярлыки";
|
||||
$lang->module_action = "Действия";
|
||||
$lang->module_maker = "Разработчик модуля";
|
||||
$lang->module_license = 'Лицензия';
|
||||
$lang->module_history = "История обновлений";
|
||||
$lang->category_title = "Название категории";
|
||||
$lang->header_text = 'Верхний колонтитул';
|
||||
$lang->footer_text = 'Нижний колонтитул';
|
||||
$lang->use_category = 'Включить категорию';
|
||||
$lang->category_title = 'Название категории';
|
||||
$lang->checked_count = 'Число выбранных статей'; // translator's note: возможно "checked" следует перевести как "проверенных"
|
||||
$lang->skin_default_info = 'Информация стандартного скина';
|
||||
$lang->skin_author = 'Разработчик скина';
|
||||
$lang->skin_license = 'License';
|
||||
$lang->skin_history = 'История обновлений';
|
||||
$lang->module_selector = "Module Selector";
|
||||
$lang->do_selected = "Выбранные...";
|
||||
$lang->bundle_setup = "일괄 기본 설정";
|
||||
$lang->bundle_addition_setup = "일괄 추가 설정";
|
||||
$lang->bundle_grant_setup = "일괄 권한 설정";
|
||||
$lang->lang_code = "Код языка";
|
||||
$lang->filebox = "Файлбокс";
|
||||
|
||||
$lang->access_type = 'Способ соединения';
|
||||
$lang->access_domain = 'Domain соединения';
|
||||
$lang->access_vid = 'Site ID соединение';
|
||||
$lang->about_vid = '별도의 도메인이 아닌 http://XE주소/ID 로 접속할 수 있습니다. 모듈명(mid)와 중복될 수 없습니다.<br/>첫글자는 영문으로 시작해야 하고 영문과 숫자 그리고 _ 만 사용할 수 있습니다';
|
||||
$lang->msg_already_registed_vid = '이미 등록된 사이트 ID 입니다. 게시판등의 mid와도 중복이 되지 않습니다. 다른 ID를 입력해주세요.';
|
||||
$lang->msg_already_registed_domain = '이미 등록된 도메인입니다. 다른 도메인을 사용해주세요';
|
||||
|
||||
$lang->module_copy = "Копировать модуль";
|
||||
|
||||
$lang->header_script = "Скрипт Header";
|
||||
$lang->about_header_script = "html의 <header>와 </header> 사이에 들어가는 코드를 직접 입력할 수 있습니다.<br /><script, <style 또는 <meta 태그등을 이용하실 수 있습니다";
|
||||
|
||||
$lang->grant_access = "Access";
|
||||
$lang->grant_manager = "Management";
|
||||
|
||||
$lang->grant_to_all = "All users";
|
||||
$lang->grant_to_login_user = "Logged users";
|
||||
$lang->grant_to_site_user = "Joined users";
|
||||
$lang->grant_to_group = "Specification group users";
|
||||
|
||||
$lang->cmd_add_shortcut = "Добавить ярлык";
|
||||
$lang->cmd_install = "Установить";
|
||||
$lang->cmd_update = "Обновить";
|
||||
$lang->cmd_manage_category = 'Управление категориями';
|
||||
$lang->cmd_manage_grant = 'Управление правами доступа';
|
||||
$lang->cmd_manage_skin = 'Управление скинами';
|
||||
$lang->cmd_manage_document = 'Управление статьями';
|
||||
$lang->cmd_find_module = 'Искать модуль';
|
||||
$lang->cmd_find_langcode = 'Find lang code';
|
||||
|
||||
$lang->msg_new_module = "Создать новый модуль";
|
||||
$lang->msg_update_module = "Изменить модуль";
|
||||
$lang->msg_module_name_exists = "Имя уже существует. Пожалуйста, попробуйте другое";
|
||||
$lang->msg_category_is_null = 'Зарегистрированной категории не существует.';
|
||||
$lang->msg_grant_is_null = 'Списка для управления правами доступа не существует.';
|
||||
$lang->msg_no_checked_document = 'Нет выбранных статей.'; // translator's note: выше...
|
||||
$lang->msg_move_failed = 'Невозможно переместить';
|
||||
$lang->msg_cannot_delete_for_child = 'Невозможно удалить категорию, имеющую дочерние категории.';
|
||||
$lang->msg_limit_mid ='모듈이름은 영문+[영문+숫자+_] 만 가능합니다.';
|
||||
$lang->msg_extra_name_exists = '이미 존재하는 확장변수 이름입니다. 다른 이름을 입력해주세요.';
|
||||
|
||||
$lang->about_browser_title = "Это будет показано в заголовке браузера. Также, это будет использоваться в RSS/Трекбеке.";
|
||||
$lang->about_mid = "Имя модуля будет использовано как http://address/?mid=Имя_модуля.\n(только латиница, цифры и символ подчеркивания(_) разрешены. The maximum length is 40.)";
|
||||
$lang->about_default = "Если выбрано, модуль будет главным на сайте. Для доступа не нужен будет идентификатор модуля.";
|
||||
$lang->about_module_category = "Это позволяет Вам управлять посредством категорий модулей.\nURL для менеджера модулей <a href=\"./?module=admin&act=dispModuleAdminCategory\">Manage module > Категория Модуля </a>.";
|
||||
$lang->about_description= 'Это описание только для менеджера.';
|
||||
$lang->about_default = 'Если выбрано, этот модуль будет показан, когда пользователи входят на сайт без идентификатора модуля (mid=NoValue).';
|
||||
$lang->about_header_text = 'Это содержимое будет показано сверху модуля. (HTML разрешен)';
|
||||
$lang->about_footer_text = 'Это содержимое будет показано снизу модуля. (HTML разрешен)';
|
||||
$lang->about_skin = 'Вы можете выбрать скин модуля.';
|
||||
$lang->about_use_category = 'Если выбрано, функция категорий будет включена.';
|
||||
$lang->about_list_count = 'Вы можете установить лимит показа статей на страницу. (по умолчанию: 20)';
|
||||
$lang->about_search_list_count = '검색 또는 카테고리 선택등을 할 경우 표시될 글의 수를 지정하실 수 있습니다. 기본(20개)';
|
||||
$lang->about_page_count = 'Вы можете установить число страниц внизу. (по умолчанию: 10)';
|
||||
$lang->about_admin_id = 'Вы можете разрешить менеджеру иметь полные права доступа к этому модулю.\nВы можете ввести несколько ID, используя ';
|
||||
$lang->about_grant = 'Если Вы отключите все права доступа для отдельного объекта, не прошедшие процедуру входа на сайт пользователи получат доступ.';
|
||||
$lang->about_grant_deatil = '가입한 사용자는 cafeXE등 분양형 가상 사이트에 가입을 한 로그인 사용자를 의미합니다';
|
||||
$lang->about_module = "XE состоит из модулей, за исключением базовой библиотеки.\n Управление модулем покажет все установленные модули и поможет управлять ими.";
|
||||
|
||||
$lang->about_extra_vars_default_value = 'Если нужно несколько значений по умолчанию, разделите их запятыми(,).';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
$lang->about_langcode = "언어별로 다르게 설정하고 싶으시면 언어코드 찾기를 이용해주세요";
|
||||
$lang->about_file_extension= "%s 파일만 가능합니다.";
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file ru.lang.php
|
||||
* @author NHN (developers@xpressengine.com) | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
|
||||
* @brief Russian basic language pack
|
||||
**/
|
||||
|
||||
$lang->virtual_site = "Virtual Site";
|
||||
$lang->module_list = "Список модулей";
|
||||
$lang->module_index = "Список модулей";
|
||||
$lang->module_category = "Категория модуля";
|
||||
$lang->module_info = "Информация";
|
||||
$lang->add_shortcut = "Добавить ярлыки";
|
||||
$lang->module_action = "Действия";
|
||||
$lang->module_maker = "Разработчик модуля";
|
||||
$lang->module_license = 'Лицензия';
|
||||
$lang->module_history = "История обновлений";
|
||||
$lang->category_title = "Название категории";
|
||||
$lang->header_text = 'Верхний колонтитул';
|
||||
$lang->footer_text = 'Нижний колонтитул';
|
||||
$lang->use_category = 'Включить категорию';
|
||||
$lang->category_title = 'Название категории';
|
||||
$lang->checked_count = 'Число выбранных статей'; // translator's note: возможно "checked" следует перевести как "проверенных"
|
||||
$lang->skin_default_info = 'Информация стандартного скина';
|
||||
$lang->skin_author = 'Разработчик скина';
|
||||
$lang->skin_license = 'License';
|
||||
$lang->skin_history = 'История обновлений';
|
||||
$lang->module_selector = "Module Selector";
|
||||
$lang->do_selected = "Выбранные...";
|
||||
$lang->bundle_setup = "일괄 기본 설정";
|
||||
$lang->bundle_addition_setup = "일괄 추가 설정";
|
||||
$lang->bundle_grant_setup = "일괄 권한 설정";
|
||||
$lang->lang_code = "Код языка";
|
||||
$lang->filebox = "Файлбокс";
|
||||
|
||||
$lang->access_type = 'Способ соединения';
|
||||
$lang->access_domain = 'Domain соединения';
|
||||
$lang->access_vid = 'Site ID соединение';
|
||||
$lang->about_vid = '별도의 도메인이 아닌 http://XE주소/ID 로 접속할 수 있습니다. 모듈명(mid)와 중복될 수 없습니다.<br/>첫글자는 영문으로 시작해야 하고 영문과 숫자 그리고 _ 만 사용할 수 있습니다';
|
||||
$lang->msg_already_registed_vid = '이미 등록된 사이트 ID 입니다. 게시판등의 mid와도 중복이 되지 않습니다. 다른 ID를 입력해주세요.';
|
||||
$lang->msg_already_registed_domain = '이미 등록된 도메인입니다. 다른 도메인을 사용해주세요';
|
||||
|
||||
$lang->module_copy = "Копировать модуль";
|
||||
|
||||
$lang->header_script = "Скрипт Header";
|
||||
$lang->about_header_script = "html의 <header>와 </header> 사이에 들어가는 코드를 직접 입력할 수 있습니다.<br /><script, <style 또는 <meta 태그등을 이용하실 수 있습니다";
|
||||
|
||||
$lang->grant_access = "Access";
|
||||
$lang->grant_manager = "Management";
|
||||
|
||||
$lang->grant_to_all = "All users";
|
||||
$lang->grant_to_login_user = "Logged users";
|
||||
$lang->grant_to_site_user = "Joined users";
|
||||
$lang->grant_to_group = "Specification group users";
|
||||
|
||||
$lang->cmd_add_shortcut = "Добавить ярлык";
|
||||
$lang->cmd_install = "Установить";
|
||||
$lang->cmd_update = "Обновить";
|
||||
$lang->cmd_manage_category = 'Управление категориями';
|
||||
$lang->cmd_manage_grant = 'Управление правами доступа';
|
||||
$lang->cmd_manage_skin = 'Управление скинами';
|
||||
$lang->cmd_manage_document = 'Управление статьями';
|
||||
$lang->cmd_find_module = 'Искать модуль';
|
||||
$lang->cmd_find_langcode = 'Find lang code';
|
||||
|
||||
$lang->msg_new_module = "Создать новый модуль";
|
||||
$lang->msg_update_module = "Изменить модуль";
|
||||
$lang->msg_module_name_exists = "Имя уже существует. Пожалуйста, попробуйте другое";
|
||||
$lang->msg_category_is_null = 'Зарегистрированной категории не существует.';
|
||||
$lang->msg_grant_is_null = 'Списка для управления правами доступа не существует.';
|
||||
$lang->msg_no_checked_document = 'Нет выбранных статей.'; // translator's note: выше...
|
||||
$lang->msg_move_failed = 'Невозможно переместить';
|
||||
$lang->msg_cannot_delete_for_child = 'Невозможно удалить категорию, имеющую дочерние категории.';
|
||||
$lang->msg_limit_mid ='모듈이름은 영문+[영문+숫자+_] 만 가능합니다.';
|
||||
$lang->msg_extra_name_exists = '이미 존재하는 확장변수 이름입니다. 다른 이름을 입력해주세요.';
|
||||
|
||||
$lang->about_browser_title = "Это будет показано в заголовке браузера. Также, это будет использоваться в RSS/Трекбеке.";
|
||||
$lang->about_mid = "Имя модуля будет использовано как http://address/?mid=Имя_модуля.\n(только латиница, цифры и символ подчеркивания(_) разрешены. The maximum length is 40.)";
|
||||
$lang->about_default = "Если выбрано, модуль будет главным на сайте. Для доступа не нужен будет идентификатор модуля.";
|
||||
$lang->about_module_category = "Это позволяет Вам управлять посредством категорий модулей.\nURL для менеджера модулей <a href=\"./?module=admin&act=dispModuleAdminCategory\">Manage module > Категория Модуля </a>.";
|
||||
$lang->about_description= 'Это описание только для менеджера.';
|
||||
$lang->about_default = 'Если выбрано, этот модуль будет показан, когда пользователи входят на сайт без идентификатора модуля (mid=NoValue).';
|
||||
$lang->about_header_text = 'Это содержимое будет показано сверху модуля. (HTML разрешен)';
|
||||
$lang->about_footer_text = 'Это содержимое будет показано снизу модуля. (HTML разрешен)';
|
||||
$lang->about_skin = 'Вы можете выбрать скин модуля.';
|
||||
$lang->about_use_category = 'Если выбрано, функция категорий будет включена.';
|
||||
$lang->about_list_count = 'Вы можете установить лимит показа статей на страницу. (по умолчанию: 20)';
|
||||
$lang->about_search_list_count = '검색 또는 카테고리 선택등을 할 경우 표시될 글의 수를 지정하실 수 있습니다. 기본(20개)';
|
||||
$lang->about_page_count = 'Вы можете установить число страниц внизу. (по умолчанию: 10)';
|
||||
$lang->about_admin_id = 'Вы можете разрешить менеджеру иметь полные права доступа к этому модулю.\nВы можете ввести несколько ID, используя ';
|
||||
$lang->about_grant = 'Если Вы отключите все права доступа для отдельного объекта, не прошедшие процедуру входа на сайт пользователи получат доступ.';
|
||||
$lang->about_grant_deatil = '가입한 사용자는 cafeXE등 분양형 가상 사이트에 가입을 한 로그인 사용자를 의미합니다';
|
||||
$lang->about_module = "XE состоит из модулей, за исключением базовой библиотеки.\n Управление модулем покажет все установленные модули и поможет управлять ими.";
|
||||
|
||||
$lang->about_extra_vars_default_value = 'Если нужно несколько значений по умолчанию, разделите их запятыми(,).';
|
||||
$lang->about_search_virtual_site = "가상 사이트(카페XE등)의 도메인을 입력하신 후 검색하세요.<br/>가상 사이트이외의 모듈은 내용을 비우고 검색하시면 됩니다. (http:// 는 제외)";
|
||||
$lang->about_langcode = "언어별로 다르게 설정하고 싶으시면 언어코드 찾기를 이용해주세요";
|
||||
$lang->about_file_extension= "%s 파일만 가능합니다.";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,101 +1,101 @@
|
|||
<?php
|
||||
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||
░░ * @File : common/lang/vi.lang.php ░░
|
||||
░░ * @Author : zero (zero@nzeo.com) ░░
|
||||
░░ * @Trans : Đào Đức Duy (ducduy.dao.vn@vietxe.net) ░░
|
||||
░░ * @Website: http://vietxe.net ░░
|
||||
░░ * @Brief : Vietnamese Language Pack (Only basic words are included here) ░░
|
||||
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ */
|
||||
|
||||
$lang->virtual_site = "Site thực";
|
||||
$lang->module_list = "Danh sách Module";
|
||||
$lang->module_index = "Danh sách Module";
|
||||
$lang->module_category = "Thể loại";
|
||||
$lang->module_info = "Thông tin Module";
|
||||
$lang->add_shortcut = "Thêm phím tắt";
|
||||
$lang->module_action = "Hoạt động";
|
||||
$lang->module_maker = "Người thiết kế";
|
||||
$lang->module_license = 'Giấy phép';
|
||||
$lang->module_history = "Lịch sử cập nhật";
|
||||
$lang->category_title = "Tiêu đề phân loại";
|
||||
$lang->header_text = 'Nội dung Header';
|
||||
$lang->footer_text = 'Nội dung Footer';
|
||||
$lang->use_category = 'Mở phân loại';
|
||||
$lang->category_title = 'Tiêu đề phân loại';
|
||||
$lang->checked_count = 'Số bài viết đã chọn';
|
||||
$lang->skin_default_info = 'Thông tin Skin mặc định';
|
||||
$lang->skin_author = 'Thiết kế';
|
||||
$lang->skin_license = 'Giấy phép';
|
||||
$lang->skin_history = 'Lịch sử cập nhật';
|
||||
$lang->module_copy = "Nhân bản Module";
|
||||
$lang->module_selector = "Chọn lọc Module";
|
||||
$lang->do_selected = "Bình chọn / Phê bình.";
|
||||
$lang->bundle_setup = "Gói cài đặt";
|
||||
$lang->bundle_addition_setup = "Gói cài đặt bổ xung";
|
||||
$lang->bundle_grant_setup = "Gói cài đặt cho phép";
|
||||
$lang->lang_code = "Mã ngôn ngữ";
|
||||
$lang->filebox = "FileBox";
|
||||
|
||||
$lang->access_type = 'Kiểu truy cập';
|
||||
$lang->access_domain = 'Với tên miền';
|
||||
$lang->access_vid = 'Với ID Website';
|
||||
$lang->about_domain = "Để tạo nhiều Website nhỏ, các Website nhỏ này cần những tên miền riêng của mình.<br />Có thể sử dụng những Subdomain dạng aaa.bbb.com của bbb.com. Hãy nhập địa chỉ bao gồm cả Domain cài đặt XE. <br /> Ví dụ: www.vietxe.net/xe";
|
||||
$lang->about_vid = 'Người sử dụng có thể truy cập qua http://XEaddress/ID. Bạn không thể sử dụng ID giống nhau và giống tên Module đã có.<br />Teen ID có dạng là các chữ cái, số và dấu gạch dưới (_).';
|
||||
$lang->msg_already_registed_vid = 'Tên ID này đã được đăng kí. Xin hãy chọn tên khác.';
|
||||
$lang->msg_already_registed_domain = "Tên miền đã được sử dụng. Xin hãy chọn tên khác.";
|
||||
|
||||
$lang->header_script = "Header Script";
|
||||
$lang->about_header_script = "Bạn co thể nhập mã dang HTML vào giữa <header> và </header>.<br />Bạn có thể sử dụng <script, <style hay <meta tag";
|
||||
|
||||
$lang->grant_access = "Truy cập";
|
||||
$lang->grant_manager = "Quản lý";
|
||||
|
||||
$lang->grant_to_all = "Tất cả";
|
||||
$lang->grant_to_login_user = "Đã đăng nhập";
|
||||
$lang->grant_to_site_user = "Đã đăng kí";
|
||||
$lang->grant_to_group = "Nhóm chỉ định";
|
||||
|
||||
$lang->cmd_add_shortcut = "Thêm phím tắt";
|
||||
$lang->cmd_install = "Cài đặt";
|
||||
$lang->cmd_update = "Cập nhật";
|
||||
$lang->cmd_manage_category = 'Quản lý thể loại';
|
||||
$lang->cmd_manage_grant = 'Quản lý quyền';
|
||||
$lang->cmd_manage_skin = 'Quản lý Skin';
|
||||
$lang->cmd_manage_document = 'Quản lý bài viết';
|
||||
$lang->cmd_find_module = 'Tìm Module';
|
||||
$lang->cmd_find_langcode = 'Tìm mã ngôn ngữ';
|
||||
|
||||
$lang->msg_new_module = "Tạo Module mới";
|
||||
$lang->msg_update_module = "Sửa Module";
|
||||
$lang->msg_module_name_exists = "Tên này đã được sử dụng. Hãy thử lại với tên khác.";
|
||||
$lang->msg_category_is_null = 'Không có phân loại nào được tạo.';
|
||||
$lang->msg_grant_is_null = 'Không có danh sách quyền nào.';
|
||||
$lang->msg_no_checked_document = 'Không có bài viết nào được kiểm tra.';
|
||||
$lang->msg_move_failed = 'Không thể di chuyển';
|
||||
$lang->msg_cannot_delete_for_child = 'Không thể xóa được phân loại khi có những phân loại con.';
|
||||
$lang->msg_limit_mid ="Tên Module chỉ hỗ trợ định dạng [Kí tự], [Kí tự+Số], [Kí tự+Số+_].";
|
||||
$lang->msg_extra_name_exists = 'Tên biến đã được sử dụng. Xin hãy chọn tên khác.';
|
||||
|
||||
$lang->about_browser_title = "Nó sẽ hiển thị trên tiêu đề của trình duyệt và trong RSS/Trackback.";
|
||||
$lang->about_mid = "Tên Module được sử dụng dạng http://address/?mid=<b>ModuleName</b>.\n(Chỉ cho phép chữ cái tiếng Anh + [chữ cái tiếng Anh, số, và dấu gạch dưới (_)] và tối đa 40 kí tự.)";
|
||||
$lang->about_default = "Nếu chọn, Sẽ hiển thị mặc định là (mid=NoValue) khi truy cập tên Module không đúng.";
|
||||
$lang->about_module_category = "Nó cho phép bạn quản lý thông qua Module thể loại.\n URL quản lý có dạng <a href=\"./?module=admin&act=dispModuleAdminCategory\">Quản lý Module > Module thể loại </a>.";
|
||||
$lang->about_description= 'Mô tả cho một quản lý.';
|
||||
$lang->about_default = 'Nếu chọn, Sẽ hiển thị mặc định là (mid=NoValue) khi truy cập tên Module không đúng.';
|
||||
$lang->about_header_text = 'Nội dung sẽ hiển thị trên đầu Module.(sau http tag có sẵn)';
|
||||
$lang->about_footer_text = 'Nội dung sẽ hiển thị phía dưới Module.(trước http tag có sẵn)';
|
||||
$lang->about_skin = 'Banj có thể chọn Skin cho Module.';
|
||||
$lang->about_use_category = 'Nếu chon, chức năng thể loại sẽ hoạt động.';
|
||||
$lang->about_list_count = 'Bạn có thể giới hạn bài viết hiển thị trên một trang.(Mặc định là 20)';
|
||||
$lang->about_search_list_count = 'Bạn có thể đặt giới hạn số bài viết sẽ hiển thị khi tìm kiếm hay chọn thể loại. (Mặc định là 20)';
|
||||
$lang->about_page_count = 'bạn có thể giới hạn số trang liên kết hiển thị phía dưới.(Mặc định là 10)';
|
||||
$lang->about_admin_id = 'Bạn có thể đặt quyền hạn cho người sử dụng khi truy cập tới Module.';
|
||||
$lang->about_grant = 'Nếu bạn khóa tất cả quyền hạn cho một thành viên đặc biệt nào đó, những thành viên đó sẽ không được phép đăng nhập.';
|
||||
$lang->about_grant_deatil = 'Khi thành viên dăng kí tại trang chủ, nghĩa là họ cũng là thành viên của những trang khác (Ví dụ: cafeXE,...).';
|
||||
$lang->about_module = "Khu vực Module trong XE ngoại trừ Library là tại [Module Manage]. Tất cả những Module đang có sẽ hiển thị, giúp bạn quản lý một cách dễ dàng.";
|
||||
|
||||
$lang->about_extra_vars_default_value = 'Nếu cần nhiều giá trị mặc định, bạn có thể thêm dấu (,) và giữa các kết nối.';
|
||||
$lang->about_search_virtual_site = "Hãy nhập tên miền thực tế của Website.<br />Để tìm kiếm những Module không thực tế của Website hãy để trống.";
|
||||
$lang->about_langcode = "Nếu bạn muốn sử dụng định hình riêng, hãy sử dụng 'Tìm kiếm mã ngôn ngữ'";
|
||||
$lang->about_file_extension= "Chỉ cho phép những phần mở rộng là: %s.";
|
||||
?>
|
||||
<?php
|
||||
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||
░░ * @File : common/lang/vi.lang.php ░░
|
||||
░░ * @Author : NHN (developers@xpressengine.com) ░░
|
||||
░░ * @Trans : Đào Đức Duy (ducduy.dao.vn@vietxe.net) ░░
|
||||
░░ * @Website: http://vietxe.net ░░
|
||||
░░ * @Brief : Vietnamese Language Pack (Only basic words are included here) ░░
|
||||
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ */
|
||||
|
||||
$lang->virtual_site = "Site thực";
|
||||
$lang->module_list = "Danh sách Module";
|
||||
$lang->module_index = "Danh sách Module";
|
||||
$lang->module_category = "Thể loại";
|
||||
$lang->module_info = "Thông tin Module";
|
||||
$lang->add_shortcut = "Thêm phím tắt";
|
||||
$lang->module_action = "Hoạt động";
|
||||
$lang->module_maker = "Người thiết kế";
|
||||
$lang->module_license = 'Giấy phép';
|
||||
$lang->module_history = "Lịch sử cập nhật";
|
||||
$lang->category_title = "Tiêu đề phân loại";
|
||||
$lang->header_text = 'Nội dung Header';
|
||||
$lang->footer_text = 'Nội dung Footer';
|
||||
$lang->use_category = 'Mở phân loại';
|
||||
$lang->category_title = 'Tiêu đề phân loại';
|
||||
$lang->checked_count = 'Số bài viết đã chọn';
|
||||
$lang->skin_default_info = 'Thông tin Skin mặc định';
|
||||
$lang->skin_author = 'Thiết kế';
|
||||
$lang->skin_license = 'Giấy phép';
|
||||
$lang->skin_history = 'Lịch sử cập nhật';
|
||||
$lang->module_copy = "Nhân bản Module";
|
||||
$lang->module_selector = "Chọn lọc Module";
|
||||
$lang->do_selected = "Bình chọn / Phê bình.";
|
||||
$lang->bundle_setup = "Gói cài đặt";
|
||||
$lang->bundle_addition_setup = "Gói cài đặt bổ xung";
|
||||
$lang->bundle_grant_setup = "Gói cài đặt cho phép";
|
||||
$lang->lang_code = "Mã ngôn ngữ";
|
||||
$lang->filebox = "FileBox";
|
||||
|
||||
$lang->access_type = 'Kiểu truy cập';
|
||||
$lang->access_domain = 'Với tên miền';
|
||||
$lang->access_vid = 'Với ID Website';
|
||||
$lang->about_domain = "Để tạo nhiều Website nhỏ, các Website nhỏ này cần những tên miền riêng của mình.<br />Có thể sử dụng những Subdomain dạng aaa.bbb.com của bbb.com. Hãy nhập địa chỉ bao gồm cả Domain cài đặt XE. <br /> Ví dụ: www.vietxe.net/xe";
|
||||
$lang->about_vid = 'Người sử dụng có thể truy cập qua http://XEaddress/ID. Bạn không thể sử dụng ID giống nhau và giống tên Module đã có.<br />Teen ID có dạng là các chữ cái, số và dấu gạch dưới (_).';
|
||||
$lang->msg_already_registed_vid = 'Tên ID này đã được đăng kí. Xin hãy chọn tên khác.';
|
||||
$lang->msg_already_registed_domain = "Tên miền đã được sử dụng. Xin hãy chọn tên khác.";
|
||||
|
||||
$lang->header_script = "Header Script";
|
||||
$lang->about_header_script = "Bạn co thể nhập mã dang HTML vào giữa <header> và </header>.<br />Bạn có thể sử dụng <script, <style hay <meta tag";
|
||||
|
||||
$lang->grant_access = "Truy cập";
|
||||
$lang->grant_manager = "Quản lý";
|
||||
|
||||
$lang->grant_to_all = "Tất cả";
|
||||
$lang->grant_to_login_user = "Đã đăng nhập";
|
||||
$lang->grant_to_site_user = "Đã đăng kí";
|
||||
$lang->grant_to_group = "Nhóm chỉ định";
|
||||
|
||||
$lang->cmd_add_shortcut = "Thêm phím tắt";
|
||||
$lang->cmd_install = "Cài đặt";
|
||||
$lang->cmd_update = "Cập nhật";
|
||||
$lang->cmd_manage_category = 'Quản lý thể loại';
|
||||
$lang->cmd_manage_grant = 'Quản lý quyền';
|
||||
$lang->cmd_manage_skin = 'Quản lý Skin';
|
||||
$lang->cmd_manage_document = 'Quản lý bài viết';
|
||||
$lang->cmd_find_module = 'Tìm Module';
|
||||
$lang->cmd_find_langcode = 'Tìm mã ngôn ngữ';
|
||||
|
||||
$lang->msg_new_module = "Tạo Module mới";
|
||||
$lang->msg_update_module = "Sửa Module";
|
||||
$lang->msg_module_name_exists = "Tên này đã được sử dụng. Hãy thử lại với tên khác.";
|
||||
$lang->msg_category_is_null = 'Không có phân loại nào được tạo.';
|
||||
$lang->msg_grant_is_null = 'Không có danh sách quyền nào.';
|
||||
$lang->msg_no_checked_document = 'Không có bài viết nào được kiểm tra.';
|
||||
$lang->msg_move_failed = 'Không thể di chuyển';
|
||||
$lang->msg_cannot_delete_for_child = 'Không thể xóa được phân loại khi có những phân loại con.';
|
||||
$lang->msg_limit_mid ="Tên Module chỉ hỗ trợ định dạng [Kí tự], [Kí tự+Số], [Kí tự+Số+_].";
|
||||
$lang->msg_extra_name_exists = 'Tên biến đã được sử dụng. Xin hãy chọn tên khác.';
|
||||
|
||||
$lang->about_browser_title = "Nó sẽ hiển thị trên tiêu đề của trình duyệt và trong RSS/Trackback.";
|
||||
$lang->about_mid = "Tên Module được sử dụng dạng http://address/?mid=<b>ModuleName</b>.\n(Chỉ cho phép chữ cái tiếng Anh + [chữ cái tiếng Anh, số, và dấu gạch dưới (_)] và tối đa 40 kí tự.)";
|
||||
$lang->about_default = "Nếu chọn, Sẽ hiển thị mặc định là (mid=NoValue) khi truy cập tên Module không đúng.";
|
||||
$lang->about_module_category = "Nó cho phép bạn quản lý thông qua Module thể loại.\n URL quản lý có dạng <a href=\"./?module=admin&act=dispModuleAdminCategory\">Quản lý Module > Module thể loại </a>.";
|
||||
$lang->about_description= 'Mô tả cho một quản lý.';
|
||||
$lang->about_default = 'Nếu chọn, Sẽ hiển thị mặc định là (mid=NoValue) khi truy cập tên Module không đúng.';
|
||||
$lang->about_header_text = 'Nội dung sẽ hiển thị trên đầu Module.(sau http tag có sẵn)';
|
||||
$lang->about_footer_text = 'Nội dung sẽ hiển thị phía dưới Module.(trước http tag có sẵn)';
|
||||
$lang->about_skin = 'Banj có thể chọn Skin cho Module.';
|
||||
$lang->about_use_category = 'Nếu chon, chức năng thể loại sẽ hoạt động.';
|
||||
$lang->about_list_count = 'Bạn có thể giới hạn bài viết hiển thị trên một trang.(Mặc định là 20)';
|
||||
$lang->about_search_list_count = 'Bạn có thể đặt giới hạn số bài viết sẽ hiển thị khi tìm kiếm hay chọn thể loại. (Mặc định là 20)';
|
||||
$lang->about_page_count = 'bạn có thể giới hạn số trang liên kết hiển thị phía dưới.(Mặc định là 10)';
|
||||
$lang->about_admin_id = 'Bạn có thể đặt quyền hạn cho người sử dụng khi truy cập tới Module.';
|
||||
$lang->about_grant = 'Nếu bạn khóa tất cả quyền hạn cho một thành viên đặc biệt nào đó, những thành viên đó sẽ không được phép đăng nhập.';
|
||||
$lang->about_grant_deatil = 'Khi thành viên dăng kí tại trang chủ, nghĩa là họ cũng là thành viên của những trang khác (Ví dụ: cafeXE,...).';
|
||||
$lang->about_module = "Khu vực Module trong XE ngoại trừ Library là tại [Module Manage]. Tất cả những Module đang có sẽ hiển thị, giúp bạn quản lý một cách dễ dàng.";
|
||||
|
||||
$lang->about_extra_vars_default_value = 'Nếu cần nhiều giá trị mặc định, bạn có thể thêm dấu (,) và giữa các kết nối.';
|
||||
$lang->about_search_virtual_site = "Hãy nhập tên miền thực tế của Website.<br />Để tìm kiếm những Module không thực tế của Website hãy để trống.";
|
||||
$lang->about_langcode = "Nếu bạn muốn sử dụng định hình riêng, hãy sử dụng 'Tìm kiếm mã ngôn ngữ'";
|
||||
$lang->about_file_extension= "Chỉ cho phép những phần mở rộng là: %s.";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file zh-CN.lang.php
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief 简体中文语言包
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/module/lang/zh-TW.lang.php
|
||||
* @author zero (zero@nzeo.com) 翻譯:royallin
|
||||
* @author NHN (developers@xpressengine.com) 翻譯:royallin
|
||||
* @brief 模組(module)正體中文語言
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,485 +1,485 @@
|
|||
<?php
|
||||
/**
|
||||
* @class moduleAdminController
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief module 모듈의 admin controller class
|
||||
**/
|
||||
|
||||
class moduleAdminController extends module {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 카테고리 추가
|
||||
**/
|
||||
function procModuleAdminInsertCategory() {
|
||||
$args->title = Context::get('title');
|
||||
$output = executeQuery('module.insertModuleCategory', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage("success_registed");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 카테고리의 내용 수정
|
||||
**/
|
||||
function procModuleAdminUpdateCategory() {
|
||||
$mode = Context::get('mode');
|
||||
|
||||
switch($mode) {
|
||||
case 'delete' :
|
||||
$output = $this->doDeleteModuleCategory();
|
||||
$msg_code = 'success_deleted';
|
||||
break;
|
||||
case 'update' :
|
||||
$output = $this->doUpdateModuleCategory();
|
||||
$msg_code = 'success_updated';
|
||||
break;
|
||||
}
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 카테고리의 제목 변경
|
||||
**/
|
||||
function doUpdateModuleCategory() {
|
||||
$args->title = Context::get('title');
|
||||
$args->module_category_srl = Context::get('module_category_srl');
|
||||
return executeQuery('module.updateModuleCategory', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 카테고리 삭제
|
||||
**/
|
||||
function doDeleteModuleCategory() {
|
||||
$args->module_category_srl = Context::get('module_category_srl');
|
||||
return executeQuery('module.deleteModuleCategory', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 복사
|
||||
**/
|
||||
function procModuleAdminCopyModule() {
|
||||
// 복사하려는 대상 모듈의 정보를 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
if(!$module_srl) return;
|
||||
|
||||
// 새로 생성하려는 모듈들의 이름/브라우저 제목을 구함
|
||||
$clones = array();
|
||||
$args = Context::getAll();
|
||||
for($i=1;$i<=10;$i++) {
|
||||
$mid = trim($args->{"mid_".$i});
|
||||
if(!$mid) continue;
|
||||
if(!preg_match("/^[a-zA-Z]([a-zA-Z0-9_]*)$/i", $mid)) return new Object(-1, 'msg_limit_mid');
|
||||
$browser_title = $args->{"browser_title_".$i};
|
||||
if(!$mid) continue;
|
||||
if($mid && !$browser_title) $browser_title = $mid;
|
||||
$clones[$mid] = $browser_title;
|
||||
}
|
||||
if(!count($clones)) return;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 모듈 정보 가져옴
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
|
||||
// 권한 정보 가져옴
|
||||
$module_args->module_srl = $module_srl;
|
||||
$output = executeQueryArray('module.getModuleGrants', $module_args);
|
||||
$grant = array();
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) $grant[$val->name][] = $val->group_srl;
|
||||
}
|
||||
|
||||
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
||||
// 모듈 복사
|
||||
foreach($clones as $mid => $browser_title) {
|
||||
$clone_args = null;
|
||||
$clone_args = clone($module_info);
|
||||
$clone_args->module_srl = null;
|
||||
$clone_args->content = null;
|
||||
$clone_args->mid = $mid;
|
||||
$clone_args->browser_title = $browser_title;
|
||||
$clone_args->is_default = 'N';
|
||||
|
||||
// 모듈 생성
|
||||
$output = $oModuleController->insertModule($clone_args);
|
||||
$module_srl = $output->get('module_srl');
|
||||
|
||||
// 권한 정보 등록
|
||||
if(count($grant)) $oModuleController->insertModuleGrants($module_srl, $grant);
|
||||
}
|
||||
|
||||
$oDB->commit();
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 권한 저장
|
||||
**/
|
||||
function procModuleAdminInsertGrant() {
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 모듈 번호 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// 해당 모듈의 정보를 구함
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if(!$module_info) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
// 관리자 아이디 등록
|
||||
$oModuleController->deleteAdminId($module_srl);
|
||||
$admin_member = Context::get('admin_member');
|
||||
if($admin_member) {
|
||||
$admin_members = explode(',',$admin_member);
|
||||
for($i=0;$i<count($admin_members);$i++) {
|
||||
$admin_id = trim($admin_members[$i]);
|
||||
if(!$admin_id) continue;
|
||||
$oModuleController->insertAdminId($module_srl, $admin_id);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 권한 정리
|
||||
$xml_info = $oModuleModel->getModuleActionXML($module_info->module);
|
||||
|
||||
$grant_list = $xml_info->grant;
|
||||
|
||||
$grant_list->access->default = 'guest';
|
||||
$grant_list->manager->default = 'manager';
|
||||
|
||||
foreach($grant_list as $grant_name => $grant_info) {
|
||||
// default값을 구함
|
||||
$default = Context::get($grant_name.'_default');
|
||||
|
||||
// -1 = 로그인 사용자만, -2 = 사이트 가입자만, 0 = 모든 사용자
|
||||
if(strlen($default)){
|
||||
$grant->{$grant_name}[] = $default;
|
||||
continue;
|
||||
|
||||
// 특정 그룹 사용자
|
||||
} else {
|
||||
$group_srls = Context::get($grant_name);
|
||||
if($group_srls) {
|
||||
if(strpos($group_srls,'|@|')!==false) $group_srls = explode('|@|',$group_srls);
|
||||
elseif(strpos($group_srls,',')!==false) $group_srls = explode(',',$group_srls);
|
||||
else $group_srls = array($group_srls);
|
||||
$grant->{$grant_name} = $group_srls;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
$grant->{$group_srls} = array();
|
||||
}
|
||||
|
||||
// DB에 저장
|
||||
$args->module_srl = $module_srl;
|
||||
$output = executeQuery('module.deleteModuleGrants', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// DB에 권한 저장
|
||||
foreach($grant as $grant_name => $group_srls) {
|
||||
foreach($group_srls as $key => $val) {
|
||||
$args = null;
|
||||
$args->module_srl = $module_srl;
|
||||
$args->name = $grant_name;
|
||||
$args->group_srl = $val;
|
||||
$output = executeQuery('module.insertModuleGrant', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
}
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 스킨 정보 업데이트
|
||||
**/
|
||||
function procModuleAdminUpdateSkinInfo() {
|
||||
// module_srl에 해당하는 정보들을 가져오기
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if($module_info->module_srl) {
|
||||
$skin = $module_info->skin;
|
||||
|
||||
// 스킨의 정보를 구해옴 (extra_vars를 체크하기 위해서)
|
||||
$module_path = './modules/'.$module_info->module;
|
||||
$skin_info = $oModuleModel->loadSkinInfo($module_path, $skin);
|
||||
$skin_vars = $oModuleModel->getModuleSkinVars($module_srl);
|
||||
// 입력받은 변수들을 체크 (mo, act, module_srl, page등 기본적인 변수들 없앰)
|
||||
$obj = Context::getRequestVars();
|
||||
unset($obj->act);
|
||||
unset($obj->module_srl);
|
||||
unset($obj->page);
|
||||
unset($obj->mid);
|
||||
unset($obj->module);
|
||||
|
||||
// 원 skin_info에서 extra_vars의 type이 image일 경우 별도 처리를 해줌
|
||||
if($skin_info->extra_vars) {
|
||||
foreach($skin_info->extra_vars as $vars) {
|
||||
if($vars->type!='image') continue;
|
||||
|
||||
$image_obj = $obj->{$vars->name};
|
||||
|
||||
// 삭제 요청에 대한 변수를 구함
|
||||
$del_var = $obj->{"del_".$vars->name};
|
||||
unset($obj->{"del_".$vars->name});
|
||||
if($del_var == 'Y') {
|
||||
FileHandler::removeFile($skin_vars[$vars->name]->value);
|
||||
continue;
|
||||
}
|
||||
|
||||
// 업로드 되지 않았다면 이전 데이터를 그대로 사용
|
||||
if(!$image_obj['tmp_name']) {
|
||||
$obj->{$vars->name} = $module_info->{$vars->name};
|
||||
continue;
|
||||
}
|
||||
|
||||
// 정상적으로 업로드된 파일이 아니면 무시
|
||||
if(!is_uploaded_file($image_obj['tmp_name'])) {
|
||||
unset($obj->{$vars->name});
|
||||
continue;
|
||||
}
|
||||
|
||||
// 이미지 파일이 아니어도 무시
|
||||
if(!preg_match("/\.(jpg|jpeg|gif|png)$/i", $image_obj['name'])) {
|
||||
unset($obj->{$vars->name});
|
||||
continue;
|
||||
}
|
||||
|
||||
// 경로를 정해서 업로드
|
||||
$path = sprintf("./files/attach/images/%s/", $module_srl);
|
||||
|
||||
// 디렉토리 생성
|
||||
if(!FileHandler::makeDir($path)) return false;
|
||||
|
||||
$filename = $path.$image_obj['name'];
|
||||
|
||||
// 파일 이동
|
||||
if(!move_uploaded_file($image_obj['tmp_name'], $filename)) {
|
||||
unset($obj->{$vars->name});
|
||||
continue;
|
||||
}
|
||||
|
||||
// 정상 파일 업로드
|
||||
FileHandler::removeFile($skin_vars[$vars->name]->value);
|
||||
// 변수를 바꿈
|
||||
unset($obj->{$vars->name});
|
||||
$obj->{$vars->name} = $filename;
|
||||
}
|
||||
}
|
||||
// 해당 모듈의 전체 스킨 불러와서 이미지는 제거
|
||||
/*
|
||||
if($skin_info->extra_vars) {
|
||||
foreach($skin_info->extra_vars as $vars) {
|
||||
if($vars->type!='image') continue;
|
||||
$value = $skin_vars[$vars->name];
|
||||
if(file_exists($value)) @unlink($value);
|
||||
}
|
||||
}
|
||||
*/
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->deleteModuleSkinVars($module_srl);
|
||||
|
||||
// 등록
|
||||
$oModuleController->insertModuleSkinVars($module_srl, $obj);
|
||||
}
|
||||
|
||||
$this->setLayoutPath('./common/tpl');
|
||||
$this->setLayoutFile('default_layout.html');
|
||||
$this->setTemplatePath('./modules/module/tpl');
|
||||
$this->setTemplateFile("top_refresh.html");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 일괄 정리
|
||||
**/
|
||||
function procModuleAdminModuleSetup() {
|
||||
$vars = Context::getRequestVars();
|
||||
|
||||
if(!$vars->module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$module_srls = explode(',',$vars->module_srls);
|
||||
if(!count($module_srls)) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController= &getController('module');
|
||||
foreach($module_srls as $module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
$module_info->module_category_srl = $vars->module_category_srl;
|
||||
$module_info->layout_srl = $vars->layout_srl;
|
||||
$module_info->skin = $vars->skin;
|
||||
$module_info->description = $vars->description;
|
||||
$module_info->header_text = $vars->header_text;
|
||||
$module_info->footer_text = $vars->footer_text;
|
||||
$oModuleController->updateModule($module_info);
|
||||
}
|
||||
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 권한 일괄 정리
|
||||
**/
|
||||
function procModuleAdminModuleGrantSetup() {
|
||||
$module_srls = Context::get('module_srls');
|
||||
if(!$module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$modules = explode(',',$module_srls);
|
||||
if(!count($modules)) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($modules[0]);
|
||||
$xml_info = $oModuleModel->getModuleActionXml($module_info->module);
|
||||
$grant_list = $xml_info->grant;
|
||||
|
||||
$grant_list->access->default = 'guest';
|
||||
$grant_list->manager->default = 'manager';
|
||||
|
||||
foreach($grant_list as $grant_name => $grant_info) {
|
||||
// default값을 구함
|
||||
$default = Context::get($grant_name.'_default');
|
||||
|
||||
// -1 = 로그인 사용자만, 0 = 모든 사용자
|
||||
if(strlen($default)){
|
||||
$grant->{$grant_name}[] = $default;
|
||||
continue;
|
||||
|
||||
// 특정 그룹 사용자
|
||||
} else {
|
||||
$group_srls = Context::get($grant_name);
|
||||
if($group_srls) {
|
||||
if(strpos($group_srls,'|@|')!==false) $group_srls = explode('|@|',$group_srls);
|
||||
elseif(strpos($group_srls,',')!==false) $group_srls = explode(',',$group_srls);
|
||||
else $group_srls = array($group_srls);
|
||||
$grant->{$grant_name} = $group_srls;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
$grant->{$group_srls} = array();
|
||||
}
|
||||
|
||||
|
||||
// DB에 저장
|
||||
foreach($modules as $module_srl) {
|
||||
$args = null;
|
||||
$args->module_srl = $module_srl;
|
||||
$output = executeQuery('module.deleteModuleGrants', $args);
|
||||
if(!$output->toBool()) continue;
|
||||
|
||||
// DB에 권한 저장
|
||||
foreach($grant as $grant_name => $group_srls) {
|
||||
foreach($group_srls as $key => $val) {
|
||||
$args = null;
|
||||
$args->module_srl = $module_srl;
|
||||
$args->name = $grant_name;
|
||||
$args->group_srl = $val;
|
||||
$output = executeQuery('module.insertModuleGrant', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 언어 추가/ 업데이트
|
||||
**/
|
||||
function procModuleAdminInsertLang() {
|
||||
// 언어코드명 가져옴
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
$args->name = str_replace(' ','_',Context::get('lang_code'));
|
||||
if(!$args->name) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
// 언어코드가 있는지 조사
|
||||
$output = executeQueryArray('module.getLang', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 있으면 업데이트를 위해 기존 값들을 지움
|
||||
if($output->data) $output = executeQuery('module.deleteLang', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 입력
|
||||
$lang_supported = Context::get('lang_supported');
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$args->lang_code = $key;
|
||||
$args->value = trim(Context::get($key));
|
||||
if(!$args->value) {
|
||||
$args->value = Context::get(strtolower($key));
|
||||
if(!$args->value) $args->value = $args->name;
|
||||
}
|
||||
$output = executeQuery('module.insertLang', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
$this->makeCacheDefinedLangCode($args->site_srl);
|
||||
|
||||
$this->add('name', $args->name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 언어 제거
|
||||
**/
|
||||
function procModuleAdminDeleteLang() {
|
||||
// 언어코드명 가져옴
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
$args->name = str_replace(' ','_',Context::get('name'));
|
||||
if(!$args->name) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$output = executeQuery('module.deleteLang', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
$this->makeCacheDefinedLangCode($args->site_srl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 사용자 정이 언어코드 파일 저장
|
||||
**/
|
||||
function makeCacheDefinedLangCode($site_srl = 0) {
|
||||
// 현재 사이트의 언어파일 가져오기
|
||||
if(!$site_srl) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
} else {
|
||||
$args->site_srl = $site_srl;
|
||||
}
|
||||
$output = executeQueryArray('module.getLang', $args);
|
||||
if(!$output->toBool() || !$output->data) return;
|
||||
|
||||
// 캐시 디렉토리 설정
|
||||
$cache_path = _XE_PATH_.'files/cache/lang_defined/';
|
||||
if(!is_dir($cache_path)) FileHandler::makeDir($cache_path);
|
||||
|
||||
$lang_supported = Context::get('lang_supported');
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$fp[$key] = fopen( sprintf('%s/%d.%s.php', $cache_path, $args->site_srl, $key), 'w' );
|
||||
if(!$fp[$key]) return;
|
||||
fwrite($fp[$key],"<?php if(!defined('__ZBXE__')) exit(); \r\n");
|
||||
}
|
||||
|
||||
foreach($output->data as $key => $val) {
|
||||
if($fp[$val->lang_code]) fwrite($fp[$val->lang_code], sprintf('$lang["%s"] = "%s";'."\r\n", $val->name, str_replace('"','\\"',$val->value)));
|
||||
}
|
||||
|
||||
foreach($lang_supported as $key => $val) {
|
||||
if(!$fp[$key]) continue;
|
||||
fwrite($fp[$key],"?>");
|
||||
fclose($fp[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class moduleAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief module 모듈의 admin controller class
|
||||
**/
|
||||
|
||||
class moduleAdminController extends module {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 카테고리 추가
|
||||
**/
|
||||
function procModuleAdminInsertCategory() {
|
||||
$args->title = Context::get('title');
|
||||
$output = executeQuery('module.insertModuleCategory', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage("success_registed");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 카테고리의 내용 수정
|
||||
**/
|
||||
function procModuleAdminUpdateCategory() {
|
||||
$mode = Context::get('mode');
|
||||
|
||||
switch($mode) {
|
||||
case 'delete' :
|
||||
$output = $this->doDeleteModuleCategory();
|
||||
$msg_code = 'success_deleted';
|
||||
break;
|
||||
case 'update' :
|
||||
$output = $this->doUpdateModuleCategory();
|
||||
$msg_code = 'success_updated';
|
||||
break;
|
||||
}
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 카테고리의 제목 변경
|
||||
**/
|
||||
function doUpdateModuleCategory() {
|
||||
$args->title = Context::get('title');
|
||||
$args->module_category_srl = Context::get('module_category_srl');
|
||||
return executeQuery('module.updateModuleCategory', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 카테고리 삭제
|
||||
**/
|
||||
function doDeleteModuleCategory() {
|
||||
$args->module_category_srl = Context::get('module_category_srl');
|
||||
return executeQuery('module.deleteModuleCategory', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 복사
|
||||
**/
|
||||
function procModuleAdminCopyModule() {
|
||||
// 복사하려는 대상 모듈의 정보를 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
if(!$module_srl) return;
|
||||
|
||||
// 새로 생성하려는 모듈들의 이름/브라우저 제목을 구함
|
||||
$clones = array();
|
||||
$args = Context::getAll();
|
||||
for($i=1;$i<=10;$i++) {
|
||||
$mid = trim($args->{"mid_".$i});
|
||||
if(!$mid) continue;
|
||||
if(!preg_match("/^[a-zA-Z]([a-zA-Z0-9_]*)$/i", $mid)) return new Object(-1, 'msg_limit_mid');
|
||||
$browser_title = $args->{"browser_title_".$i};
|
||||
if(!$mid) continue;
|
||||
if($mid && !$browser_title) $browser_title = $mid;
|
||||
$clones[$mid] = $browser_title;
|
||||
}
|
||||
if(!count($clones)) return;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// 모듈 정보 가져옴
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
|
||||
// 권한 정보 가져옴
|
||||
$module_args->module_srl = $module_srl;
|
||||
$output = executeQueryArray('module.getModuleGrants', $module_args);
|
||||
$grant = array();
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) $grant[$val->name][] = $val->group_srl;
|
||||
}
|
||||
|
||||
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
||||
// 모듈 복사
|
||||
foreach($clones as $mid => $browser_title) {
|
||||
$clone_args = null;
|
||||
$clone_args = clone($module_info);
|
||||
$clone_args->module_srl = null;
|
||||
$clone_args->content = null;
|
||||
$clone_args->mid = $mid;
|
||||
$clone_args->browser_title = $browser_title;
|
||||
$clone_args->is_default = 'N';
|
||||
|
||||
// 모듈 생성
|
||||
$output = $oModuleController->insertModule($clone_args);
|
||||
$module_srl = $output->get('module_srl');
|
||||
|
||||
// 권한 정보 등록
|
||||
if(count($grant)) $oModuleController->insertModuleGrants($module_srl, $grant);
|
||||
}
|
||||
|
||||
$oDB->commit();
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 권한 저장
|
||||
**/
|
||||
function procModuleAdminInsertGrant() {
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 모듈 번호 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// 해당 모듈의 정보를 구함
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if(!$module_info) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
// 관리자 아이디 등록
|
||||
$oModuleController->deleteAdminId($module_srl);
|
||||
$admin_member = Context::get('admin_member');
|
||||
if($admin_member) {
|
||||
$admin_members = explode(',',$admin_member);
|
||||
for($i=0;$i<count($admin_members);$i++) {
|
||||
$admin_id = trim($admin_members[$i]);
|
||||
if(!$admin_id) continue;
|
||||
$oModuleController->insertAdminId($module_srl, $admin_id);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 권한 정리
|
||||
$xml_info = $oModuleModel->getModuleActionXML($module_info->module);
|
||||
|
||||
$grant_list = $xml_info->grant;
|
||||
|
||||
$grant_list->access->default = 'guest';
|
||||
$grant_list->manager->default = 'manager';
|
||||
|
||||
foreach($grant_list as $grant_name => $grant_info) {
|
||||
// default값을 구함
|
||||
$default = Context::get($grant_name.'_default');
|
||||
|
||||
// -1 = 로그인 사용자만, -2 = 사이트 가입자만, 0 = 모든 사용자
|
||||
if(strlen($default)){
|
||||
$grant->{$grant_name}[] = $default;
|
||||
continue;
|
||||
|
||||
// 특정 그룹 사용자
|
||||
} else {
|
||||
$group_srls = Context::get($grant_name);
|
||||
if($group_srls) {
|
||||
if(strpos($group_srls,'|@|')!==false) $group_srls = explode('|@|',$group_srls);
|
||||
elseif(strpos($group_srls,',')!==false) $group_srls = explode(',',$group_srls);
|
||||
else $group_srls = array($group_srls);
|
||||
$grant->{$grant_name} = $group_srls;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
$grant->{$group_srls} = array();
|
||||
}
|
||||
|
||||
// DB에 저장
|
||||
$args->module_srl = $module_srl;
|
||||
$output = executeQuery('module.deleteModuleGrants', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// DB에 권한 저장
|
||||
foreach($grant as $grant_name => $group_srls) {
|
||||
foreach($group_srls as $key => $val) {
|
||||
$args = null;
|
||||
$args->module_srl = $module_srl;
|
||||
$args->name = $grant_name;
|
||||
$args->group_srl = $val;
|
||||
$output = executeQuery('module.insertModuleGrant', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
}
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 스킨 정보 업데이트
|
||||
**/
|
||||
function procModuleAdminUpdateSkinInfo() {
|
||||
// module_srl에 해당하는 정보들을 가져오기
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if($module_info->module_srl) {
|
||||
$skin = $module_info->skin;
|
||||
|
||||
// 스킨의 정보를 구해옴 (extra_vars를 체크하기 위해서)
|
||||
$module_path = './modules/'.$module_info->module;
|
||||
$skin_info = $oModuleModel->loadSkinInfo($module_path, $skin);
|
||||
$skin_vars = $oModuleModel->getModuleSkinVars($module_srl);
|
||||
// 입력받은 변수들을 체크 (mo, act, module_srl, page등 기본적인 변수들 없앰)
|
||||
$obj = Context::getRequestVars();
|
||||
unset($obj->act);
|
||||
unset($obj->module_srl);
|
||||
unset($obj->page);
|
||||
unset($obj->mid);
|
||||
unset($obj->module);
|
||||
|
||||
// 원 skin_info에서 extra_vars의 type이 image일 경우 별도 처리를 해줌
|
||||
if($skin_info->extra_vars) {
|
||||
foreach($skin_info->extra_vars as $vars) {
|
||||
if($vars->type!='image') continue;
|
||||
|
||||
$image_obj = $obj->{$vars->name};
|
||||
|
||||
// 삭제 요청에 대한 변수를 구함
|
||||
$del_var = $obj->{"del_".$vars->name};
|
||||
unset($obj->{"del_".$vars->name});
|
||||
if($del_var == 'Y') {
|
||||
FileHandler::removeFile($skin_vars[$vars->name]->value);
|
||||
continue;
|
||||
}
|
||||
|
||||
// 업로드 되지 않았다면 이전 데이터를 그대로 사용
|
||||
if(!$image_obj['tmp_name']) {
|
||||
$obj->{$vars->name} = $module_info->{$vars->name};
|
||||
continue;
|
||||
}
|
||||
|
||||
// 정상적으로 업로드된 파일이 아니면 무시
|
||||
if(!is_uploaded_file($image_obj['tmp_name'])) {
|
||||
unset($obj->{$vars->name});
|
||||
continue;
|
||||
}
|
||||
|
||||
// 이미지 파일이 아니어도 무시
|
||||
if(!preg_match("/\.(jpg|jpeg|gif|png)$/i", $image_obj['name'])) {
|
||||
unset($obj->{$vars->name});
|
||||
continue;
|
||||
}
|
||||
|
||||
// 경로를 정해서 업로드
|
||||
$path = sprintf("./files/attach/images/%s/", $module_srl);
|
||||
|
||||
// 디렉토리 생성
|
||||
if(!FileHandler::makeDir($path)) return false;
|
||||
|
||||
$filename = $path.$image_obj['name'];
|
||||
|
||||
// 파일 이동
|
||||
if(!move_uploaded_file($image_obj['tmp_name'], $filename)) {
|
||||
unset($obj->{$vars->name});
|
||||
continue;
|
||||
}
|
||||
|
||||
// 정상 파일 업로드
|
||||
FileHandler::removeFile($skin_vars[$vars->name]->value);
|
||||
// 변수를 바꿈
|
||||
unset($obj->{$vars->name});
|
||||
$obj->{$vars->name} = $filename;
|
||||
}
|
||||
}
|
||||
// 해당 모듈의 전체 스킨 불러와서 이미지는 제거
|
||||
/*
|
||||
if($skin_info->extra_vars) {
|
||||
foreach($skin_info->extra_vars as $vars) {
|
||||
if($vars->type!='image') continue;
|
||||
$value = $skin_vars[$vars->name];
|
||||
if(file_exists($value)) @unlink($value);
|
||||
}
|
||||
}
|
||||
*/
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->deleteModuleSkinVars($module_srl);
|
||||
|
||||
// 등록
|
||||
$oModuleController->insertModuleSkinVars($module_srl, $obj);
|
||||
}
|
||||
|
||||
$this->setLayoutPath('./common/tpl');
|
||||
$this->setLayoutFile('default_layout.html');
|
||||
$this->setTemplatePath('./modules/module/tpl');
|
||||
$this->setTemplateFile("top_refresh.html");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 일괄 정리
|
||||
**/
|
||||
function procModuleAdminModuleSetup() {
|
||||
$vars = Context::getRequestVars();
|
||||
|
||||
if(!$vars->module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$module_srls = explode(',',$vars->module_srls);
|
||||
if(!count($module_srls)) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController= &getController('module');
|
||||
foreach($module_srls as $module_srl) {
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
$module_info->module_category_srl = $vars->module_category_srl;
|
||||
$module_info->layout_srl = $vars->layout_srl;
|
||||
$module_info->skin = $vars->skin;
|
||||
$module_info->description = $vars->description;
|
||||
$module_info->header_text = $vars->header_text;
|
||||
$module_info->footer_text = $vars->footer_text;
|
||||
$oModuleController->updateModule($module_info);
|
||||
}
|
||||
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 권한 일괄 정리
|
||||
**/
|
||||
function procModuleAdminModuleGrantSetup() {
|
||||
$module_srls = Context::get('module_srls');
|
||||
if(!$module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$modules = explode(',',$module_srls);
|
||||
if(!count($modules)) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($modules[0]);
|
||||
$xml_info = $oModuleModel->getModuleActionXml($module_info->module);
|
||||
$grant_list = $xml_info->grant;
|
||||
|
||||
$grant_list->access->default = 'guest';
|
||||
$grant_list->manager->default = 'manager';
|
||||
|
||||
foreach($grant_list as $grant_name => $grant_info) {
|
||||
// default값을 구함
|
||||
$default = Context::get($grant_name.'_default');
|
||||
|
||||
// -1 = 로그인 사용자만, 0 = 모든 사용자
|
||||
if(strlen($default)){
|
||||
$grant->{$grant_name}[] = $default;
|
||||
continue;
|
||||
|
||||
// 특정 그룹 사용자
|
||||
} else {
|
||||
$group_srls = Context::get($grant_name);
|
||||
if($group_srls) {
|
||||
if(strpos($group_srls,'|@|')!==false) $group_srls = explode('|@|',$group_srls);
|
||||
elseif(strpos($group_srls,',')!==false) $group_srls = explode(',',$group_srls);
|
||||
else $group_srls = array($group_srls);
|
||||
$grant->{$grant_name} = $group_srls;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
$grant->{$group_srls} = array();
|
||||
}
|
||||
|
||||
|
||||
// DB에 저장
|
||||
foreach($modules as $module_srl) {
|
||||
$args = null;
|
||||
$args->module_srl = $module_srl;
|
||||
$output = executeQuery('module.deleteModuleGrants', $args);
|
||||
if(!$output->toBool()) continue;
|
||||
|
||||
// DB에 권한 저장
|
||||
foreach($grant as $grant_name => $group_srls) {
|
||||
foreach($group_srls as $key => $val) {
|
||||
$args = null;
|
||||
$args->module_srl = $module_srl;
|
||||
$args->name = $grant_name;
|
||||
$args->group_srl = $val;
|
||||
$output = executeQuery('module.insertModuleGrant', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 언어 추가/ 업데이트
|
||||
**/
|
||||
function procModuleAdminInsertLang() {
|
||||
// 언어코드명 가져옴
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
$args->name = str_replace(' ','_',Context::get('lang_code'));
|
||||
if(!$args->name) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
// 언어코드가 있는지 조사
|
||||
$output = executeQueryArray('module.getLang', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 있으면 업데이트를 위해 기존 값들을 지움
|
||||
if($output->data) $output = executeQuery('module.deleteLang', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 입력
|
||||
$lang_supported = Context::get('lang_supported');
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$args->lang_code = $key;
|
||||
$args->value = trim(Context::get($key));
|
||||
if(!$args->value) {
|
||||
$args->value = Context::get(strtolower($key));
|
||||
if(!$args->value) $args->value = $args->name;
|
||||
}
|
||||
$output = executeQuery('module.insertLang', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
$this->makeCacheDefinedLangCode($args->site_srl);
|
||||
|
||||
$this->add('name', $args->name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 언어 제거
|
||||
**/
|
||||
function procModuleAdminDeleteLang() {
|
||||
// 언어코드명 가져옴
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
$args->name = str_replace(' ','_',Context::get('name'));
|
||||
if(!$args->name) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$output = executeQuery('module.deleteLang', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
$this->makeCacheDefinedLangCode($args->site_srl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 사용자 정이 언어코드 파일 저장
|
||||
**/
|
||||
function makeCacheDefinedLangCode($site_srl = 0) {
|
||||
// 현재 사이트의 언어파일 가져오기
|
||||
if(!$site_srl) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
} else {
|
||||
$args->site_srl = $site_srl;
|
||||
}
|
||||
$output = executeQueryArray('module.getLang', $args);
|
||||
if(!$output->toBool() || !$output->data) return;
|
||||
|
||||
// 캐시 디렉토리 설정
|
||||
$cache_path = _XE_PATH_.'files/cache/lang_defined/';
|
||||
if(!is_dir($cache_path)) FileHandler::makeDir($cache_path);
|
||||
|
||||
$lang_supported = Context::get('lang_supported');
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$fp[$key] = fopen( sprintf('%s/%d.%s.php', $cache_path, $args->site_srl, $key), 'w' );
|
||||
if(!$fp[$key]) return;
|
||||
fwrite($fp[$key],"<?php if(!defined('__ZBXE__')) exit(); \r\n");
|
||||
}
|
||||
|
||||
foreach($output->data as $key => $val) {
|
||||
if($fp[$val->lang_code]) fwrite($fp[$val->lang_code], sprintf('$lang["%s"] = "%s";'."\r\n", $val->name, str_replace('"','\\"',$val->value)));
|
||||
}
|
||||
|
||||
foreach($lang_supported as $key => $val) {
|
||||
if(!$fp[$key]) continue;
|
||||
fwrite($fp[$key],"?>");
|
||||
fclose($fp[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,189 +1,189 @@
|
|||
<?php
|
||||
/**
|
||||
* @class moduleAdminModel
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @version 0.1
|
||||
* @brief module 모듈의 AdminModel class
|
||||
**/
|
||||
|
||||
class moduleAdminModel extends module {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief module_srl (,콤마로 연결된)로 대상 모듈들의 목록을 return)
|
||||
* 모듈 선택기(ModuleSelector)에서 사용됨
|
||||
**/
|
||||
function getModuleAdminModuleList() {
|
||||
$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);
|
||||
}
|
||||
|
||||
function getModuleMidList($args){
|
||||
$args->list_count = 20;
|
||||
$args->page_count = 10;
|
||||
$output = executeQueryArray('module.getModuleMidList', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
ModuleModel::syncModuleToSite($output->data);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 공통 :: 모듈의 모듈 권한 출력 페이지
|
||||
* 모듈의 모듈 권한 출력은 모든 모듈에서 module instance를 이용할때 사용할 수 있음
|
||||
**/
|
||||
function getModuleGrantHTML($module_srl, $source_grant_list) {
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
|
||||
// access, manager 권한은 가상 권한으로 설정
|
||||
$grant_list->access->title = Context::getLang('grant_access');
|
||||
$grant_list->access->default = 'guest';
|
||||
if(count($source_grant_list)) {
|
||||
foreach($source_grant_list as $key => $val) {
|
||||
if(!$val->default) $val->default = 'guest';
|
||||
if($val->default == 'root') $val->default = 'manager';
|
||||
$grant_list->{$key} = $val;
|
||||
}
|
||||
}
|
||||
$grant_list->manager->title = Context::getLang('grant_manager');
|
||||
$grant_list->manager->default = 'manager';
|
||||
Context::set('grant_list', $grant_list);
|
||||
|
||||
// 현재 모듈에 설정된 권한 그룹을 가져옴
|
||||
$default_grant = array();
|
||||
$args->module_srl = $module_srl;
|
||||
$output = executeQueryArray('module.getModuleGrants', $args);
|
||||
if($output->data) {
|
||||
foreach($output->data as $val) {
|
||||
if($val->group_srl == 0) $default_grant[$val->name] = 'all';
|
||||
else if($val->group_srl == -1) $default_grant[$val->name] = 'member';
|
||||
else if($val->group_srl == -2) $default_grant[$val->name] = 'site';
|
||||
else {
|
||||
$selected_group[$val->name][] = $val->group_srl;
|
||||
$default_grant[$val->name] = 'group';
|
||||
}
|
||||
}
|
||||
}
|
||||
Context::set('selected_group', $selected_group);
|
||||
Context::set('default_grant', $default_grant);
|
||||
Context::set('module_srl', $module_srl);
|
||||
// 현재 모듈에 설정된 관리자 아이디를 추출
|
||||
$admin_member = $oModuleModel->getAdminId($module_srl);
|
||||
Context::set('admin_member', $admin_member);
|
||||
|
||||
// 그룹을 가져옴
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups($module_info->site_srl);
|
||||
Context::set('group_list', $group_list);
|
||||
|
||||
// grant 정보를 추출
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
return $oTemplate->compile($this->module_path.'tpl', 'module_grants');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 공통 :: 모듈의 스킨 설정 출력 페이지
|
||||
**/
|
||||
function getModuleSkinHTML($module_srl) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if(!$module_info) return;
|
||||
|
||||
$skin = $module_info->skin;
|
||||
$module_path = './modules/'.$module_info->module;
|
||||
|
||||
// 스킨의 XML 정보를 구함
|
||||
$skin_info = $oModuleModel->loadSkinInfo($module_path, $skin);
|
||||
|
||||
// DB에 설정된 스킨 정보를 구함
|
||||
$skin_vars = $oModuleModel->getModuleSkinVars($module_srl);
|
||||
|
||||
if(count($skin_info->extra_vars)) {
|
||||
foreach($skin_info->extra_vars as $key => $val) {
|
||||
$group = $val->group;
|
||||
$name = $val->name;
|
||||
$type = $val->type;
|
||||
if($skin_vars[$name]) $value = $skin_vars[$name]->value;
|
||||
else $value = '';
|
||||
if($type=="checkbox" && !$value) $value = array();
|
||||
$skin_info->extra_vars[$key]->value= $value;
|
||||
}
|
||||
}
|
||||
|
||||
Context::set('module_info', $module_info);
|
||||
Context::set('mid', $module_info->mid);
|
||||
Context::set('skin_info', $skin_info);
|
||||
Context::set('skin_vars', $skin_vars);
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
return $oTemplate->compile($this->module_path.'tpl', 'skin_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 언어 코드에 대한 값들을 가져오기
|
||||
* lang_code를 직접 기입하면 해당 언어코드에 대해서만 가져오고 값이 없으면 $name을 그대로 return
|
||||
**/
|
||||
function getLangCode($site_srl, $name) {
|
||||
$lang_supported = Context::get('lang_supported');
|
||||
|
||||
if(substr($name,0,12)=='$user_lang->') {
|
||||
$args->site_srl = (int)$site_srl;
|
||||
$args->name = substr($name,12);
|
||||
$output = executeQueryArray('module.getLang', $args);
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) {
|
||||
$selected_lang[$val->lang_code] = $val->value;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$tmp = unserialize($name);
|
||||
if($tmp) {
|
||||
$selected_lang = array();
|
||||
$rand_name = $tmp[Context::getLangType()];
|
||||
if(!$rand_name) $rand_name = array_shift($tmp);
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$selected_lang[$key] = $tmp[$key]?$tmp[$key]:$rand_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$output = array();
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$output[$key] = $selected_lang[$key]?$selected_lang[$key]:$name;
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 언어를 ajax로 요청시 return
|
||||
**/
|
||||
function getModuleAdminLangCode() {
|
||||
$name = Context::get('name');
|
||||
if(!$name) return new Object(-1,'msg_invalid_request');
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$this->add('name', $name);
|
||||
$output = $this->getLangCode($site_module_info->site_srl, '$user_lang->'.$name);
|
||||
$this->add('langs', $output);
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class moduleAdminModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @version 0.1
|
||||
* @brief module 모듈의 AdminModel class
|
||||
**/
|
||||
|
||||
class moduleAdminModel extends module {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief module_srl (,콤마로 연결된)로 대상 모듈들의 목록을 return)
|
||||
* 모듈 선택기(ModuleSelector)에서 사용됨
|
||||
**/
|
||||
function getModuleAdminModuleList() {
|
||||
$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);
|
||||
}
|
||||
|
||||
function getModuleMidList($args){
|
||||
$args->list_count = 20;
|
||||
$args->page_count = 10;
|
||||
$output = executeQueryArray('module.getModuleMidList', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
ModuleModel::syncModuleToSite($output->data);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 공통 :: 모듈의 모듈 권한 출력 페이지
|
||||
* 모듈의 모듈 권한 출력은 모든 모듈에서 module instance를 이용할때 사용할 수 있음
|
||||
**/
|
||||
function getModuleGrantHTML($module_srl, $source_grant_list) {
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
|
||||
// access, manager 권한은 가상 권한으로 설정
|
||||
$grant_list->access->title = Context::getLang('grant_access');
|
||||
$grant_list->access->default = 'guest';
|
||||
if(count($source_grant_list)) {
|
||||
foreach($source_grant_list as $key => $val) {
|
||||
if(!$val->default) $val->default = 'guest';
|
||||
if($val->default == 'root') $val->default = 'manager';
|
||||
$grant_list->{$key} = $val;
|
||||
}
|
||||
}
|
||||
$grant_list->manager->title = Context::getLang('grant_manager');
|
||||
$grant_list->manager->default = 'manager';
|
||||
Context::set('grant_list', $grant_list);
|
||||
|
||||
// 현재 모듈에 설정된 권한 그룹을 가져옴
|
||||
$default_grant = array();
|
||||
$args->module_srl = $module_srl;
|
||||
$output = executeQueryArray('module.getModuleGrants', $args);
|
||||
if($output->data) {
|
||||
foreach($output->data as $val) {
|
||||
if($val->group_srl == 0) $default_grant[$val->name] = 'all';
|
||||
else if($val->group_srl == -1) $default_grant[$val->name] = 'member';
|
||||
else if($val->group_srl == -2) $default_grant[$val->name] = 'site';
|
||||
else {
|
||||
$selected_group[$val->name][] = $val->group_srl;
|
||||
$default_grant[$val->name] = 'group';
|
||||
}
|
||||
}
|
||||
}
|
||||
Context::set('selected_group', $selected_group);
|
||||
Context::set('default_grant', $default_grant);
|
||||
Context::set('module_srl', $module_srl);
|
||||
// 현재 모듈에 설정된 관리자 아이디를 추출
|
||||
$admin_member = $oModuleModel->getAdminId($module_srl);
|
||||
Context::set('admin_member', $admin_member);
|
||||
|
||||
// 그룹을 가져옴
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups($module_info->site_srl);
|
||||
Context::set('group_list', $group_list);
|
||||
|
||||
// grant 정보를 추출
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
return $oTemplate->compile($this->module_path.'tpl', 'module_grants');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 공통 :: 모듈의 스킨 설정 출력 페이지
|
||||
**/
|
||||
function getModuleSkinHTML($module_srl) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
if(!$module_info) return;
|
||||
|
||||
$skin = $module_info->skin;
|
||||
$module_path = './modules/'.$module_info->module;
|
||||
|
||||
// 스킨의 XML 정보를 구함
|
||||
$skin_info = $oModuleModel->loadSkinInfo($module_path, $skin);
|
||||
|
||||
// DB에 설정된 스킨 정보를 구함
|
||||
$skin_vars = $oModuleModel->getModuleSkinVars($module_srl);
|
||||
|
||||
if(count($skin_info->extra_vars)) {
|
||||
foreach($skin_info->extra_vars as $key => $val) {
|
||||
$group = $val->group;
|
||||
$name = $val->name;
|
||||
$type = $val->type;
|
||||
if($skin_vars[$name]) $value = $skin_vars[$name]->value;
|
||||
else $value = '';
|
||||
if($type=="checkbox" && !$value) $value = array();
|
||||
$skin_info->extra_vars[$key]->value= $value;
|
||||
}
|
||||
}
|
||||
|
||||
Context::set('module_info', $module_info);
|
||||
Context::set('mid', $module_info->mid);
|
||||
Context::set('skin_info', $skin_info);
|
||||
Context::set('skin_vars', $skin_vars);
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
return $oTemplate->compile($this->module_path.'tpl', 'skin_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 언어 코드에 대한 값들을 가져오기
|
||||
* lang_code를 직접 기입하면 해당 언어코드에 대해서만 가져오고 값이 없으면 $name을 그대로 return
|
||||
**/
|
||||
function getLangCode($site_srl, $name) {
|
||||
$lang_supported = Context::get('lang_supported');
|
||||
|
||||
if(substr($name,0,12)=='$user_lang->') {
|
||||
$args->site_srl = (int)$site_srl;
|
||||
$args->name = substr($name,12);
|
||||
$output = executeQueryArray('module.getLang', $args);
|
||||
if($output->data) {
|
||||
foreach($output->data as $key => $val) {
|
||||
$selected_lang[$val->lang_code] = $val->value;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$tmp = unserialize($name);
|
||||
if($tmp) {
|
||||
$selected_lang = array();
|
||||
$rand_name = $tmp[Context::getLangType()];
|
||||
if(!$rand_name) $rand_name = array_shift($tmp);
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$selected_lang[$key] = $tmp[$key]?$tmp[$key]:$rand_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$output = array();
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$output[$key] = $selected_lang[$key]?$selected_lang[$key]:$name;
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 언어를 ajax로 요청시 return
|
||||
**/
|
||||
function getModuleAdminLangCode() {
|
||||
$name = Context::get('name');
|
||||
if(!$name) return new Object(-1,'msg_invalid_request');
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$this->add('name', $name);
|
||||
$output = $this->getLangCode($site_module_info->site_srl, '$user_lang->'.$name);
|
||||
$this->add('langs', $output);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,224 +1,224 @@
|
|||
<?php
|
||||
/**
|
||||
* @class moduleAdminView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief module 모듈의 admin view class
|
||||
**/
|
||||
|
||||
class moduleAdminView extends module {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// template path 지정
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 관리자 페이지
|
||||
**/
|
||||
function dispModuleAdminContent() {
|
||||
$this->dispModuleAdminList();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 목록 출력
|
||||
**/
|
||||
function dispModuleAdminList() {
|
||||
// 모듈 목록을 구해서
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_list = $oModuleModel->getModuleList();
|
||||
Context::set('module_list', $module_list);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈의 상세 정보(conf/info.xml)를 팝업 출력
|
||||
**/
|
||||
function dispModuleAdminInfo() {
|
||||
// 모듈 목록을 구해서
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoXml(Context::get('selected_module'));
|
||||
Context::set('module_info', $module_info);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 카테고리 목록
|
||||
**/
|
||||
function dispModuleAdminCategory() {
|
||||
$module_category_srl = Context::get('module_category_srl');
|
||||
|
||||
// 모듈 목록을 구해서
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 선택된 카테고리가 있으면 해당 카테고리의 정보 수정 페이지로
|
||||
if($module_category_srl) {
|
||||
$selected_category = $oModuleModel->getModuleCategory($module_category_srl);
|
||||
Context::set('selected_category', $selected_category);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('category_update_form');
|
||||
|
||||
// 아니면 전체 목록
|
||||
} else {
|
||||
$category_list = $oModuleModel->getModuleCategories();
|
||||
Context::set('category_list', $category_list);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('category_list');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 복사 기능
|
||||
**/
|
||||
function dispModuleAdminCopyModule() {
|
||||
// 복사하려는 대상 모듈을 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// 해당 모듈의 정보를 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
Context::set('module_info', $module_info);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('copy_module');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 기본 설정 일괄 적용
|
||||
**/
|
||||
function dispModuleAdminModuleSetup() {
|
||||
$module_srls = Context::get('module_srls');
|
||||
|
||||
$modules = explode(',',$module_srls);
|
||||
if(!count($modules)) if(!$module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($modules[0]);
|
||||
|
||||
// 모듈의 스킨 목록을 구함
|
||||
$skin_list = $oModuleModel->getSkins('./modules/'.$module_info->module);
|
||||
Context::set('skin_list',$skin_list);
|
||||
|
||||
// 레이아웃 목록을 구해옴
|
||||
$oLayoutMode = &getModel('layout');
|
||||
$layout_list = $oLayoutMode->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
// 모듈 카테고리 목록을 구함
|
||||
$module_category = $oModuleModel->getModuleCategories();
|
||||
Context::set('module_category', $module_category);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_setup');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 추가 설정 일괄 적용
|
||||
**/
|
||||
function dispModuleAdminModuleAdditionSetup() {
|
||||
$module_srls = Context::get('module_srls');
|
||||
|
||||
$modules = explode(',',$module_srls);
|
||||
if(!count($modules)) if(!$module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
// content는 다른 모듈에서 call by reference로 받아오기에 미리 변수 선언만 해 놓음
|
||||
$content = '';
|
||||
|
||||
// 추가 설정을 위한 트리거 호출
|
||||
// 게시판 모듈이지만 차후 다른 모듈에서의 사용도 고려하여 trigger 이름을 공용으로 사용할 수 있도록 하였음
|
||||
$output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'before', $content);
|
||||
$output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'after', $content);
|
||||
Context::set('setup_content', $content);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_addition_setup');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 권한 설정 일괄 적용
|
||||
**/
|
||||
function dispModuleAdminModuleGrantSetup() {
|
||||
$module_srls = Context::get('module_srls');
|
||||
|
||||
$modules = explode(',',$module_srls);
|
||||
if(!count($modules)) if(!$module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($modules[0]);
|
||||
$xml_info = $oModuleModel->getModuleActionXml($module_info->module);
|
||||
$source_grant_list = $xml_info->grant;
|
||||
|
||||
// access, manager 권한은 가상 권한으로 설정
|
||||
$grant_list->access->title = Context::getLang('grant_access');
|
||||
$grant_list->access->default = 'guest';
|
||||
if(count($source_grant_list)) {
|
||||
foreach($source_grant_list as $key => $val) {
|
||||
if(!$val->default) $val->default = 'guest';
|
||||
if($val->default == 'root') $val->default = 'manager';
|
||||
$grant_list->{$key} = $val;
|
||||
}
|
||||
}
|
||||
$grant_list->manager->title = Context::getLang('grant_manager');
|
||||
$grant_list->manager->default = 'manager';
|
||||
Context::set('grant_list', $grant_list);
|
||||
|
||||
// 그룹을 가져옴
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups($module_info->site_srl);
|
||||
Context::set('group_list', $group_list);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_grant_setup');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 언어 코드
|
||||
**/
|
||||
function dispModuleAdminLangcode() {
|
||||
// 현재 사이트의 언어파일 가져오기
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
$args->sort_index = 'name';
|
||||
$args->order_type = 'asc';
|
||||
$output = executeQueryArray('module.getLangList', $args);
|
||||
Context::set('lang_list', $output->data);
|
||||
|
||||
// 현재 선택된 언어 가져오기
|
||||
$name = Context::get('name');
|
||||
if($name) {
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
Context::set('selected_lang', $oModuleAdminModel->getLangCode($args->site_srl,'$user_lang->'.$name));
|
||||
}
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_langcode');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class moduleAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief module 모듈의 admin view class
|
||||
**/
|
||||
|
||||
class moduleAdminView extends module {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// template path 지정
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 관리자 페이지
|
||||
**/
|
||||
function dispModuleAdminContent() {
|
||||
$this->dispModuleAdminList();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 목록 출력
|
||||
**/
|
||||
function dispModuleAdminList() {
|
||||
// 모듈 목록을 구해서
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_list = $oModuleModel->getModuleList();
|
||||
Context::set('module_list', $module_list);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈의 상세 정보(conf/info.xml)를 팝업 출력
|
||||
**/
|
||||
function dispModuleAdminInfo() {
|
||||
// 모듈 목록을 구해서
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoXml(Context::get('selected_module'));
|
||||
Context::set('module_info', $module_info);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 카테고리 목록
|
||||
**/
|
||||
function dispModuleAdminCategory() {
|
||||
$module_category_srl = Context::get('module_category_srl');
|
||||
|
||||
// 모듈 목록을 구해서
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 선택된 카테고리가 있으면 해당 카테고리의 정보 수정 페이지로
|
||||
if($module_category_srl) {
|
||||
$selected_category = $oModuleModel->getModuleCategory($module_category_srl);
|
||||
Context::set('selected_category', $selected_category);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('category_update_form');
|
||||
|
||||
// 아니면 전체 목록
|
||||
} else {
|
||||
$category_list = $oModuleModel->getModuleCategories();
|
||||
Context::set('category_list', $category_list);
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('category_list');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 복사 기능
|
||||
**/
|
||||
function dispModuleAdminCopyModule() {
|
||||
// 복사하려는 대상 모듈을 구함
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// 해당 모듈의 정보를 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
Context::set('module_info', $module_info);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('copy_module');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 기본 설정 일괄 적용
|
||||
**/
|
||||
function dispModuleAdminModuleSetup() {
|
||||
$module_srls = Context::get('module_srls');
|
||||
|
||||
$modules = explode(',',$module_srls);
|
||||
if(!count($modules)) if(!$module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($modules[0]);
|
||||
|
||||
// 모듈의 스킨 목록을 구함
|
||||
$skin_list = $oModuleModel->getSkins('./modules/'.$module_info->module);
|
||||
Context::set('skin_list',$skin_list);
|
||||
|
||||
// 레이아웃 목록을 구해옴
|
||||
$oLayoutMode = &getModel('layout');
|
||||
$layout_list = $oLayoutMode->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
// 모듈 카테고리 목록을 구함
|
||||
$module_category = $oModuleModel->getModuleCategories();
|
||||
Context::set('module_category', $module_category);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_setup');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 추가 설정 일괄 적용
|
||||
**/
|
||||
function dispModuleAdminModuleAdditionSetup() {
|
||||
$module_srls = Context::get('module_srls');
|
||||
|
||||
$modules = explode(',',$module_srls);
|
||||
if(!count($modules)) if(!$module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
// content는 다른 모듈에서 call by reference로 받아오기에 미리 변수 선언만 해 놓음
|
||||
$content = '';
|
||||
|
||||
// 추가 설정을 위한 트리거 호출
|
||||
// 게시판 모듈이지만 차후 다른 모듈에서의 사용도 고려하여 trigger 이름을 공용으로 사용할 수 있도록 하였음
|
||||
$output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'before', $content);
|
||||
$output = ModuleHandler::triggerCall('module.dispAdditionSetup', 'after', $content);
|
||||
Context::set('setup_content', $content);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_addition_setup');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 권한 설정 일괄 적용
|
||||
**/
|
||||
function dispModuleAdminModuleGrantSetup() {
|
||||
$module_srls = Context::get('module_srls');
|
||||
|
||||
$modules = explode(',',$module_srls);
|
||||
if(!count($modules)) if(!$module_srls) return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($modules[0]);
|
||||
$xml_info = $oModuleModel->getModuleActionXml($module_info->module);
|
||||
$source_grant_list = $xml_info->grant;
|
||||
|
||||
// access, manager 권한은 가상 권한으로 설정
|
||||
$grant_list->access->title = Context::getLang('grant_access');
|
||||
$grant_list->access->default = 'guest';
|
||||
if(count($source_grant_list)) {
|
||||
foreach($source_grant_list as $key => $val) {
|
||||
if(!$val->default) $val->default = 'guest';
|
||||
if($val->default == 'root') $val->default = 'manager';
|
||||
$grant_list->{$key} = $val;
|
||||
}
|
||||
}
|
||||
$grant_list->manager->title = Context::getLang('grant_manager');
|
||||
$grant_list->manager->default = 'manager';
|
||||
Context::set('grant_list', $grant_list);
|
||||
|
||||
// 그룹을 가져옴
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups($module_info->site_srl);
|
||||
Context::set('group_list', $group_list);
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_grant_setup');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 언어 코드
|
||||
**/
|
||||
function dispModuleAdminLangcode() {
|
||||
// 현재 사이트의 언어파일 가져오기
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
$args->sort_index = 'name';
|
||||
$args->order_type = 'asc';
|
||||
$output = executeQueryArray('module.getLangList', $args);
|
||||
Context::set('lang_list', $output->data);
|
||||
|
||||
// 현재 선택된 언어 가져오기
|
||||
$name = Context::get('name');
|
||||
if($name) {
|
||||
$oModuleAdminModel = &getAdminModel('module');
|
||||
Context::set('selected_lang', $oModuleAdminModel->getLangCode($args->site_srl,'$user_lang->'.$name));
|
||||
}
|
||||
|
||||
// 레이아웃을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('module_langcode');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,367 +1,367 @@
|
|||
<?php
|
||||
/**
|
||||
* @class module
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief module 모듈의 high class
|
||||
**/
|
||||
|
||||
class module extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// action forward에 등록 (관리자 모드에서 사용하기 위함)
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->addIndex("modules","idx_site_mid", array("site_srl","mid"), true);
|
||||
$oDB->addIndex('sites','unique_domain',array('domain'),true);
|
||||
|
||||
// module 모듈에서 사용할 디렉토리 생성
|
||||
FileHandler::makeDir('./files/cache/module_info');
|
||||
FileHandler::makeDir('./files/cache/triggers');
|
||||
|
||||
// sites 테이블에 기본 사이트 정보 입력
|
||||
$args->site_srl = 0;
|
||||
$output = $oDB->executeQuery('module.getSite', $args);
|
||||
if(!$output->data || !$output->data->index_module_srl) {
|
||||
$db_info = Context::getDBInfo();
|
||||
$domain = Context::getDefaultUrl();
|
||||
$url_info = parse_url($domain);
|
||||
$domain = $url_info['host'].( (!empty($url_info['port'])&&$url_info['port']!=80)?':'.$url_info['port']:'').$url_info['path'];
|
||||
$site_args->site_srl = 0;
|
||||
$site_args->index_module_srl = 0;
|
||||
$site_args->domain = $domain;
|
||||
$site_args->default_language = $db_info->lang_type;
|
||||
|
||||
$output = executeQuery('module.insertSite', $site_args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
|
||||
// 2008. 10. 27 module_part_config 테이블의 결합 인덱스 추가
|
||||
if(!$oDB->isIndexExists("module_part_config","idx_module_part_config")) return true;
|
||||
|
||||
// 2008. 11. 13 modules 의 mid를 unique를 없애고 site_srl을 추가 후에 site_srl + mid unique index
|
||||
if(!$oDB->isIndexExists('modules',"idx_site_mid")) return true;
|
||||
|
||||
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
|
||||
if($oDB->isColumnExists('modules', 'grants')) return true;
|
||||
|
||||
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
|
||||
if(!$oDB->isColumnExists('sites', 'default_language')) return true;
|
||||
|
||||
// extra_vars* 컬럼 제거
|
||||
for($i=1;$i<=20;$i++) {
|
||||
if($oDB->isColumnExists("documents","extra_vars".$i)) return true;
|
||||
}
|
||||
|
||||
// sites 테이블에 기본 사이트 정보 입력
|
||||
$args->site_srl = 0;
|
||||
$output = $oDB->executeQuery('module.getSite', $args);
|
||||
if(!$output->data) return true;
|
||||
|
||||
// sites 테이블에서 도메인이 인덱스로 걸린경우
|
||||
if($oDB->isIndexExists('sites', 'idx_domain')) return true;
|
||||
if(!$oDB->isIndexExists('sites','unique_domain')) return true;
|
||||
|
||||
if(!$oDB->isColumnExists("modules", "use_mobile")) return true;
|
||||
if(!$oDB->isColumnExists("modules", "mlayout_srl")) return true;
|
||||
if(!$oDB->isColumnExists("modules", "mcontent")) return true;
|
||||
if(!$oDB->isColumnExists("modules", "mskin")) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
|
||||
// 2008. 10. 27 module_part_config 테이블의 결합 인덱스 추가하고 기존에 module_config에 몰려 있던 모든 정보를 재점검
|
||||
if(!$oDB->isIndexExists("module_part_config","idx_module_part_config")) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
$modules = $oModuleModel->getModuleList();
|
||||
foreach($modules as $key => $module_info) {
|
||||
$module = $module_info->module;
|
||||
if(!in_array($module, array('point','trackback','layout','rss','file','comment','editor'))) continue;
|
||||
$config = $oModuleModel->getModuleConfig($module);
|
||||
|
||||
$module_config = null;
|
||||
switch($module) {
|
||||
case 'point' :
|
||||
$module_config = $config->module_point;
|
||||
unset($config->module_point);
|
||||
break;
|
||||
case 'trackback' :
|
||||
case 'rss' :
|
||||
case 'file' :
|
||||
case 'comment' :
|
||||
case 'editor' :
|
||||
$module_config = $config->module_config;
|
||||
unset($config->module_config);
|
||||
if(is_array($module_config) && count($module_config)) {
|
||||
foreach($module_config as $key => $val) {
|
||||
if(isset($module_config[$key]->module_srl)) unset($module_config[$key]->module_srl);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'layout' :
|
||||
$tmp = $config->header_script;
|
||||
if(is_array($tmp) && count($tmp)) {
|
||||
foreach($tmp as $k => $v) {
|
||||
if(!$v && !trim($v)) continue;
|
||||
$module_config[$k]->header_script = $v;
|
||||
}
|
||||
}
|
||||
$config = null;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
$oModuleController->insertModuleConfig($module, $config);
|
||||
|
||||
if(is_array($module_config) && count($module_config)) {
|
||||
foreach($module_config as $module_srl => $module_part_config) {
|
||||
$oModuleController->insertModulePartConfig($module,$module_srl,$module_part_config);
|
||||
}
|
||||
}
|
||||
}
|
||||
$oDB->addIndex("module_part_config","idx_module_part_config", array("module","module_srl"));
|
||||
}
|
||||
|
||||
// 2008. 11. 13 modules 의 mid를 unique를 없애고 site_srl을 추가 후에 site_srl + mid unique index
|
||||
if(!$oDB->isIndexExists('modules',"idx_site_mid")) {
|
||||
$oDB->dropIndex("modules","unique_mid",true);
|
||||
$oDB->addColumn('modules','site_srl','number',11,0,true);
|
||||
$oDB->addIndex("modules","idx_site_mid", array("site_srl","mid"),true);
|
||||
}
|
||||
|
||||
// document 확장변수의 확장을 위한 처리
|
||||
if(!$oDB->isTableExists('document_extra_vars')) $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_vars.xml');
|
||||
|
||||
if(!$oDB->isTableExists('document_extra_keys')) $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_keys.xml');
|
||||
|
||||
// 모든 모듈의 권한, 스킨정보, 확장정보, 관리자 아이디를 grants 테이블로 이전시키는 업데이트
|
||||
if($oDB->isColumnExists('modules', 'grants')) {
|
||||
$oModuleController = &getController('module');
|
||||
$oDocumentController = &getController('document');
|
||||
|
||||
// 현재 시스템 언어 코드값을 가져옴
|
||||
$lang_code = Context::getLangType();
|
||||
|
||||
// 모든 모듈의 module_info를 가져옴
|
||||
$output = executeQueryArray('module.getModuleInfos');
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $module_info) {
|
||||
// 모듈들의 권한/ 확장변수(게시글 확장 포함)/ 스킨 변수/ 최고관리권한 정보 분리
|
||||
$module_srl = trim($module_info->module_srl);
|
||||
|
||||
// 권한 등록
|
||||
$grants = unserialize($module_info->grants);
|
||||
if($grants) $oModuleController->insertModuleGrants($module_srl, $grants);
|
||||
|
||||
// 스킨 변수 등록
|
||||
$skin_vars = unserialize($module_info->skin_vars);
|
||||
if($skin_vars) $oModuleController->insertModuleSkinVars($module_srl, $skin_vars);
|
||||
|
||||
// 최고 관리자 아이디 등록
|
||||
$admin_id = trim($module_info->admin_id);
|
||||
if($admin_id && $admin_id != 'Array') {
|
||||
$admin_ids = explode(',',$admin_id);
|
||||
if(count($admin_id)) {
|
||||
foreach($admin_ids as $admin_id) {
|
||||
$oModuleController->insertAdminId($module_srl, $admin_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 모듈별 추가 설정 저장 (기본 modules에 없던 컬럼 데이터)
|
||||
$extra_vars = unserialize($module_info->extra_vars);
|
||||
$document_extra_keys = null;
|
||||
if($extra_vars->extra_vars && count($extra_vars->extra_vars)) {
|
||||
$document_extra_keys = $extra_vars->extra_vars;
|
||||
unset($extra_vars->extra_vars);
|
||||
}
|
||||
if($extra_vars) $oModuleController->insertModuleExtraVars($module_srl, $extra_vars);
|
||||
|
||||
/**
|
||||
* 게시글 확장변수 이동 (documents모듈에서 해야 하지만 modules 테이블의 추가 변수들이 정리되기에 여기서 함)
|
||||
**/
|
||||
// 플래닛모듈의 경우 직접 추가 변수 입력
|
||||
if($module_info->module == 'planet') {
|
||||
if(!$document_extra_keys || !is_array($document_extra_keys)) $document_extra_keys = array();
|
||||
$planet_extra_keys->name = 'postscript';
|
||||
$planet_extra_keys->type = 'text';
|
||||
$planet_extra_keys->is_required = 'N';
|
||||
$planet_extra_keys->search = 'N';
|
||||
$planet_extra_keys->default = '';
|
||||
$planet_extra_keys->desc = '';
|
||||
$document_extra_keys[20] = $planet_extra_keys;
|
||||
}
|
||||
|
||||
// 게시글 확장변수 키 등록
|
||||
if(count($document_extra_keys)) {
|
||||
foreach($document_extra_keys as $var_idx => $val) {
|
||||
$oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $val->name, $val->type, $val->is_required, $val->search, $val->default, $val->desc, 'extra_vars'.$var_idx);
|
||||
}
|
||||
|
||||
// 2009-04-14 #17923809 게시물 100개의 확장 변수만 이전되는 문제점 수정
|
||||
$oDocumentModel = &getModel('document');
|
||||
$total_count = $oDocumentModel->getDocumentCount($module_srl);
|
||||
|
||||
if ($total_count > 0) {
|
||||
$per_page = 100;
|
||||
$total_pages = (int) (($total_count - 1) / $per_page) + 1;
|
||||
|
||||
// 확장변수가 존재하면 확장변수 가져오기
|
||||
$doc_args = null;
|
||||
$doc_args->module_srl = $module_srl;
|
||||
$doc_args->list_count = $per_page;
|
||||
$doc_args->sort_index = 'list_order';
|
||||
$doc_args->order_type = 'asc';
|
||||
|
||||
for ($doc_args->page = 1; $doc_args->page <= $total_pages; $doc_args->page++) {
|
||||
$output = executeQueryArray('document.getDocumentList', $doc_args);
|
||||
|
||||
if ($output->toBool() && $output->data && count($output->data)) {
|
||||
foreach ($output->data as $document) {
|
||||
if (!$document) continue;
|
||||
foreach ($document as $key => $var) {
|
||||
if (strpos($key, 'extra_vars') !== 0 || !trim($var) || $var == 'N;') continue;
|
||||
$var_idx = str_replace('extra_vars','',$key);
|
||||
$oDocumentController->insertDocumentExtraVar($module_srl, $document->document_srl, $var_idx, $var, 'extra_vars'.$var_idx, $lang_code);
|
||||
}
|
||||
}
|
||||
}
|
||||
} // for total_pages
|
||||
} // if count
|
||||
}
|
||||
|
||||
// 해당 모듈들의 추가 변수들 제거
|
||||
$module_info->grant = null;
|
||||
$module_info->extra_vars = null;
|
||||
$module_info->skin_vars = null;
|
||||
$module_info->admin_id = null;
|
||||
executeQuery('module.updateModule', $module_info);
|
||||
}
|
||||
}
|
||||
|
||||
// 각종 column drop
|
||||
$oDB->dropColumn('modules','grants');
|
||||
$oDB->dropColumn('modules','admin_id');
|
||||
$oDB->dropColumn('modules','skin_vars');
|
||||
$oDB->dropColumn('modules','extra_vars');
|
||||
}
|
||||
|
||||
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
|
||||
if(!$oDB->isColumnExists('sites', 'default_language')) {
|
||||
$oDB->addColumn('sites','default_language','varchar',255,0,false);
|
||||
}
|
||||
|
||||
// extra_vars* 컬럼 제거
|
||||
for($i=1;$i<=20;$i++) {
|
||||
if(!$oDB->isColumnExists("documents","extra_vars".$i)) continue;
|
||||
$oDB->dropColumn('documents','extra_vars'.$i);
|
||||
}
|
||||
|
||||
// sites 테이블에 기본 사이트 정보 입력
|
||||
$args->site_srl = 0;
|
||||
$output = $oDB->executeQuery('module.getSite', $args);
|
||||
if(!$output->data) {
|
||||
// 기본 mid, 언어 구함
|
||||
$mid_output = $oDB->executeQuery('module.getDefaultMidInfo', $args);
|
||||
$db_info = Context::getDBInfo();
|
||||
$domain = Context::getDefaultUrl();
|
||||
$url_info = parse_url($domain);
|
||||
$domain = $url_info['host'].( (!empty($url_info['port'])&&$url_info['port']!=80)?':'.$url_info['port']:'').$url_info['path'];
|
||||
$site_args->site_srl = 0;
|
||||
$site_args->index_module_srl = $mid_output->data->module_srl;
|
||||
$site_args->domain = $domain;
|
||||
$site_args->default_language = $db_info->lang_type;
|
||||
|
||||
$output = executeQuery('module.insertSite', $site_args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
|
||||
if($oDB->isIndexExists('sites','idx_domain')){
|
||||
$oDB->dropIndex('sites','idx_domain');
|
||||
}
|
||||
if(!$oDB->isIndexExists('sites','unique_domain')){
|
||||
$this->updateForUniqueSiteDomain();
|
||||
$oDB->addIndex('sites','unique_domain',array('domain'),true);
|
||||
}
|
||||
|
||||
if(!$oDB->isColumnExists("modules", "use_mobile")) {
|
||||
$oDB->addColumn('modules','use_mobile','char',1,'N');
|
||||
}
|
||||
if(!$oDB->isColumnExists("modules", "mlayout_srl")) {
|
||||
$oDB->addColumn('modules','mlayout_srl','number',11, 0);
|
||||
}
|
||||
if(!$oDB->isColumnExists("modules", "mcontent")) {
|
||||
$oDB->addColumn('modules','mcontent','bigtext');
|
||||
}
|
||||
if(!$oDB->isColumnExists("modules", "mskin")) {
|
||||
$oDB->addColumn('modules','mskin','varchar',250);
|
||||
}
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
function updateForUniqueSiteDomain()
|
||||
{
|
||||
$output = executeQueryArray("module.getNonuniqueDomains");
|
||||
if(!$output->data) return;
|
||||
foreach($output->data as $data)
|
||||
{
|
||||
if($data->count == 1) continue;
|
||||
$domain = $data->domain;
|
||||
$args = null;
|
||||
$args->domain = $domain;
|
||||
$output2 = executeQueryArray("module.getSiteByDomain", $args);
|
||||
$bFirst = true;
|
||||
foreach($output2->data as $site)
|
||||
{
|
||||
if($bFirst)
|
||||
{
|
||||
$bFirst = false;
|
||||
continue;
|
||||
}
|
||||
$domain .= "_";
|
||||
$args = null;
|
||||
$args->domain = $domain;
|
||||
$args->site_srl = $site->site_srl;
|
||||
$output3 = executeQuery("module.updateSite", $args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
// 모듈 정보 캐시 파일 모두 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/module_info");
|
||||
|
||||
// 트리거 정보가 있는 파일 모두 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/triggers");
|
||||
|
||||
// DB캐시 파일을 모두 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/db");
|
||||
|
||||
// 기타 캐시 삭제
|
||||
FileHandler::removeDir("./files/cache/tmp");
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class module
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief module 모듈의 high class
|
||||
**/
|
||||
|
||||
class module extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// action forward에 등록 (관리자 모드에서 사용하기 위함)
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->addIndex("modules","idx_site_mid", array("site_srl","mid"), true);
|
||||
$oDB->addIndex('sites','unique_domain',array('domain'),true);
|
||||
|
||||
// module 모듈에서 사용할 디렉토리 생성
|
||||
FileHandler::makeDir('./files/cache/module_info');
|
||||
FileHandler::makeDir('./files/cache/triggers');
|
||||
|
||||
// sites 테이블에 기본 사이트 정보 입력
|
||||
$args->site_srl = 0;
|
||||
$output = $oDB->executeQuery('module.getSite', $args);
|
||||
if(!$output->data || !$output->data->index_module_srl) {
|
||||
$db_info = Context::getDBInfo();
|
||||
$domain = Context::getDefaultUrl();
|
||||
$url_info = parse_url($domain);
|
||||
$domain = $url_info['host'].( (!empty($url_info['port'])&&$url_info['port']!=80)?':'.$url_info['port']:'').$url_info['path'];
|
||||
$site_args->site_srl = 0;
|
||||
$site_args->index_module_srl = 0;
|
||||
$site_args->domain = $domain;
|
||||
$site_args->default_language = $db_info->lang_type;
|
||||
|
||||
$output = executeQuery('module.insertSite', $site_args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
|
||||
// 2008. 10. 27 module_part_config 테이블의 결합 인덱스 추가
|
||||
if(!$oDB->isIndexExists("module_part_config","idx_module_part_config")) return true;
|
||||
|
||||
// 2008. 11. 13 modules 의 mid를 unique를 없애고 site_srl을 추가 후에 site_srl + mid unique index
|
||||
if(!$oDB->isIndexExists('modules',"idx_site_mid")) return true;
|
||||
|
||||
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
|
||||
if($oDB->isColumnExists('modules', 'grants')) return true;
|
||||
|
||||
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
|
||||
if(!$oDB->isColumnExists('sites', 'default_language')) return true;
|
||||
|
||||
// extra_vars* 컬럼 제거
|
||||
for($i=1;$i<=20;$i++) {
|
||||
if($oDB->isColumnExists("documents","extra_vars".$i)) return true;
|
||||
}
|
||||
|
||||
// sites 테이블에 기본 사이트 정보 입력
|
||||
$args->site_srl = 0;
|
||||
$output = $oDB->executeQuery('module.getSite', $args);
|
||||
if(!$output->data) return true;
|
||||
|
||||
// sites 테이블에서 도메인이 인덱스로 걸린경우
|
||||
if($oDB->isIndexExists('sites', 'idx_domain')) return true;
|
||||
if(!$oDB->isIndexExists('sites','unique_domain')) return true;
|
||||
|
||||
if(!$oDB->isColumnExists("modules", "use_mobile")) return true;
|
||||
if(!$oDB->isColumnExists("modules", "mlayout_srl")) return true;
|
||||
if(!$oDB->isColumnExists("modules", "mcontent")) return true;
|
||||
if(!$oDB->isColumnExists("modules", "mskin")) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
|
||||
// 2008. 10. 27 module_part_config 테이블의 결합 인덱스 추가하고 기존에 module_config에 몰려 있던 모든 정보를 재점검
|
||||
if(!$oDB->isIndexExists("module_part_config","idx_module_part_config")) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
$modules = $oModuleModel->getModuleList();
|
||||
foreach($modules as $key => $module_info) {
|
||||
$module = $module_info->module;
|
||||
if(!in_array($module, array('point','trackback','layout','rss','file','comment','editor'))) continue;
|
||||
$config = $oModuleModel->getModuleConfig($module);
|
||||
|
||||
$module_config = null;
|
||||
switch($module) {
|
||||
case 'point' :
|
||||
$module_config = $config->module_point;
|
||||
unset($config->module_point);
|
||||
break;
|
||||
case 'trackback' :
|
||||
case 'rss' :
|
||||
case 'file' :
|
||||
case 'comment' :
|
||||
case 'editor' :
|
||||
$module_config = $config->module_config;
|
||||
unset($config->module_config);
|
||||
if(is_array($module_config) && count($module_config)) {
|
||||
foreach($module_config as $key => $val) {
|
||||
if(isset($module_config[$key]->module_srl)) unset($module_config[$key]->module_srl);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'layout' :
|
||||
$tmp = $config->header_script;
|
||||
if(is_array($tmp) && count($tmp)) {
|
||||
foreach($tmp as $k => $v) {
|
||||
if(!$v && !trim($v)) continue;
|
||||
$module_config[$k]->header_script = $v;
|
||||
}
|
||||
}
|
||||
$config = null;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
$oModuleController->insertModuleConfig($module, $config);
|
||||
|
||||
if(is_array($module_config) && count($module_config)) {
|
||||
foreach($module_config as $module_srl => $module_part_config) {
|
||||
$oModuleController->insertModulePartConfig($module,$module_srl,$module_part_config);
|
||||
}
|
||||
}
|
||||
}
|
||||
$oDB->addIndex("module_part_config","idx_module_part_config", array("module","module_srl"));
|
||||
}
|
||||
|
||||
// 2008. 11. 13 modules 의 mid를 unique를 없애고 site_srl을 추가 후에 site_srl + mid unique index
|
||||
if(!$oDB->isIndexExists('modules',"idx_site_mid")) {
|
||||
$oDB->dropIndex("modules","unique_mid",true);
|
||||
$oDB->addColumn('modules','site_srl','number',11,0,true);
|
||||
$oDB->addIndex("modules","idx_site_mid", array("site_srl","mid"),true);
|
||||
}
|
||||
|
||||
// document 확장변수의 확장을 위한 처리
|
||||
if(!$oDB->isTableExists('document_extra_vars')) $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_vars.xml');
|
||||
|
||||
if(!$oDB->isTableExists('document_extra_keys')) $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_keys.xml');
|
||||
|
||||
// 모든 모듈의 권한, 스킨정보, 확장정보, 관리자 아이디를 grants 테이블로 이전시키는 업데이트
|
||||
if($oDB->isColumnExists('modules', 'grants')) {
|
||||
$oModuleController = &getController('module');
|
||||
$oDocumentController = &getController('document');
|
||||
|
||||
// 현재 시스템 언어 코드값을 가져옴
|
||||
$lang_code = Context::getLangType();
|
||||
|
||||
// 모든 모듈의 module_info를 가져옴
|
||||
$output = executeQueryArray('module.getModuleInfos');
|
||||
if(count($output->data)) {
|
||||
foreach($output->data as $module_info) {
|
||||
// 모듈들의 권한/ 확장변수(게시글 확장 포함)/ 스킨 변수/ 최고관리권한 정보 분리
|
||||
$module_srl = trim($module_info->module_srl);
|
||||
|
||||
// 권한 등록
|
||||
$grants = unserialize($module_info->grants);
|
||||
if($grants) $oModuleController->insertModuleGrants($module_srl, $grants);
|
||||
|
||||
// 스킨 변수 등록
|
||||
$skin_vars = unserialize($module_info->skin_vars);
|
||||
if($skin_vars) $oModuleController->insertModuleSkinVars($module_srl, $skin_vars);
|
||||
|
||||
// 최고 관리자 아이디 등록
|
||||
$admin_id = trim($module_info->admin_id);
|
||||
if($admin_id && $admin_id != 'Array') {
|
||||
$admin_ids = explode(',',$admin_id);
|
||||
if(count($admin_id)) {
|
||||
foreach($admin_ids as $admin_id) {
|
||||
$oModuleController->insertAdminId($module_srl, $admin_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 모듈별 추가 설정 저장 (기본 modules에 없던 컬럼 데이터)
|
||||
$extra_vars = unserialize($module_info->extra_vars);
|
||||
$document_extra_keys = null;
|
||||
if($extra_vars->extra_vars && count($extra_vars->extra_vars)) {
|
||||
$document_extra_keys = $extra_vars->extra_vars;
|
||||
unset($extra_vars->extra_vars);
|
||||
}
|
||||
if($extra_vars) $oModuleController->insertModuleExtraVars($module_srl, $extra_vars);
|
||||
|
||||
/**
|
||||
* 게시글 확장변수 이동 (documents모듈에서 해야 하지만 modules 테이블의 추가 변수들이 정리되기에 여기서 함)
|
||||
**/
|
||||
// 플래닛모듈의 경우 직접 추가 변수 입력
|
||||
if($module_info->module == 'planet') {
|
||||
if(!$document_extra_keys || !is_array($document_extra_keys)) $document_extra_keys = array();
|
||||
$planet_extra_keys->name = 'postscript';
|
||||
$planet_extra_keys->type = 'text';
|
||||
$planet_extra_keys->is_required = 'N';
|
||||
$planet_extra_keys->search = 'N';
|
||||
$planet_extra_keys->default = '';
|
||||
$planet_extra_keys->desc = '';
|
||||
$document_extra_keys[20] = $planet_extra_keys;
|
||||
}
|
||||
|
||||
// 게시글 확장변수 키 등록
|
||||
if(count($document_extra_keys)) {
|
||||
foreach($document_extra_keys as $var_idx => $val) {
|
||||
$oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $val->name, $val->type, $val->is_required, $val->search, $val->default, $val->desc, 'extra_vars'.$var_idx);
|
||||
}
|
||||
|
||||
// 2009-04-14 #17923809 게시물 100개의 확장 변수만 이전되는 문제점 수정
|
||||
$oDocumentModel = &getModel('document');
|
||||
$total_count = $oDocumentModel->getDocumentCount($module_srl);
|
||||
|
||||
if ($total_count > 0) {
|
||||
$per_page = 100;
|
||||
$total_pages = (int) (($total_count - 1) / $per_page) + 1;
|
||||
|
||||
// 확장변수가 존재하면 확장변수 가져오기
|
||||
$doc_args = null;
|
||||
$doc_args->module_srl = $module_srl;
|
||||
$doc_args->list_count = $per_page;
|
||||
$doc_args->sort_index = 'list_order';
|
||||
$doc_args->order_type = 'asc';
|
||||
|
||||
for ($doc_args->page = 1; $doc_args->page <= $total_pages; $doc_args->page++) {
|
||||
$output = executeQueryArray('document.getDocumentList', $doc_args);
|
||||
|
||||
if ($output->toBool() && $output->data && count($output->data)) {
|
||||
foreach ($output->data as $document) {
|
||||
if (!$document) continue;
|
||||
foreach ($document as $key => $var) {
|
||||
if (strpos($key, 'extra_vars') !== 0 || !trim($var) || $var == 'N;') continue;
|
||||
$var_idx = str_replace('extra_vars','',$key);
|
||||
$oDocumentController->insertDocumentExtraVar($module_srl, $document->document_srl, $var_idx, $var, 'extra_vars'.$var_idx, $lang_code);
|
||||
}
|
||||
}
|
||||
}
|
||||
} // for total_pages
|
||||
} // if count
|
||||
}
|
||||
|
||||
// 해당 모듈들의 추가 변수들 제거
|
||||
$module_info->grant = null;
|
||||
$module_info->extra_vars = null;
|
||||
$module_info->skin_vars = null;
|
||||
$module_info->admin_id = null;
|
||||
executeQuery('module.updateModule', $module_info);
|
||||
}
|
||||
}
|
||||
|
||||
// 각종 column drop
|
||||
$oDB->dropColumn('modules','grants');
|
||||
$oDB->dropColumn('modules','admin_id');
|
||||
$oDB->dropColumn('modules','skin_vars');
|
||||
$oDB->dropColumn('modules','extra_vars');
|
||||
}
|
||||
|
||||
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
|
||||
if(!$oDB->isColumnExists('sites', 'default_language')) {
|
||||
$oDB->addColumn('sites','default_language','varchar',255,0,false);
|
||||
}
|
||||
|
||||
// extra_vars* 컬럼 제거
|
||||
for($i=1;$i<=20;$i++) {
|
||||
if(!$oDB->isColumnExists("documents","extra_vars".$i)) continue;
|
||||
$oDB->dropColumn('documents','extra_vars'.$i);
|
||||
}
|
||||
|
||||
// sites 테이블에 기본 사이트 정보 입력
|
||||
$args->site_srl = 0;
|
||||
$output = $oDB->executeQuery('module.getSite', $args);
|
||||
if(!$output->data) {
|
||||
// 기본 mid, 언어 구함
|
||||
$mid_output = $oDB->executeQuery('module.getDefaultMidInfo', $args);
|
||||
$db_info = Context::getDBInfo();
|
||||
$domain = Context::getDefaultUrl();
|
||||
$url_info = parse_url($domain);
|
||||
$domain = $url_info['host'].( (!empty($url_info['port'])&&$url_info['port']!=80)?':'.$url_info['port']:'').$url_info['path'];
|
||||
$site_args->site_srl = 0;
|
||||
$site_args->index_module_srl = $mid_output->data->module_srl;
|
||||
$site_args->domain = $domain;
|
||||
$site_args->default_language = $db_info->lang_type;
|
||||
|
||||
$output = executeQuery('module.insertSite', $site_args);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
|
||||
if($oDB->isIndexExists('sites','idx_domain')){
|
||||
$oDB->dropIndex('sites','idx_domain');
|
||||
}
|
||||
if(!$oDB->isIndexExists('sites','unique_domain')){
|
||||
$this->updateForUniqueSiteDomain();
|
||||
$oDB->addIndex('sites','unique_domain',array('domain'),true);
|
||||
}
|
||||
|
||||
if(!$oDB->isColumnExists("modules", "use_mobile")) {
|
||||
$oDB->addColumn('modules','use_mobile','char',1,'N');
|
||||
}
|
||||
if(!$oDB->isColumnExists("modules", "mlayout_srl")) {
|
||||
$oDB->addColumn('modules','mlayout_srl','number',11, 0);
|
||||
}
|
||||
if(!$oDB->isColumnExists("modules", "mcontent")) {
|
||||
$oDB->addColumn('modules','mcontent','bigtext');
|
||||
}
|
||||
if(!$oDB->isColumnExists("modules", "mskin")) {
|
||||
$oDB->addColumn('modules','mskin','varchar',250);
|
||||
}
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
function updateForUniqueSiteDomain()
|
||||
{
|
||||
$output = executeQueryArray("module.getNonuniqueDomains");
|
||||
if(!$output->data) return;
|
||||
foreach($output->data as $data)
|
||||
{
|
||||
if($data->count == 1) continue;
|
||||
$domain = $data->domain;
|
||||
$args = null;
|
||||
$args->domain = $domain;
|
||||
$output2 = executeQueryArray("module.getSiteByDomain", $args);
|
||||
$bFirst = true;
|
||||
foreach($output2->data as $site)
|
||||
{
|
||||
if($bFirst)
|
||||
{
|
||||
$bFirst = false;
|
||||
continue;
|
||||
}
|
||||
$domain .= "_";
|
||||
$args = null;
|
||||
$args->domain = $domain;
|
||||
$args->site_srl = $site->site_srl;
|
||||
$output3 = executeQuery("module.updateSite", $args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
// 모듈 정보 캐시 파일 모두 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/module_info");
|
||||
|
||||
// 트리거 정보가 있는 파일 모두 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/triggers");
|
||||
|
||||
// DB캐시 파일을 모두 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/db");
|
||||
|
||||
// 기타 캐시 삭제
|
||||
FileHandler::removeDir("./files/cache/tmp");
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,161 +1,161 @@
|
|||
<?php
|
||||
/**
|
||||
* @class moduleView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief module 모듈의 view class
|
||||
**/
|
||||
|
||||
class moduleView extends module {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// template path 지정
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 스킨 정보 출력
|
||||
**/
|
||||
function dispModuleSkinInfo() {
|
||||
$selected_module = Context::get('selected_module');
|
||||
$skin = Context::get('skin');
|
||||
|
||||
// 모듈/스킨 정보를 구함
|
||||
$module_path = sprintf("./modules/%s/", $selected_module);
|
||||
if(!is_dir($module_path)) $this->stop("msg_invalid_request");
|
||||
|
||||
$skin_info_xml = sprintf("%sskins/%s/skin.xml", $module_path, $skin);
|
||||
if(!file_exists($skin_info_xml)) $this->stop("msg_invalid_request");
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($module_path, $skin);
|
||||
Context::set('skin_info',$skin_info);
|
||||
|
||||
$this->setLayoutFile("popup_layout");
|
||||
$this->setTemplateFile("skin_info");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 선택기
|
||||
**/
|
||||
function dispModuleSelectList() {
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
$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';
|
||||
$args->site_srl = 0;
|
||||
$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;
|
||||
}
|
||||
//if(is_null($args->site_srl)) $query_id = 'module.getDefaultModules';
|
||||
|
||||
// 지정된 사이트(혹은 전체)의 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');
|
||||
}
|
||||
|
||||
|
||||
// 파일 박스 보기
|
||||
function dispModuleFileBox(){
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin !='Y' && !$logged_info->is_site_admin) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
$input_name = Context::get('input');
|
||||
|
||||
if(!$input_name) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
|
||||
$addscript = sprintf('<script type="text/javascript">//<![CDATA[
|
||||
var selected_filebox_input_name = "%s";
|
||||
//]]></script>',$input_name);
|
||||
Context::addHtmlHeader($addscript);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getModuleFileBoxList();
|
||||
Context::set('filebox_list', $output->data);
|
||||
|
||||
$filter = Context::get('filter');
|
||||
if($filter) Context::set('arrfilter',explode(',',$filter));
|
||||
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('filebox_list');
|
||||
}
|
||||
|
||||
// 파일 박스 등록화면
|
||||
function dispModuleFileBoxAdd(){
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin !='Y' && !$logged_info->is_site_admin) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
$filter = Context::get('filter');
|
||||
if($filter) Context::set('arrfilter',explode(',',$filter));
|
||||
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('filebox_add');
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class moduleView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief module 모듈의 view class
|
||||
**/
|
||||
|
||||
class moduleView extends module {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
// template path 지정
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 스킨 정보 출력
|
||||
**/
|
||||
function dispModuleSkinInfo() {
|
||||
$selected_module = Context::get('selected_module');
|
||||
$skin = Context::get('skin');
|
||||
|
||||
// 모듈/스킨 정보를 구함
|
||||
$module_path = sprintf("./modules/%s/", $selected_module);
|
||||
if(!is_dir($module_path)) $this->stop("msg_invalid_request");
|
||||
|
||||
$skin_info_xml = sprintf("%sskins/%s/skin.xml", $module_path, $skin);
|
||||
if(!file_exists($skin_info_xml)) $this->stop("msg_invalid_request");
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($module_path, $skin);
|
||||
Context::set('skin_info',$skin_info);
|
||||
|
||||
$this->setLayoutFile("popup_layout");
|
||||
$this->setTemplateFile("skin_info");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 선택기
|
||||
**/
|
||||
function dispModuleSelectList() {
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
$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';
|
||||
$args->site_srl = 0;
|
||||
$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;
|
||||
}
|
||||
//if(is_null($args->site_srl)) $query_id = 'module.getDefaultModules';
|
||||
|
||||
// 지정된 사이트(혹은 전체)의 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');
|
||||
}
|
||||
|
||||
|
||||
// 파일 박스 보기
|
||||
function dispModuleFileBox(){
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin !='Y' && !$logged_info->is_site_admin) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
$input_name = Context::get('input');
|
||||
|
||||
if(!$input_name) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
|
||||
$addscript = sprintf('<script type="text/javascript">//<![CDATA[
|
||||
var selected_filebox_input_name = "%s";
|
||||
//]]></script>',$input_name);
|
||||
Context::addHtmlHeader($addscript);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getModuleFileBoxList();
|
||||
Context::set('filebox_list', $output->data);
|
||||
|
||||
$filter = Context::get('filter');
|
||||
if($filter) Context::set('arrfilter',explode(',',$filter));
|
||||
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('filebox_list');
|
||||
}
|
||||
|
||||
// 파일 박스 등록화면
|
||||
function dispModuleFileBoxAdd(){
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin !='Y' && !$logged_info->is_site_admin) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
$filter = Context::get('filter');
|
||||
if($filter) Context::set('arrfilter',explode(',',$filter));
|
||||
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('filebox_add');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
11
modules/module/queries/deleteModuleExtend.xml
Normal file
11
modules/module/queries/deleteModuleExtend.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="deleteModuleExtend" action="delete">
|
||||
<tables>
|
||||
<table name="module_extend" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="equal" column="child_module" var="child_module" notnull="notnull" pipe="and" />
|
||||
<condition operation="equal" column="extend_module" var="extend_module" pipe="and" />
|
||||
<condition operation="equal" column="type" var="type" pipe="and" />
|
||||
<condition operation="equal" column="kind" var="kind" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
14
modules/module/queries/getModuleExtend.xml
Normal file
14
modules/module/queries/getModuleExtend.xml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<query id="getModuleExtend" action="select">
|
||||
<tables>
|
||||
<table name="module_extend" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="parent_module" var="parent_module" />
|
||||
<condition operation="equal" column="extend_module" var="extend_module" pipe="and" />
|
||||
<condition operation="equal" column="type" var="type" pipe="and" />
|
||||
<condition operation="equal" column="kind" var="kind" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
11
modules/module/queries/insertModuleExtend.xml
Normal file
11
modules/module/queries/insertModuleExtend.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="insertModuleExtend" action="insert">
|
||||
<tables>
|
||||
<table name="module_extend" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="parent_module" var="parent_module" notnull="notnull" />
|
||||
<column name="extend_module" var="extend_module" notnull="notnull" />
|
||||
<column name="type" var="type" notnull="notnull" />
|
||||
<column name="kind" var="kind" />
|
||||
</columns>
|
||||
</query>
|
||||
6
modules/module/schemas/module_extend.xml
Normal file
6
modules/module/schemas/module_extend.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<table name="module_extend">
|
||||
<column name="parent_module" type="varchar" size="80" notnull="notnull" />
|
||||
<column name="extend_module" type="varchar" size="80" notnull="notnull" />
|
||||
<column name="type" type="varchar" size="15" notnull="notnull" />
|
||||
<column name="kind" type="varchar" size="5" />
|
||||
</table>
|
||||
|
|
@ -5,12 +5,13 @@ body{margin:0}
|
|||
/* Hx */
|
||||
.hx{position:relative;border-bottom:1px solid #ccc8be;padding:8px 10px;margin:0}
|
||||
.hx:after{content:"";margin:0 -10px;position:relative;top:10px;display:block;clear:both;height:1px;background:#fff}
|
||||
.hx.h2{background:#e5e5e5;}
|
||||
.hx.h2{background:#e5e5e5;text-shadow:1px 1px 0 #fff}
|
||||
.hx h2{margin:0 10px 0 0;display:inline;font-size:16px;line-height:1.4}
|
||||
/* Global Navigation */
|
||||
.gn{margin:0;padding:0;list-style:none;background:#d3d1cc}
|
||||
.gn li{background:#d3d1cc;border:1px solid #a3a09a;border-left:0;border-right:0;margin:0 0 -1px 0}
|
||||
.gn{margin:0;padding:0;list-style:none;background:#d3d1cc;text-shadow:1px 1px 0 #fff}
|
||||
.gn li{background:#c3c3c3;border:1px solid #a3a09a;border-left:0;border-right:0;margin:0 0 -1px 0}
|
||||
.gn li li{background:#f8f8f8;border:1px solid #c9c9c9;border-left:0;border-right:0}
|
||||
.gn li li li{background:#e8e8e8}
|
||||
.gn ul{margin:0 0 -1px 0;padding:0;list-style:none}
|
||||
.gn a,.gn strong{position:relative;text-decoration:none;display:block;padding:10px;font-size:16px}
|
||||
.gn li a{color:#333}
|
||||
|
|
|
|||
|
|
@ -1,190 +1,190 @@
|
|||
/**
|
||||
* @file modules/module/js/module_admin.js
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief module 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
||||
/* 카테고리 관련 작업들 */
|
||||
function doUpdateCategory(module_category_srl, mode, message) {
|
||||
if(typeof(message)!='undefined'&&!confirm(message)) return;
|
||||
|
||||
var fo_obj = xGetElementById('fo_category_info');
|
||||
fo_obj.module_category_srl.value = module_category_srl;
|
||||
fo_obj.mode.value = mode;
|
||||
|
||||
procFilter(fo_obj, update_category);
|
||||
}
|
||||
|
||||
/* 카테고리 정보 수정 후 */
|
||||
function completeUpdateCategory(ret_obj) {
|
||||
var error = ret_obj['error'];
|
||||
var message = ret_obj['message'];
|
||||
|
||||
alert(message);
|
||||
|
||||
location.href = current_url.setQuery('module_category_srl','');
|
||||
}
|
||||
|
||||
/* 선택된 모듈을 관리자 메뉴의 바로가기에 등록 */
|
||||
function doAddShortCut(module) {
|
||||
var fo_obj = xGetElementById("fo_shortcut");
|
||||
fo_obj.selected_module.value = module;
|
||||
procFilter(fo_obj, insert_shortcut);
|
||||
}
|
||||
|
||||
/* 모듈 설치 */
|
||||
function doInstallModule(module) {
|
||||
var params = new Array();
|
||||
params['module_name'] = module;
|
||||
exec_xml('install','procInstallAdminInstall',params, completeInstallModule);
|
||||
}
|
||||
|
||||
function completeInstallModule(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
location.reload();
|
||||
}
|
||||
|
||||
/* 모듈 업그레이드 */
|
||||
function doUpdateModule(module) {
|
||||
var params = new Array();
|
||||
params['module_name'] = module;
|
||||
exec_xml('install','procInstallAdminUpdate',params, completeInstallModule);
|
||||
}
|
||||
|
||||
/* 모듈 복사후 */
|
||||
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(multi_select) {
|
||||
if(typeof(opener.insertSelectedModules)=='undefined') return;
|
||||
opener.insertSelectedModules(id, module_srl, mid, browser_title);
|
||||
} else {
|
||||
if(typeof(opener.insertSelectedModule)=='undefined') return;
|
||||
opener.insertSelectedModule(id, module_srl, mid, browser_title);
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
|
||||
/* 권한 선택용 */
|
||||
function doShowGrantZone() {
|
||||
jQuery(".grant_default").each( function() {
|
||||
var id = "#zone_"+this.name.replace(/_default$/,'');
|
||||
if(!jQuery(this).val()) jQuery(id).css("display","block");
|
||||
else jQuery(id).css("display","none");
|
||||
} );
|
||||
}
|
||||
|
||||
/* 권한 등록 후 알림 메세지 */
|
||||
function completeInsertGrant(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
location.reload();
|
||||
}
|
||||
|
||||
/* 관리자 아이디 등록/ 제거 */
|
||||
function doInsertAdmin() {
|
||||
var fo_obj = xGetElementById("fo_obj");
|
||||
var sel_obj = fo_obj._admin_member;
|
||||
var admin_id = fo_obj.admin_id.value;
|
||||
if(!admin_id) return;
|
||||
|
||||
var opt = new Option(admin_id,admin_id,true,true);
|
||||
sel_obj.options[sel_obj.options.length] = opt;
|
||||
|
||||
fo_obj.admin_id.value = '';
|
||||
sel_obj.size = sel_obj.options.length;
|
||||
sel_obj.selectedIndex = -1;
|
||||
|
||||
var members = new Array();
|
||||
for(var i=0;i<sel_obj.options.length;i++) {
|
||||
members[members.length] = sel_obj.options[i].value;
|
||||
|
||||
}
|
||||
fo_obj.admin_member.value = members.join(',');
|
||||
|
||||
fo_obj.admin_id.focus();
|
||||
}
|
||||
|
||||
function doDeleteAdmin() {
|
||||
var fo_obj = xGetElementById("fo_obj");
|
||||
var sel_obj = fo_obj._admin_member;
|
||||
sel_obj.remove(sel_obj.selectedIndex);
|
||||
|
||||
sel_obj.size = sel_obj.options.length;
|
||||
sel_obj.selectedIndex = -1;
|
||||
|
||||
var members = new Array();
|
||||
for(var i=0;i<sel_obj.options.length;i++) {
|
||||
members[members.length] = sel_obj.options[i].value;
|
||||
|
||||
}
|
||||
fo_obj.admin_member.value = members.join(',');
|
||||
}
|
||||
|
||||
|
||||
function completeModuleSetup(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
window.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* 언어 관련
|
||||
**/
|
||||
function doInsertLangCode(name) {
|
||||
var fo_obj = xGetElementById("menu_fo");
|
||||
var target = fo_obj.target.value;
|
||||
if(window.opener && target) {
|
||||
var obj = window.opener.xGetElementById(target);
|
||||
if(obj) obj.value = '$user_lang->'+name;
|
||||
}
|
||||
window.close();
|
||||
}
|
||||
|
||||
function completeInsertLang(ret_obj) {
|
||||
doInsertLangCode(ret_obj['name']);
|
||||
}
|
||||
|
||||
function doDeleteLang(name) {
|
||||
var params = new Array();
|
||||
params['name'] = name;
|
||||
var response_args = new Array('error','message');
|
||||
exec_xml('module','procModuleAdminDeleteLang',params, completeDeleteLang);
|
||||
}
|
||||
|
||||
function completeDeleteLang(ret_obj) {
|
||||
location.href = current_url.setQuery('name','');
|
||||
}
|
||||
|
||||
function doFillLangName() {
|
||||
if (/[\?&]name=/i.test(location.search)) return;
|
||||
|
||||
var $form = jQuery("#menu_fo");
|
||||
var target = $form[0].target.value;
|
||||
if(window.opener && window.opener.document.getElementById(target)) {
|
||||
var value = window.opener.document.getElementById(target).value;
|
||||
if(/^\$user_lang->/.test(value)) {
|
||||
var param = new Array();
|
||||
param['name'] = value.replace(/^\$user_lang->/,'');
|
||||
var response_tags = new Array('error','message','name','langs');
|
||||
exec_xml('module','getModuleAdminLangCode',param,completeFillLangName, response_tags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function completeFillLangName(ret_obj, response_tags) {
|
||||
var name = ret_obj['name'];
|
||||
var langs = ret_obj['langs'];
|
||||
if(typeof(langs)=='undefined') return;
|
||||
var $form = jQuery("#menu_fo");
|
||||
$form[0].lang_code.value = name;
|
||||
for(var i in langs) {
|
||||
$form[0][i].value = langs[i];
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* @file modules/module/js/module_admin.js
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief module 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
||||
/* 카테고리 관련 작업들 */
|
||||
function doUpdateCategory(module_category_srl, mode, message) {
|
||||
if(typeof(message)!='undefined'&&!confirm(message)) return;
|
||||
|
||||
var fo_obj = xGetElementById('fo_category_info');
|
||||
fo_obj.module_category_srl.value = module_category_srl;
|
||||
fo_obj.mode.value = mode;
|
||||
|
||||
procFilter(fo_obj, update_category);
|
||||
}
|
||||
|
||||
/* 카테고리 정보 수정 후 */
|
||||
function completeUpdateCategory(ret_obj) {
|
||||
var error = ret_obj['error'];
|
||||
var message = ret_obj['message'];
|
||||
|
||||
alert(message);
|
||||
|
||||
location.href = current_url.setQuery('module_category_srl','');
|
||||
}
|
||||
|
||||
/* 선택된 모듈을 관리자 메뉴의 바로가기에 등록 */
|
||||
function doAddShortCut(module) {
|
||||
var fo_obj = xGetElementById("fo_shortcut");
|
||||
fo_obj.selected_module.value = module;
|
||||
procFilter(fo_obj, insert_shortcut);
|
||||
}
|
||||
|
||||
/* 모듈 설치 */
|
||||
function doInstallModule(module) {
|
||||
var params = new Array();
|
||||
params['module_name'] = module;
|
||||
exec_xml('install','procInstallAdminInstall',params, completeInstallModule);
|
||||
}
|
||||
|
||||
function completeInstallModule(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
location.reload();
|
||||
}
|
||||
|
||||
/* 모듈 업그레이드 */
|
||||
function doUpdateModule(module) {
|
||||
var params = new Array();
|
||||
params['module_name'] = module;
|
||||
exec_xml('install','procInstallAdminUpdate',params, completeInstallModule);
|
||||
}
|
||||
|
||||
/* 모듈 복사후 */
|
||||
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(multi_select) {
|
||||
if(typeof(opener.insertSelectedModules)=='undefined') return;
|
||||
opener.insertSelectedModules(id, module_srl, mid, browser_title);
|
||||
} else {
|
||||
if(typeof(opener.insertSelectedModule)=='undefined') return;
|
||||
opener.insertSelectedModule(id, module_srl, mid, browser_title);
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
|
||||
/* 권한 선택용 */
|
||||
function doShowGrantZone() {
|
||||
jQuery(".grant_default").each( function() {
|
||||
var id = "#zone_"+this.name.replace(/_default$/,'');
|
||||
if(!jQuery(this).val()) jQuery(id).css("display","block");
|
||||
else jQuery(id).css("display","none");
|
||||
} );
|
||||
}
|
||||
|
||||
/* 권한 등록 후 알림 메세지 */
|
||||
function completeInsertGrant(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
location.reload();
|
||||
}
|
||||
|
||||
/* 관리자 아이디 등록/ 제거 */
|
||||
function doInsertAdmin() {
|
||||
var fo_obj = xGetElementById("fo_obj");
|
||||
var sel_obj = fo_obj._admin_member;
|
||||
var admin_id = fo_obj.admin_id.value;
|
||||
if(!admin_id) return;
|
||||
|
||||
var opt = new Option(admin_id,admin_id,true,true);
|
||||
sel_obj.options[sel_obj.options.length] = opt;
|
||||
|
||||
fo_obj.admin_id.value = '';
|
||||
sel_obj.size = sel_obj.options.length;
|
||||
sel_obj.selectedIndex = -1;
|
||||
|
||||
var members = new Array();
|
||||
for(var i=0;i<sel_obj.options.length;i++) {
|
||||
members[members.length] = sel_obj.options[i].value;
|
||||
|
||||
}
|
||||
fo_obj.admin_member.value = members.join(',');
|
||||
|
||||
fo_obj.admin_id.focus();
|
||||
}
|
||||
|
||||
function doDeleteAdmin() {
|
||||
var fo_obj = xGetElementById("fo_obj");
|
||||
var sel_obj = fo_obj._admin_member;
|
||||
sel_obj.remove(sel_obj.selectedIndex);
|
||||
|
||||
sel_obj.size = sel_obj.options.length;
|
||||
sel_obj.selectedIndex = -1;
|
||||
|
||||
var members = new Array();
|
||||
for(var i=0;i<sel_obj.options.length;i++) {
|
||||
members[members.length] = sel_obj.options[i].value;
|
||||
|
||||
}
|
||||
fo_obj.admin_member.value = members.join(',');
|
||||
}
|
||||
|
||||
|
||||
function completeModuleSetup(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
window.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* 언어 관련
|
||||
**/
|
||||
function doInsertLangCode(name) {
|
||||
var fo_obj = xGetElementById("menu_fo");
|
||||
var target = fo_obj.target.value;
|
||||
if(window.opener && target) {
|
||||
var obj = window.opener.xGetElementById(target);
|
||||
if(obj) obj.value = '$user_lang->'+name;
|
||||
}
|
||||
window.close();
|
||||
}
|
||||
|
||||
function completeInsertLang(ret_obj) {
|
||||
doInsertLangCode(ret_obj['name']);
|
||||
}
|
||||
|
||||
function doDeleteLang(name) {
|
||||
var params = new Array();
|
||||
params['name'] = name;
|
||||
var response_args = new Array('error','message');
|
||||
exec_xml('module','procModuleAdminDeleteLang',params, completeDeleteLang);
|
||||
}
|
||||
|
||||
function completeDeleteLang(ret_obj) {
|
||||
location.href = current_url.setQuery('name','');
|
||||
}
|
||||
|
||||
function doFillLangName() {
|
||||
if (/[\?&]name=/i.test(location.search)) return;
|
||||
|
||||
var $form = jQuery("#menu_fo");
|
||||
var target = $form[0].target.value;
|
||||
if(window.opener && window.opener.document.getElementById(target)) {
|
||||
var value = window.opener.document.getElementById(target).value;
|
||||
if(/^\$user_lang->/.test(value)) {
|
||||
var param = new Array();
|
||||
param['name'] = value.replace(/^\$user_lang->/,'');
|
||||
var response_tags = new Array('error','message','name','langs');
|
||||
exec_xml('module','getModuleAdminLangCode',param,completeFillLangName, response_tags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function completeFillLangName(ret_obj, response_tags) {
|
||||
var name = ret_obj['name'];
|
||||
var langs = ret_obj['langs'];
|
||||
if(typeof(langs)=='undefined') return;
|
||||
var $form = jQuery("#menu_fo");
|
||||
$form[0].lang_code.value = name;
|
||||
for(var i in langs) {
|
||||
$form[0][i].value = langs[i];
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue