mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-23 05:09:56 +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">Widget</title>
|
||||
<title xml:lang="vi">Widget</title>
|
||||
<title xml:lang="es">Widget</title>
|
||||
<title xml:lang="ru">Виджеты</title>
|
||||
<title xml:lang="zh-TW">Widget</title>
|
||||
<description xml:lang="ko">위젯 관리 모듈</description>
|
||||
<description xml:lang="zh-CN">控件管理模块。</description>
|
||||
<description xml:lang="jp">ウィジェット管理モジュール</description>
|
||||
<description xml:lang="en">Module for managing widgets.</description>
|
||||
<description xml:lang="vi">Module dành cho quản lý Widget.</description>
|
||||
<description xml:lang="es">Módulo para el manejo de widgets.</description>
|
||||
<description xml:lang="ru">Модуль для управления виджетами.</description>
|
||||
<description xml:lang="zh-TW">Widget管理模組。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<category>construction</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">Widget</title>
|
||||
<title xml:lang="vi">Widget</title>
|
||||
<title xml:lang="es">Widget</title>
|
||||
<title xml:lang="ru">Виджеты</title>
|
||||
<title xml:lang="zh-TW">Widget</title>
|
||||
<description xml:lang="ko">위젯 관리 모듈</description>
|
||||
<description xml:lang="zh-CN">控件管理模块。</description>
|
||||
<description xml:lang="jp">ウィジェット管理モジュール</description>
|
||||
<description xml:lang="en">Module for managing widgets.</description>
|
||||
<description xml:lang="vi">Module dành cho quản lý Widget.</description>
|
||||
<description xml:lang="es">Módulo para el manejo de widgets.</description>
|
||||
<description xml:lang="ru">Модуль для управления виджетами.</description>
|
||||
<description xml:lang="zh-TW">Widget管理模組。</description>
|
||||
<version>0.1</version>
|
||||
<date>2007-02-28</date>
|
||||
<category>construction</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,68 +1,68 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/en.lang.php
|
||||
* @author zero <zero@nzeo.com>
|
||||
* @brief widget module- basic language pack
|
||||
**/
|
||||
|
||||
$lang->cmd_generate_code = 'Generate Code';
|
||||
|
||||
$lang->widget_name = 'Widget Name';
|
||||
$lang->widget_maker = 'Developer';
|
||||
$lang->widget_license = 'License';
|
||||
$lang->widget_history = 'Update History';
|
||||
$lang->widget_info = 'Widget Info';
|
||||
$lang->widget_code = 'Code';
|
||||
$lang->widget_cache = 'Cache';
|
||||
|
||||
$lang->widget_fix_width = 'Fix Width';
|
||||
$lang->widget_width = 'Width';
|
||||
$lang->widget_position = 'Position';
|
||||
$lang->widget_position_none = 'Next Line';
|
||||
$lang->widget_position_left = 'Left';
|
||||
$lang->widget_position_right = 'Right';
|
||||
$lang->widget_margin = 'Margin';
|
||||
$lang->widget_margin_top = 'Top Margin';
|
||||
$lang->widget_margin_right = 'Right Margin';
|
||||
$lang->widget_margin_bottom = 'Bottom Margin';
|
||||
$lang->widget_margin_left= 'Left Margin';
|
||||
$lang->about_widget_fix_width = 'Please check to fix the width.';
|
||||
$lang->about_widget_width = 'Please set the width of widget.';
|
||||
$lang->about_widget_position = 'Please select the position if you want to display many widgets in one line.';
|
||||
$lang->about_widget_margin = "You may set the margin of widgets' top, bottom, right and left.";
|
||||
$lang->about_widget_cache = 'Cached data can be used during the time you have set.';
|
||||
|
||||
$lang->generated_code = 'Generated Code';
|
||||
$lang->widgetstyle= 'Widget Style';
|
||||
|
||||
$lang->msg_widget_is_not_exists = "'%s' does not exist.";
|
||||
$lang->msg_widget_object_is_null = "Object of '%s' could not be created.";
|
||||
$lang->msg_widget_proc_is_null = "proc() of '%s' could not be executed.";
|
||||
$lang->msg_widget_skin_is_null = "You should select widget's skin";
|
||||
|
||||
$lang->about_widget_code = 'Please input required value first, and click [Generate Code] button to generate code to add to the template file.';
|
||||
$lang->about_widget_code_in_page = 'After entering the required values, click the [Add] button to insert the widget code into the page.';
|
||||
$lang->about_widget = "A widget is a small free-standing application used in a layout or page module.\n It can be linked with internal module or external open api. Through its configuration setting, wide application is possible. \n You can directly add a widget by using the [Generate Code] function without using the XE page module or layout module.";
|
||||
|
||||
$lang->cmd_content_insert = "Insert Content by Yourself";
|
||||
$lang->cmd_box_widget_insert = "Insert Box Widget";
|
||||
$lang->cmd_remove_all_widgets = "Remove All Widgets";
|
||||
|
||||
$lang->cmd_widget_size = "Widget Size";
|
||||
$lang->cmd_widget_align = "Align Widget";
|
||||
$lang->cmd_widget_align_left = "Left";
|
||||
$lang->cmd_widget_align_right = "Right";
|
||||
$lang->cmd_widget_margin = "Margin";
|
||||
$lang->cmd_widget_padding = "Padding";
|
||||
$lang->cmd_widget_border = "Border";
|
||||
$lang->cmd_widget_border_solid = "Solid";
|
||||
$lang->cmd_widget_border_dotted = "Dotted";
|
||||
$lang->cmd_widget_background_color = "Background Color";
|
||||
$lang->cmd_widget_background_image_url = "Background Image";
|
||||
$lang->cmd_widget_background_image_repeat = "Repeat";
|
||||
$lang->cmd_widget_background_image_no_repeat = "No Repeat";
|
||||
$lang->cmd_widget_background_image_x_repeat = "X Repeat";
|
||||
$lang->cmd_widget_background_image_y_repeat = "Y Repeat";
|
||||
$lang->cmd_widget_background_image_x = "X Position";
|
||||
$lang->cmd_widget_background_image_y = "Y Position";
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/en.lang.php
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief widget module- basic language pack
|
||||
**/
|
||||
|
||||
$lang->cmd_generate_code = 'Generate Code';
|
||||
|
||||
$lang->widget_name = 'Widget Name';
|
||||
$lang->widget_maker = 'Developer';
|
||||
$lang->widget_license = 'License';
|
||||
$lang->widget_history = 'Update History';
|
||||
$lang->widget_info = 'Widget Info';
|
||||
$lang->widget_code = 'Code';
|
||||
$lang->widget_cache = 'Cache';
|
||||
|
||||
$lang->widget_fix_width = 'Fix Width';
|
||||
$lang->widget_width = 'Width';
|
||||
$lang->widget_position = 'Position';
|
||||
$lang->widget_position_none = 'Next Line';
|
||||
$lang->widget_position_left = 'Left';
|
||||
$lang->widget_position_right = 'Right';
|
||||
$lang->widget_margin = 'Margin';
|
||||
$lang->widget_margin_top = 'Top Margin';
|
||||
$lang->widget_margin_right = 'Right Margin';
|
||||
$lang->widget_margin_bottom = 'Bottom Margin';
|
||||
$lang->widget_margin_left= 'Left Margin';
|
||||
$lang->about_widget_fix_width = 'Please check to fix the width.';
|
||||
$lang->about_widget_width = 'Please set the width of widget.';
|
||||
$lang->about_widget_position = 'Please select the position if you want to display many widgets in one line.';
|
||||
$lang->about_widget_margin = "You may set the margin of widgets' top, bottom, right and left.";
|
||||
$lang->about_widget_cache = 'Cached data can be used during the time you have set.';
|
||||
|
||||
$lang->generated_code = 'Generated Code';
|
||||
$lang->widgetstyle= 'Widget Style';
|
||||
|
||||
$lang->msg_widget_is_not_exists = "'%s' does not exist.";
|
||||
$lang->msg_widget_object_is_null = "Object of '%s' could not be created.";
|
||||
$lang->msg_widget_proc_is_null = "proc() of '%s' could not be executed.";
|
||||
$lang->msg_widget_skin_is_null = "You should select widget's skin";
|
||||
|
||||
$lang->about_widget_code = 'Please input required value first, and click [Generate Code] button to generate code to add to the template file.';
|
||||
$lang->about_widget_code_in_page = 'After entering the required values, click the [Add] button to insert the widget code into the page.';
|
||||
$lang->about_widget = "A widget is a small free-standing application used in a layout or page module.\n It can be linked with internal module or external open api. Through its configuration setting, wide application is possible. \n You can directly add a widget by using the [Generate Code] function without using the XE page module or layout module.";
|
||||
|
||||
$lang->cmd_content_insert = "Insert Content by Yourself";
|
||||
$lang->cmd_box_widget_insert = "Insert Box Widget";
|
||||
$lang->cmd_remove_all_widgets = "Remove All Widgets";
|
||||
|
||||
$lang->cmd_widget_size = "Widget Size";
|
||||
$lang->cmd_widget_align = "Align Widget";
|
||||
$lang->cmd_widget_align_left = "Left";
|
||||
$lang->cmd_widget_align_right = "Right";
|
||||
$lang->cmd_widget_margin = "Margin";
|
||||
$lang->cmd_widget_padding = "Padding";
|
||||
$lang->cmd_widget_border = "Border";
|
||||
$lang->cmd_widget_border_solid = "Solid";
|
||||
$lang->cmd_widget_border_dotted = "Dotted";
|
||||
$lang->cmd_widget_background_color = "Background Color";
|
||||
$lang->cmd_widget_background_image_url = "Background Image";
|
||||
$lang->cmd_widget_background_image_repeat = "Repeat";
|
||||
$lang->cmd_widget_background_image_no_repeat = "No Repeat";
|
||||
$lang->cmd_widget_background_image_x_repeat = "X Repeat";
|
||||
$lang->cmd_widget_background_image_y_repeat = "Y Repeat";
|
||||
$lang->cmd_widget_background_image_x = "X Position";
|
||||
$lang->cmd_widget_background_image_y = "Y Position";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @archivo modules/widget/lang/es.lang.php
|
||||
* @autor zero <zero@nzeo.com>
|
||||
* @autor NHN (developers@xpressengine.com)
|
||||
* @sumario Paquete del idioma español para el módulo Widget (básico)
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,68 +1,68 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/fr.lang.php
|
||||
* @author zero <zero@nzeo.com> Traduit par Pierre Duvent <PierreDuvent@gmail.com>
|
||||
* @brief Paquet du langage en français pour le module de gadget
|
||||
**/
|
||||
|
||||
$lang->cmd_generate_code = 'Générer le Code';
|
||||
|
||||
$lang->widget_name = 'Nom de Gadget';
|
||||
$lang->widget_maker = 'Développeur';
|
||||
$lang->widget_license = 'Licence';
|
||||
$lang->widget_history = 'Histoire de Mise à jours';
|
||||
$lang->widget_info = 'Information de Gadget';
|
||||
$lang->widget_code = 'Code';
|
||||
$lang->widget_cache = 'Antémémoire';
|
||||
|
||||
$lang->widget_fix_width = 'Fixer Largeur';
|
||||
$lang->widget_width = 'Largeur';
|
||||
$lang->widget_position = 'Position';
|
||||
$lang->widget_position_none = 'Ligne suivante';
|
||||
$lang->widget_position_left = 'Gauche';
|
||||
$lang->widget_position_right = 'Droite';
|
||||
$lang->widget_margin = 'Marge';
|
||||
$lang->widget_margin_top = 'Marge en tête';
|
||||
$lang->widget_margin_right = 'Marge à droite';
|
||||
$lang->widget_margin_bottom = 'Marge en pied';
|
||||
$lang->widget_margin_left= 'Marge à gauche';
|
||||
$lang->about_widget_fix_width = 'Cochez pour fixer la largeur, S.V.P.';
|
||||
$lang->about_widget_width = 'Configurez la largeur du gadget, S.V.P.';
|
||||
$lang->about_widget_position = 'Choisissez la position si vous voulez représenter plusieurs gadgets dans une ligne, S.V.P.';
|
||||
$lang->about_widget_margin = "Vous pouvez désigner la marge de gadget 'de tête, en pied, à droite et à gauche.";
|
||||
$lang->about_widget_cache = 'Les données d\'antémémoire peuvent être utilisées pendant le temps que vous désignez.';
|
||||
|
||||
$lang->generated_code = 'Code généré';
|
||||
$lang->widgetstyle= '위젯스타일';
|
||||
|
||||
$lang->msg_widget_is_not_exists = "Le Gadget de(d') '%s' n'existe pas.";
|
||||
$lang->msg_widget_object_is_null = "L'Objet de '%s' n'a pas pu être créé.";
|
||||
$lang->msg_widget_proc_is_null = "proc() de '%s' n'a pas pu être exécuté.";
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = 'Entrez les valeurs qui sont requises par le gadget choisi, et puis cliquz le bouton [Générer le Code] pour générer le code. Le code à appliquer au fichier de modèl se présentera en bas.';
|
||||
$lang->about_widget_code_in_page = 'Après entrer les valeurs requies, cliquez le bouton [Ajouter] pour insérer le gadjet dans la page.';
|
||||
$lang->about_widget = "Un gadjet est un petit application indépendant qui est utilisé dans une Mise en Page ou dans une module de Page. Un gajet peut être lié avec un module intérieur ou avec un API extérieur ouvert. L'application divers est possible par la configuration. \nVous pouvez directement ajouter un gadget en utilisant la fonction [Générer le Code] sans utiliser un module de Page de XE ni un module de Mise en Page.";
|
||||
|
||||
$lang->cmd_content_insert = "Insérer le Contenu par vous-même";
|
||||
$lang->cmd_box_widget_insert = "Insérer le Gadget de Boîte";
|
||||
$lang->cmd_remove_all_widgets = "Enlever Tous les Gadgets";
|
||||
|
||||
$lang->cmd_widget_size = "Taille du Gadget";
|
||||
$lang->cmd_widget_align = "Alignement des Gadget";
|
||||
$lang->cmd_widget_align_left = "Gauche";
|
||||
$lang->cmd_widget_align_right = "Droite";
|
||||
$lang->cmd_widget_margin = "Marge";
|
||||
$lang->cmd_widget_padding = "Remplissage";
|
||||
$lang->cmd_widget_border = "Bordure";
|
||||
$lang->cmd_widget_border_solid = "Solide";
|
||||
$lang->cmd_widget_border_dotted = "Pointillé";
|
||||
$lang->cmd_widget_background_color = "Couleur d'arrière-plan";
|
||||
$lang->cmd_widget_background_image_url = "Image d'arrière-plan";
|
||||
$lang->cmd_widget_background_image_repeat = "Répéter";
|
||||
$lang->cmd_widget_background_image_no_repeat = "Ne pas répéter";
|
||||
$lang->cmd_widget_background_image_x_repeat = "X Répéter";
|
||||
$lang->cmd_widget_background_image_y_repeat = "Y Répéter";
|
||||
$lang->cmd_widget_background_image_x = "X Position";
|
||||
$lang->cmd_widget_background_image_y = "Y Position";
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/fr.lang.php
|
||||
* @author NHN (developers@xpressengine.com) Traduit par Pierre Duvent <PierreDuvent@gmail.com>
|
||||
* @brief Paquet du langage en français pour le module de gadget
|
||||
**/
|
||||
|
||||
$lang->cmd_generate_code = 'Générer le Code';
|
||||
|
||||
$lang->widget_name = 'Nom de Gadget';
|
||||
$lang->widget_maker = 'Développeur';
|
||||
$lang->widget_license = 'Licence';
|
||||
$lang->widget_history = 'Histoire de Mise à jours';
|
||||
$lang->widget_info = 'Information de Gadget';
|
||||
$lang->widget_code = 'Code';
|
||||
$lang->widget_cache = 'Antémémoire';
|
||||
|
||||
$lang->widget_fix_width = 'Fixer Largeur';
|
||||
$lang->widget_width = 'Largeur';
|
||||
$lang->widget_position = 'Position';
|
||||
$lang->widget_position_none = 'Ligne suivante';
|
||||
$lang->widget_position_left = 'Gauche';
|
||||
$lang->widget_position_right = 'Droite';
|
||||
$lang->widget_margin = 'Marge';
|
||||
$lang->widget_margin_top = 'Marge en tête';
|
||||
$lang->widget_margin_right = 'Marge à droite';
|
||||
$lang->widget_margin_bottom = 'Marge en pied';
|
||||
$lang->widget_margin_left= 'Marge à gauche';
|
||||
$lang->about_widget_fix_width = 'Cochez pour fixer la largeur, S.V.P.';
|
||||
$lang->about_widget_width = 'Configurez la largeur du gadget, S.V.P.';
|
||||
$lang->about_widget_position = 'Choisissez la position si vous voulez représenter plusieurs gadgets dans une ligne, S.V.P.';
|
||||
$lang->about_widget_margin = "Vous pouvez désigner la marge de gadget 'de tête, en pied, à droite et à gauche.";
|
||||
$lang->about_widget_cache = 'Les données d\'antémémoire peuvent être utilisées pendant le temps que vous désignez.';
|
||||
|
||||
$lang->generated_code = 'Code généré';
|
||||
$lang->widgetstyle= '위젯스타일';
|
||||
|
||||
$lang->msg_widget_is_not_exists = "Le Gadget de(d') '%s' n'existe pas.";
|
||||
$lang->msg_widget_object_is_null = "L'Objet de '%s' n'a pas pu être créé.";
|
||||
$lang->msg_widget_proc_is_null = "proc() de '%s' n'a pas pu être exécuté.";
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = 'Entrez les valeurs qui sont requises par le gadget choisi, et puis cliquz le bouton [Générer le Code] pour générer le code. Le code à appliquer au fichier de modèl se présentera en bas.';
|
||||
$lang->about_widget_code_in_page = 'Après entrer les valeurs requies, cliquez le bouton [Ajouter] pour insérer le gadjet dans la page.';
|
||||
$lang->about_widget = "Un gadjet est un petit application indépendant qui est utilisé dans une Mise en Page ou dans une module de Page. Un gajet peut être lié avec un module intérieur ou avec un API extérieur ouvert. L'application divers est possible par la configuration. \nVous pouvez directement ajouter un gadget en utilisant la fonction [Générer le Code] sans utiliser un module de Page de XE ni un module de Mise en Page.";
|
||||
|
||||
$lang->cmd_content_insert = "Insérer le Contenu par vous-même";
|
||||
$lang->cmd_box_widget_insert = "Insérer le Gadget de Boîte";
|
||||
$lang->cmd_remove_all_widgets = "Enlever Tous les Gadgets";
|
||||
|
||||
$lang->cmd_widget_size = "Taille du Gadget";
|
||||
$lang->cmd_widget_align = "Alignement des Gadget";
|
||||
$lang->cmd_widget_align_left = "Gauche";
|
||||
$lang->cmd_widget_align_right = "Droite";
|
||||
$lang->cmd_widget_margin = "Marge";
|
||||
$lang->cmd_widget_padding = "Remplissage";
|
||||
$lang->cmd_widget_border = "Bordure";
|
||||
$lang->cmd_widget_border_solid = "Solide";
|
||||
$lang->cmd_widget_border_dotted = "Pointillé";
|
||||
$lang->cmd_widget_background_color = "Couleur d'arrière-plan";
|
||||
$lang->cmd_widget_background_image_url = "Image d'arrière-plan";
|
||||
$lang->cmd_widget_background_image_repeat = "Répéter";
|
||||
$lang->cmd_widget_background_image_no_repeat = "Ne pas répéter";
|
||||
$lang->cmd_widget_background_image_x_repeat = "X Répéter";
|
||||
$lang->cmd_widget_background_image_y_repeat = "Y Répéter";
|
||||
$lang->cmd_widget_background_image_x = "X Position";
|
||||
$lang->cmd_widget_background_image_y = "Y Position";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,68 +1,68 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/jp.lang.php
|
||||
* @author zero <zero@nzeo.com> 翻訳:RisaPapa、ミニミ
|
||||
* @brief ウィジェット(widget)モジュール基本言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->cmd_generate_code = 'コード生成';
|
||||
|
||||
$lang->widget_name = 'ウィジェット名';
|
||||
$lang->widget_maker = 'ウィジェット作者';
|
||||
$lang->widget_license = 'ライセンス';
|
||||
$lang->widget_history = '変更内容';
|
||||
$lang->widget_info = 'ウィジェット情報';
|
||||
$lang->widget_code = 'コード';
|
||||
$lang->widget_cache = 'キャッシュ';
|
||||
|
||||
$lang->widget_fix_width = '横幅固定';
|
||||
$lang->widget_width = '縦幅サイズ';
|
||||
$lang->widget_position = 'ポジッション';
|
||||
$lang->widget_position_none = '改行';
|
||||
$lang->widget_position_left = '左へ';
|
||||
$lang->widget_position_right = '右へ';
|
||||
$lang->widget_margin = '余白';
|
||||
$lang->widget_margin_top = '上';
|
||||
$lang->widget_margin_right = '右';
|
||||
$lang->widget_margin_bottom = '下 ';
|
||||
$lang->widget_margin_left= '左';
|
||||
$lang->about_widget_fix_width = 'チェックすると横幅が固定されます。';
|
||||
$lang->about_widget_width = '縦幅サイズを選択して下さい。';
|
||||
$lang->about_widget_position = '一つのラインに多数のウィジェットを羅列したい場合は、ポジッションを選択して下さい。';
|
||||
$lang->about_widget_margin = '一つのラインに多数のウィジェットを羅列したい場合は、ポジッションを選択して下さい。';
|
||||
$lang->about_widget_cache = '指定された時間内にキャッシュされたデータが利用出来ます。';
|
||||
|
||||
$lang->generated_code = '生成コード';
|
||||
$lang->widgetstyle= 'ウィジェットスタイル';
|
||||
|
||||
$lang->msg_widget_is_not_exists = '%s ウィジェットが見つかりません。';
|
||||
$lang->msg_widget_object_is_null = '%s ウィジェットのオブジェクトが生成出来ません。';
|
||||
$lang->msg_widget_proc_is_null = '%s ウィセットの proc() が実行出来ません。';
|
||||
$lang->msg_widget_skin_is_null = 'ウィセットスキンを選択してから正常に動作します。';
|
||||
|
||||
$lang->about_widget_code = '選択されたウィゼットで求められる下の項目の値を入力し、「コード生成」ボタンをクリックすると、<br />一番下にテンプレートファイルに適用出来るコードが出力されます。';
|
||||
$lang->about_widget_code_in_page = '下に必要な値を入力した後、追加ボタンをクリックするとページ内にウィジェットが挿入されます。';
|
||||
$lang->about_widget = "ウィジェットまたはページモジュールに用いられる単体の構成要素です。内部モジュールまたは外部のOPEN API と連動が出来、設定によって様々な応用が可能です。XEのページモジュールまたはレイアウトモジュールを使用しなくても、「コード生成」機能で直接ウィジェットも追加出来ます。";
|
||||
|
||||
$lang->cmd_content_insert = '内容直接追加';
|
||||
$lang->cmd_box_widget_insert = 'ボックスウィジェット追加';
|
||||
$lang->cmd_remove_all_widgets = 'すべての内容削除';
|
||||
|
||||
$lang->cmd_widget_size = 'ウィジェットの大きさ';
|
||||
$lang->cmd_widget_align = 'ウィジェット整列';
|
||||
$lang->cmd_widget_align_left = '左へ';
|
||||
$lang->cmd_widget_align_right = '右へ';
|
||||
$lang->cmd_widget_margin = '外部余白';
|
||||
$lang->cmd_widget_padding = '内部余白';
|
||||
$lang->cmd_widget_border = 'ウィジェットボーダー';
|
||||
$lang->cmd_widget_border_solid = '実線';
|
||||
$lang->cmd_widget_border_dotted = '点線';
|
||||
$lang->cmd_widget_background_color = '背景色';
|
||||
$lang->cmd_widget_background_image_url = '背景イメージ';
|
||||
$lang->cmd_widget_background_image_repeat = '繰り返す';
|
||||
$lang->cmd_widget_background_image_no_repeat = '固定';
|
||||
$lang->cmd_widget_background_image_x_repeat = '横の繰り返し';
|
||||
$lang->cmd_widget_background_image_y_repeat = '縦の繰り返し';
|
||||
$lang->cmd_widget_background_image_x = '横の位置';
|
||||
$lang->cmd_widget_background_image_y = '縦の位置';
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/jp.lang.php
|
||||
* @author NHN (developers@xpressengine.com) 翻訳:RisaPapa、ミニミ
|
||||
* @brief ウィジェット(widget)モジュール基本言語パッケージ
|
||||
**/
|
||||
|
||||
$lang->cmd_generate_code = 'コード生成';
|
||||
|
||||
$lang->widget_name = 'ウィジェット名';
|
||||
$lang->widget_maker = 'ウィジェット作者';
|
||||
$lang->widget_license = 'ライセンス';
|
||||
$lang->widget_history = '変更内容';
|
||||
$lang->widget_info = 'ウィジェット情報';
|
||||
$lang->widget_code = 'コード';
|
||||
$lang->widget_cache = 'キャッシュ';
|
||||
|
||||
$lang->widget_fix_width = '横幅固定';
|
||||
$lang->widget_width = '縦幅サイズ';
|
||||
$lang->widget_position = 'ポジッション';
|
||||
$lang->widget_position_none = '改行';
|
||||
$lang->widget_position_left = '左へ';
|
||||
$lang->widget_position_right = '右へ';
|
||||
$lang->widget_margin = '余白';
|
||||
$lang->widget_margin_top = '上';
|
||||
$lang->widget_margin_right = '右';
|
||||
$lang->widget_margin_bottom = '下 ';
|
||||
$lang->widget_margin_left= '左';
|
||||
$lang->about_widget_fix_width = 'チェックすると横幅が固定されます。';
|
||||
$lang->about_widget_width = '縦幅サイズを選択して下さい。';
|
||||
$lang->about_widget_position = '一つのラインに多数のウィジェットを羅列したい場合は、ポジッションを選択して下さい。';
|
||||
$lang->about_widget_margin = '一つのラインに多数のウィジェットを羅列したい場合は、ポジッションを選択して下さい。';
|
||||
$lang->about_widget_cache = '指定された時間内にキャッシュされたデータが利用出来ます。';
|
||||
|
||||
$lang->generated_code = '生成コード';
|
||||
$lang->widgetstyle= 'ウィジェットスタイル';
|
||||
|
||||
$lang->msg_widget_is_not_exists = '%s ウィジェットが見つかりません。';
|
||||
$lang->msg_widget_object_is_null = '%s ウィジェットのオブジェクトが生成出来ません。';
|
||||
$lang->msg_widget_proc_is_null = '%s ウィセットの proc() が実行出来ません。';
|
||||
$lang->msg_widget_skin_is_null = 'ウィセットスキンを選択してから正常に動作します。';
|
||||
|
||||
$lang->about_widget_code = '選択されたウィゼットで求められる下の項目の値を入力し、「コード生成」ボタンをクリックすると、<br />一番下にテンプレートファイルに適用出来るコードが出力されます。';
|
||||
$lang->about_widget_code_in_page = '下に必要な値を入力した後、追加ボタンをクリックするとページ内にウィジェットが挿入されます。';
|
||||
$lang->about_widget = "ウィジェットまたはページモジュールに用いられる単体の構成要素です。内部モジュールまたは外部のOPEN API と連動が出来、設定によって様々な応用が可能です。XEのページモジュールまたはレイアウトモジュールを使用しなくても、「コード生成」機能で直接ウィジェットも追加出来ます。";
|
||||
|
||||
$lang->cmd_content_insert = '内容直接追加';
|
||||
$lang->cmd_box_widget_insert = 'ボックスウィジェット追加';
|
||||
$lang->cmd_remove_all_widgets = 'すべての内容削除';
|
||||
|
||||
$lang->cmd_widget_size = 'ウィジェットの大きさ';
|
||||
$lang->cmd_widget_align = 'ウィジェット整列';
|
||||
$lang->cmd_widget_align_left = '左へ';
|
||||
$lang->cmd_widget_align_right = '右へ';
|
||||
$lang->cmd_widget_margin = '外部余白';
|
||||
$lang->cmd_widget_padding = '内部余白';
|
||||
$lang->cmd_widget_border = 'ウィジェットボーダー';
|
||||
$lang->cmd_widget_border_solid = '実線';
|
||||
$lang->cmd_widget_border_dotted = '点線';
|
||||
$lang->cmd_widget_background_color = '背景色';
|
||||
$lang->cmd_widget_background_image_url = '背景イメージ';
|
||||
$lang->cmd_widget_background_image_repeat = '繰り返す';
|
||||
$lang->cmd_widget_background_image_no_repeat = '固定';
|
||||
$lang->cmd_widget_background_image_x_repeat = '横の繰り返し';
|
||||
$lang->cmd_widget_background_image_y_repeat = '縦の繰り返し';
|
||||
$lang->cmd_widget_background_image_x = '横の位置';
|
||||
$lang->cmd_widget_background_image_y = '縦の位置';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,68 +1,68 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/ko.lang.php
|
||||
* @author zero <zero@nzeo.com>
|
||||
* @brief 위젯(widget) 모듈의 기본 언어팩
|
||||
**/
|
||||
|
||||
$lang->cmd_generate_code = '코드생성';
|
||||
|
||||
$lang->widget_name = '위젯 이름';
|
||||
$lang->widget_maker = '위젯 제작자';
|
||||
$lang->widget_license = '라이선스';
|
||||
$lang->widget_history = '변경 이력';
|
||||
$lang->widget_info = '위젯 정보';
|
||||
$lang->widget_code = '코드';
|
||||
$lang->widget_cache = '캐시';
|
||||
|
||||
$lang->widget_fix_width = '크기 고정';
|
||||
$lang->widget_width = '가로 길이';
|
||||
$lang->widget_position = '위치';
|
||||
$lang->widget_position_none = '줄 바꿈';
|
||||
$lang->widget_position_left = '왼쪽';
|
||||
$lang->widget_position_right = '오른쪽';
|
||||
$lang->widget_margin = '외부 여백';
|
||||
$lang->widget_margin_top = '위';
|
||||
$lang->widget_margin_right = '오른쪽';
|
||||
$lang->widget_margin_bottom = '아래 ';
|
||||
$lang->widget_margin_left= '왼쪽';
|
||||
$lang->about_widget_fix_width = '선택하시면 가로 길이가 고정됩니다.';
|
||||
$lang->about_widget_width = '가로 길이를 입력해주세요.';
|
||||
$lang->about_widget_position = '한 줄에 여러 개의 위젯을 나열하고 싶을 때는 위치를 선택해주세요.';
|
||||
$lang->about_widget_margin = '지정된 위젯의 상하좌우 여백을 지정할 수 있습니다.';
|
||||
$lang->about_widget_cache = '지정된 시간동안 캐시된 데이터를 이용할 수 있습니다.';
|
||||
|
||||
$lang->generated_code = '생성된 코드';
|
||||
$lang->widgetstyle= '위젯스타일';
|
||||
|
||||
$lang->msg_widget_is_not_exists = '%s 위젯을 찾을 수 없습니다.';
|
||||
$lang->msg_widget_object_is_null = '%s 위젯의 객체 생성을 할 수 없습니다.';
|
||||
$lang->msg_widget_proc_is_null = '%s 위젯의 proc() 를 실행할 수 없습니다.';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다.';
|
||||
|
||||
$lang->about_widget_code = '선택하신 위젯에서 요구하는 아래 항목들의 값을 넣고 [코드생성]버튼을 누르시면 제일 아래 칸에 템플릿 파일에 적용할 수 있는 코드가 출력 됩니다.';
|
||||
$lang->about_widget_code_in_page = '아래 필요한 값들을 입력하신 후 추가 버튼을 누르시면 페이지 내에 위젯이 삽입됩니다.';
|
||||
$lang->about_widget = "위젯은 레이아웃이나 페이지 모듈에서 사용되는 작은 구성요소입니다.\n위젯은 내부 모듈 또는 외부 open api와 연동될 수도 있고, 설정을 통해 다양하게 응용될 수 있습니다.\nXE의 페이지 모듈이나 레이아웃 모듈을 사용하지 않더라도 [코드생성] 기능을 통해 직접 위젯 추가도 할 수 있습니다.";
|
||||
|
||||
$lang->cmd_content_insert = '내용 직접 추가';
|
||||
$lang->cmd_box_widget_insert = '상자 위젯 추가';
|
||||
$lang->cmd_remove_all_widgets = '내용 모두 지우기';
|
||||
|
||||
$lang->cmd_widget_size = '위젯 크기';
|
||||
$lang->cmd_widget_align = '위젯 정렬';
|
||||
$lang->cmd_widget_align_left = '왼쪽';
|
||||
$lang->cmd_widget_align_right = '오른쪽';
|
||||
$lang->cmd_widget_margin = '외부 여백';
|
||||
$lang->cmd_widget_padding = '내부 여백';
|
||||
$lang->cmd_widget_border = '위젯 테두리';
|
||||
$lang->cmd_widget_border_solid = '실선';
|
||||
$lang->cmd_widget_border_dotted = '점선';
|
||||
$lang->cmd_widget_background_color = '배경색';
|
||||
$lang->cmd_widget_background_image_url = '배경 이미지';
|
||||
$lang->cmd_widget_background_image_repeat = '반복';
|
||||
$lang->cmd_widget_background_image_no_repeat = '고정';
|
||||
$lang->cmd_widget_background_image_x_repeat = '가로 반복';
|
||||
$lang->cmd_widget_background_image_y_repeat = '세로 반복';
|
||||
$lang->cmd_widget_background_image_x = '가로 위치';
|
||||
$lang->cmd_widget_background_image_y = '세로 위치';
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/ko.lang.php
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief 위젯(widget) 모듈의 기본 언어팩
|
||||
**/
|
||||
|
||||
$lang->cmd_generate_code = '코드생성';
|
||||
|
||||
$lang->widget_name = '위젯 이름';
|
||||
$lang->widget_maker = '위젯 제작자';
|
||||
$lang->widget_license = '라이선스';
|
||||
$lang->widget_history = '변경 이력';
|
||||
$lang->widget_info = '위젯 정보';
|
||||
$lang->widget_code = '코드';
|
||||
$lang->widget_cache = '캐시';
|
||||
|
||||
$lang->widget_fix_width = '크기 고정';
|
||||
$lang->widget_width = '가로 길이';
|
||||
$lang->widget_position = '위치';
|
||||
$lang->widget_position_none = '줄 바꿈';
|
||||
$lang->widget_position_left = '왼쪽';
|
||||
$lang->widget_position_right = '오른쪽';
|
||||
$lang->widget_margin = '외부 여백';
|
||||
$lang->widget_margin_top = '위';
|
||||
$lang->widget_margin_right = '오른쪽';
|
||||
$lang->widget_margin_bottom = '아래 ';
|
||||
$lang->widget_margin_left= '왼쪽';
|
||||
$lang->about_widget_fix_width = '선택하시면 가로 길이가 고정됩니다.';
|
||||
$lang->about_widget_width = '가로 길이를 입력해주세요.';
|
||||
$lang->about_widget_position = '한 줄에 여러 개의 위젯을 나열하고 싶을 때는 위치를 선택해주세요.';
|
||||
$lang->about_widget_margin = '지정된 위젯의 상하좌우 여백을 지정할 수 있습니다.';
|
||||
$lang->about_widget_cache = '지정된 시간동안 캐시된 데이터를 이용할 수 있습니다.';
|
||||
|
||||
$lang->generated_code = '생성된 코드';
|
||||
$lang->widgetstyle= '위젯스타일';
|
||||
|
||||
$lang->msg_widget_is_not_exists = '%s 위젯을 찾을 수 없습니다.';
|
||||
$lang->msg_widget_object_is_null = '%s 위젯의 객체 생성을 할 수 없습니다.';
|
||||
$lang->msg_widget_proc_is_null = '%s 위젯의 proc() 를 실행할 수 없습니다.';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다.';
|
||||
|
||||
$lang->about_widget_code = '선택하신 위젯에서 요구하는 아래 항목들의 값을 넣고 [코드생성]버튼을 누르시면 제일 아래 칸에 템플릿 파일에 적용할 수 있는 코드가 출력 됩니다.';
|
||||
$lang->about_widget_code_in_page = '아래 필요한 값들을 입력하신 후 추가 버튼을 누르시면 페이지 내에 위젯이 삽입됩니다.';
|
||||
$lang->about_widget = "위젯은 레이아웃이나 페이지 모듈에서 사용되는 작은 구성요소입니다.\n위젯은 내부 모듈 또는 외부 open api와 연동될 수도 있고, 설정을 통해 다양하게 응용될 수 있습니다.\nXE의 페이지 모듈이나 레이아웃 모듈을 사용하지 않더라도 [코드생성] 기능을 통해 직접 위젯 추가도 할 수 있습니다.";
|
||||
|
||||
$lang->cmd_content_insert = '내용 직접 추가';
|
||||
$lang->cmd_box_widget_insert = '상자 위젯 추가';
|
||||
$lang->cmd_remove_all_widgets = '내용 모두 지우기';
|
||||
|
||||
$lang->cmd_widget_size = '위젯 크기';
|
||||
$lang->cmd_widget_align = '위젯 정렬';
|
||||
$lang->cmd_widget_align_left = '왼쪽';
|
||||
$lang->cmd_widget_align_right = '오른쪽';
|
||||
$lang->cmd_widget_margin = '외부 여백';
|
||||
$lang->cmd_widget_padding = '내부 여백';
|
||||
$lang->cmd_widget_border = '위젯 테두리';
|
||||
$lang->cmd_widget_border_solid = '실선';
|
||||
$lang->cmd_widget_border_dotted = '점선';
|
||||
$lang->cmd_widget_background_color = '배경색';
|
||||
$lang->cmd_widget_background_image_url = '배경 이미지';
|
||||
$lang->cmd_widget_background_image_repeat = '반복';
|
||||
$lang->cmd_widget_background_image_no_repeat = '고정';
|
||||
$lang->cmd_widget_background_image_x_repeat = '가로 반복';
|
||||
$lang->cmd_widget_background_image_y_repeat = '세로 반복';
|
||||
$lang->cmd_widget_background_image_x = '가로 위치';
|
||||
$lang->cmd_widget_background_image_y = '세로 위치';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,46 +1,46 @@
|
|||
<?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->cmd_generate_code = 'Генерировать код';
|
||||
|
||||
$lang->widget_name = 'Имя виджета';
|
||||
$lang->widget_maker = 'Разработчик виджета';
|
||||
$lang->widget_license = 'License';
|
||||
$lang->widget_history = 'История обновлений';
|
||||
$lang->widget_info = 'Информация виджета';
|
||||
$lang->widget_code = 'Код';
|
||||
$lang->widget_cache = 'Кеш';
|
||||
|
||||
$lang->widget_fix_width = 'Фиксированная ширина';
|
||||
$lang->widget_width = 'Ширина';
|
||||
$lang->widget_position = 'Позиция';
|
||||
$lang->widget_position_none = 'Следующая строка';
|
||||
$lang->widget_position_left = 'Лево';
|
||||
$lang->widget_position_right = 'Право';
|
||||
$lang->widget_margin = 'Поля';
|
||||
$lang->widget_margin_top = 'Верхнее поле';
|
||||
$lang->widget_margin_right = 'Правое поле';
|
||||
$lang->widget_margin_bottom = 'Шижнее поле';
|
||||
$lang->widget_margin_left= 'Левое поле';
|
||||
$lang->about_widget_fix_width = 'Пожалуйста, установите для фиксирования ширины.';
|
||||
$lang->about_widget_width = 'Пожалуйста, установите ширину виджета.';
|
||||
$lang->about_widget_position = 'Пожалуйста, выберите позицию виджета, если Вы хотите отобразить несколько виджетов в одной строке.';
|
||||
$lang->about_widget_margin = "Вы можете установить поля виждета, т.е. его отступы со всех четырех сторон.";
|
||||
$lang->about_widget_cache = 'Кешированные данные будут использоваться на указанный срок.';
|
||||
|
||||
$lang->generated_code = 'Сгенерированный код';
|
||||
$lang->widgetstyle= '위젯스타일';
|
||||
|
||||
$lang->msg_widget_is_not_exists = '%s виджет не существует.';
|
||||
$lang->msg_widget_object_is_null = '%s объектов виджета не могут быть созданы.';
|
||||
$lang->msg_widget_proc_is_null = 'proc() %s виджета не может быть исполнена.';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = 'Пожалуйста, сначала введите требуемые значения, и затем щелкните кнопку [Генерировать Код] для генерации кода и добавления его в файл шаблона.';
|
||||
$lang->about_widget_code_in_page = 'После ввода требуемых значений, нажмите пнопку [Добавить], чтобы вставить код виджета в страницу.';
|
||||
$lang->about_addon = "Виджет -- это маленькая самостоятельная программа, используемая в лейауте или модуле страниц.\n Он может быть связан с внутренним модулем или внешними открытыми API. Посредством его детального конфигурирования можно добиться широкого его применения. \n Вы можете напрямую добавить виджет, используя функцию генерирования кода без использования модулей страниц или лейаутов XE.";
|
||||
?>
|
||||
<?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->cmd_generate_code = 'Генерировать код';
|
||||
|
||||
$lang->widget_name = 'Имя виджета';
|
||||
$lang->widget_maker = 'Разработчик виджета';
|
||||
$lang->widget_license = 'License';
|
||||
$lang->widget_history = 'История обновлений';
|
||||
$lang->widget_info = 'Информация виджета';
|
||||
$lang->widget_code = 'Код';
|
||||
$lang->widget_cache = 'Кеш';
|
||||
|
||||
$lang->widget_fix_width = 'Фиксированная ширина';
|
||||
$lang->widget_width = 'Ширина';
|
||||
$lang->widget_position = 'Позиция';
|
||||
$lang->widget_position_none = 'Следующая строка';
|
||||
$lang->widget_position_left = 'Лево';
|
||||
$lang->widget_position_right = 'Право';
|
||||
$lang->widget_margin = 'Поля';
|
||||
$lang->widget_margin_top = 'Верхнее поле';
|
||||
$lang->widget_margin_right = 'Правое поле';
|
||||
$lang->widget_margin_bottom = 'Шижнее поле';
|
||||
$lang->widget_margin_left= 'Левое поле';
|
||||
$lang->about_widget_fix_width = 'Пожалуйста, установите для фиксирования ширины.';
|
||||
$lang->about_widget_width = 'Пожалуйста, установите ширину виджета.';
|
||||
$lang->about_widget_position = 'Пожалуйста, выберите позицию виджета, если Вы хотите отобразить несколько виджетов в одной строке.';
|
||||
$lang->about_widget_margin = "Вы можете установить поля виждета, т.е. его отступы со всех четырех сторон.";
|
||||
$lang->about_widget_cache = 'Кешированные данные будут использоваться на указанный срок.';
|
||||
|
||||
$lang->generated_code = 'Сгенерированный код';
|
||||
$lang->widgetstyle= '위젯스타일';
|
||||
|
||||
$lang->msg_widget_is_not_exists = '%s виджет не существует.';
|
||||
$lang->msg_widget_object_is_null = '%s объектов виджета не могут быть созданы.';
|
||||
$lang->msg_widget_proc_is_null = 'proc() %s виджета не может быть исполнена.';
|
||||
$lang->msg_widget_skin_is_null = '위젯의 스킨을 선택해 주셔야 정상적으로 동작할 수 있습니다';
|
||||
|
||||
$lang->about_widget_code = 'Пожалуйста, сначала введите требуемые значения, и затем щелкните кнопку [Генерировать Код] для генерации кода и добавления его в файл шаблона.';
|
||||
$lang->about_widget_code_in_page = 'После ввода требуемых значений, нажмите пнопку [Добавить], чтобы вставить код виджета в страницу.';
|
||||
$lang->about_addon = "Виджет -- это маленькая самостоятельная программа, используемая в лейауте или модуле страниц.\n Он может быть связан с внутренним модулем или внешними открытыми API. Посредством его детального конфигурирования можно добиться широкого его применения. \n Вы можете напрямую добавить виджет, используя функцию генерирования кода без использования модулей страниц или лейаутов XE.";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,70 +1,70 @@
|
|||
<?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->cmd_generate_code = 'Tạo Code';
|
||||
|
||||
$lang->widget_name = 'Tên Widget';
|
||||
$lang->widget_maker = 'Người tạo';
|
||||
$lang->widget_license = 'Giấy phép';
|
||||
$lang->widget_history = 'Lịch sử cập nhật';
|
||||
$lang->widget_info = 'Thông tin Widget';
|
||||
$lang->widget_code = 'Code';
|
||||
$lang->widget_cache = 'Bộ nhớ đệm';
|
||||
|
||||
$lang->widget_fix_width = 'Cố định chiều rộng';
|
||||
$lang->widget_width = 'Chiều rộng';
|
||||
$lang->widget_position = 'Vị trí';
|
||||
$lang->widget_position_none = 'Dòng tiếp theo';
|
||||
$lang->widget_position_left = 'Trái';
|
||||
$lang->widget_position_right = 'Phải';
|
||||
$lang->widget_margin = 'Lề';
|
||||
$lang->widget_margin_top = 'Lề trên';
|
||||
$lang->widget_margin_right = 'Lề phải';
|
||||
$lang->widget_margin_bottom = 'Lề dưới';
|
||||
$lang->widget_margin_left= 'Lề trái';
|
||||
$lang->about_widget_fix_width = 'Hãy kiểm tra để cố định chiều rộng.';
|
||||
$lang->about_widget_width = 'Hãy đặt chiều rộng cho Widget.';
|
||||
$lang->about_widget_position = 'Hãy chọn vị trí nếu bạn muốn nhiều Widget cùng hiển thị.';
|
||||
$lang->about_widget_margin = "Bạn có thể đặt lề của Widget: Trái, Phải, Trên, Dưới.";
|
||||
$lang->about_widget_cache = 'Bộ nhớ đệm của Data có thể được sử dụng nếu bạn đặt thời gian cho nó.';
|
||||
|
||||
$lang->generated_code = 'Đã tạo Code';
|
||||
$lang->widgetstyle= 'Kiểu dáng Widget';
|
||||
|
||||
$lang->msg_widget_is_not_exists = "'%s' không tồn tại.";
|
||||
$lang->msg_widget_object_is_null = "Đối tượng của '%s' đã không được tạo.";
|
||||
$lang->msg_widget_proc_is_null = "proc() của '%s' đã không được thực hiện.";
|
||||
$lang->msg_widget_skin_is_null = "Bạn cần phải chọn Skin cho Widget.";
|
||||
|
||||
$lang->about_widget_code = 'Hãy nhập các thông tin cần thiết, sau đó bấm nút [<b>Tạo Code</b>] để lấy Code thêm vào giao diện.';
|
||||
$lang->about_widget_code_in_page = 'Sau khi nhập những thông tin cần thiết, bấm nút [<b>Tạo Code</b>] để chèn Code của Widget vào giao diện.';
|
||||
$lang->about_widget = "Widget là một ứng dụng nhỏ có thể đặt ở bất kì vị trí nào do người dùng lựa chọn.<br />Nó có thể kết nối với những Module trong Website hay Open API bên ngoài và hiển thị nội dung của Module đó.<br />Thông qua sự thiết lập cấu hình, nó có thể là một ứng dụng rộng dãi.<br />Bạn có thể thêm một Widget bằng cách bấm nút [<b>Tạo Code</b>] để lấy Code thêm vào một Module hay trang nào đó.";
|
||||
|
||||
$lang->cmd_content_insert = "Chèn nội dung của bạn";
|
||||
$lang->cmd_box_widget_insert = "Chèn khung Widget";
|
||||
$lang->cmd_remove_all_widgets = "Xóa tất cả Widget";
|
||||
|
||||
$lang->cmd_widget_size = "Kích thước";
|
||||
$lang->cmd_widget_align = "Căn chỉnh";
|
||||
$lang->cmd_widget_align_left = "Trái";
|
||||
$lang->cmd_widget_align_right = "Phải";
|
||||
$lang->cmd_widget_margin = "Lề";
|
||||
$lang->cmd_widget_padding = "Đệm";
|
||||
$lang->cmd_widget_border = "Viền";
|
||||
$lang->cmd_widget_border_solid = "Viền liền";
|
||||
$lang->cmd_widget_border_dotted = "Viền chấm";
|
||||
$lang->cmd_widget_background_color = "Màu nền";
|
||||
$lang->cmd_widget_background_image_url = "Hình nền";
|
||||
$lang->cmd_widget_background_image_repeat = "Lặp lại";
|
||||
$lang->cmd_widget_background_image_no_repeat = "Không lặp";
|
||||
$lang->cmd_widget_background_image_x_repeat = "Lặp chiều X";
|
||||
$lang->cmd_widget_background_image_y_repeat = "Lặp chiều Y";
|
||||
$lang->cmd_widget_background_image_x = "Vị trí X";
|
||||
$lang->cmd_widget_background_image_y = "Vị trí Y";
|
||||
?>
|
||||
<?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->cmd_generate_code = 'Tạo Code';
|
||||
|
||||
$lang->widget_name = 'Tên Widget';
|
||||
$lang->widget_maker = 'Người tạo';
|
||||
$lang->widget_license = 'Giấy phép';
|
||||
$lang->widget_history = 'Lịch sử cập nhật';
|
||||
$lang->widget_info = 'Thông tin Widget';
|
||||
$lang->widget_code = 'Code';
|
||||
$lang->widget_cache = 'Bộ nhớ đệm';
|
||||
|
||||
$lang->widget_fix_width = 'Cố định chiều rộng';
|
||||
$lang->widget_width = 'Chiều rộng';
|
||||
$lang->widget_position = 'Vị trí';
|
||||
$lang->widget_position_none = 'Dòng tiếp theo';
|
||||
$lang->widget_position_left = 'Trái';
|
||||
$lang->widget_position_right = 'Phải';
|
||||
$lang->widget_margin = 'Lề';
|
||||
$lang->widget_margin_top = 'Lề trên';
|
||||
$lang->widget_margin_right = 'Lề phải';
|
||||
$lang->widget_margin_bottom = 'Lề dưới';
|
||||
$lang->widget_margin_left= 'Lề trái';
|
||||
$lang->about_widget_fix_width = 'Hãy kiểm tra để cố định chiều rộng.';
|
||||
$lang->about_widget_width = 'Hãy đặt chiều rộng cho Widget.';
|
||||
$lang->about_widget_position = 'Hãy chọn vị trí nếu bạn muốn nhiều Widget cùng hiển thị.';
|
||||
$lang->about_widget_margin = "Bạn có thể đặt lề của Widget: Trái, Phải, Trên, Dưới.";
|
||||
$lang->about_widget_cache = 'Bộ nhớ đệm của Data có thể được sử dụng nếu bạn đặt thời gian cho nó.';
|
||||
|
||||
$lang->generated_code = 'Đã tạo Code';
|
||||
$lang->widgetstyle= 'Kiểu dáng Widget';
|
||||
|
||||
$lang->msg_widget_is_not_exists = "'%s' không tồn tại.";
|
||||
$lang->msg_widget_object_is_null = "Đối tượng của '%s' đã không được tạo.";
|
||||
$lang->msg_widget_proc_is_null = "proc() của '%s' đã không được thực hiện.";
|
||||
$lang->msg_widget_skin_is_null = "Bạn cần phải chọn Skin cho Widget.";
|
||||
|
||||
$lang->about_widget_code = 'Hãy nhập các thông tin cần thiết, sau đó bấm nút [<b>Tạo Code</b>] để lấy Code thêm vào giao diện.';
|
||||
$lang->about_widget_code_in_page = 'Sau khi nhập những thông tin cần thiết, bấm nút [<b>Tạo Code</b>] để chèn Code của Widget vào giao diện.';
|
||||
$lang->about_widget = "Widget là một ứng dụng nhỏ có thể đặt ở bất kì vị trí nào do người dùng lựa chọn.<br />Nó có thể kết nối với những Module trong Website hay Open API bên ngoài và hiển thị nội dung của Module đó.<br />Thông qua sự thiết lập cấu hình, nó có thể là một ứng dụng rộng dãi.<br />Bạn có thể thêm một Widget bằng cách bấm nút [<b>Tạo Code</b>] để lấy Code thêm vào một Module hay trang nào đó.";
|
||||
|
||||
$lang->cmd_content_insert = "Chèn nội dung của bạn";
|
||||
$lang->cmd_box_widget_insert = "Chèn khung Widget";
|
||||
$lang->cmd_remove_all_widgets = "Xóa tất cả Widget";
|
||||
|
||||
$lang->cmd_widget_size = "Kích thước";
|
||||
$lang->cmd_widget_align = "Căn chỉnh";
|
||||
$lang->cmd_widget_align_left = "Trái";
|
||||
$lang->cmd_widget_align_right = "Phải";
|
||||
$lang->cmd_widget_margin = "Lề";
|
||||
$lang->cmd_widget_padding = "Đệm";
|
||||
$lang->cmd_widget_border = "Viền";
|
||||
$lang->cmd_widget_border_solid = "Viền liền";
|
||||
$lang->cmd_widget_border_dotted = "Viền chấm";
|
||||
$lang->cmd_widget_background_color = "Màu nền";
|
||||
$lang->cmd_widget_background_image_url = "Hình nền";
|
||||
$lang->cmd_widget_background_image_repeat = "Lặp lại";
|
||||
$lang->cmd_widget_background_image_no_repeat = "Không lặp";
|
||||
$lang->cmd_widget_background_image_x_repeat = "Lặp chiều X";
|
||||
$lang->cmd_widget_background_image_y_repeat = "Lặp chiều Y";
|
||||
$lang->cmd_widget_background_image_x = "Vị trí X";
|
||||
$lang->cmd_widget_background_image_y = "Vị trí Y";
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/zh-CN.lang.php
|
||||
* @author zero <zero@nzeo.com> 翻译:guny
|
||||
* @author NHN (developers@xpressengine.com) 翻译:guny
|
||||
* @brief 控件(widget)模块简体中文语言包
|
||||
**/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @file modules/widget/lang/zh-TW.lang.php
|
||||
* @author zero <zero@nzeo.com> 翻譯:royallin
|
||||
* @author NHN (developers@xpressengine.com) 翻譯:royallin
|
||||
* @brief Widget模組正體中文語言
|
||||
**/
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,470 +1,470 @@
|
|||
/**
|
||||
* @file modules/widget/js/widget_admin.js
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief widget 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
||||
/* 생성된 코드를 textarea에 출력 */
|
||||
function completeGenerateCode(ret_obj) {
|
||||
var widget_code = ret_obj["widget_code"];
|
||||
widget_code = widget_code.replace(/&/g, "&");
|
||||
widget_code = widget_code.replace(/\'/g, "'");
|
||||
var zone = xGetElementById("widget_code");
|
||||
zone.value = widget_code;
|
||||
}
|
||||
|
||||
/* 생성된 코드를 페이지 zone에 출력 */
|
||||
function completeGenerateCodeInPage(ret_obj,response_tags,params,fo_obj) {
|
||||
var widget_code = ret_obj["widget_code"];
|
||||
if(!opener || !widget_code) {
|
||||
window.close();
|
||||
return;
|
||||
}
|
||||
|
||||
opener.doAddWidgetCode(widget_code);
|
||||
window.close();
|
||||
}
|
||||
|
||||
/* 위젯 코드 생성시 스킨을 고르면 컬러셋의 정보를 표시 */
|
||||
function doDisplaySkinColorset(sel, colorset) {
|
||||
var skin = sel.options[sel.selectedIndex].value;
|
||||
if(!skin) {
|
||||
xGetElementById("colorset_area").style.display = "none";
|
||||
setFixedPopupSize();
|
||||
return;
|
||||
}
|
||||
|
||||
var params = new Array();
|
||||
params["selected_widget"] = xGetElementById("fo_widget").selected_widget.value;
|
||||
params["skin"] = skin;
|
||||
params["colorset"] = colorset;
|
||||
|
||||
var response_tags = new Array("error","message","colorset_list");
|
||||
|
||||
exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params);
|
||||
}
|
||||
|
||||
/* 서버에서 받아온 컬러셋을 표시 */
|
||||
function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) {
|
||||
var sel = jQuery("#fo_widget")[0].widget_colorset;
|
||||
var length = sel.options.length;
|
||||
var selected_colorset = params["colorset"];
|
||||
for(var i=0;i<length;i++) sel.remove(0);
|
||||
|
||||
if(!ret_obj["colorset_list"]) return;
|
||||
|
||||
var colorset_list = ret_obj["colorset_list"].split("\n");
|
||||
var selected_index = 0;
|
||||
for(var i=0;i<colorset_list.length;i++) {
|
||||
var tmp = colorset_list[i].split("|@|");
|
||||
if(selected_colorset && selected_colorset==tmp[0]) selected_index = i;
|
||||
var opt = new Option(tmp[1], tmp[0], false, false);
|
||||
sel.options.add(opt);
|
||||
}
|
||||
|
||||
sel.selectedIndex = selected_index;
|
||||
|
||||
jQuery("#colorset_area").show();
|
||||
setFixedPopupSize();
|
||||
}
|
||||
|
||||
|
||||
var selected_node = null;
|
||||
/* 페이지 모듈에서 위젯스타일 수정하려고 할 경우 */
|
||||
function getWidgetVars() {
|
||||
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
|
||||
selected_node = opener.selectedWidget;
|
||||
|
||||
if(!xGetElementById('fo_widget').widgetstyle.value) {
|
||||
xGetElementById('fo_widget').widgetstyle.value = selected_node.getAttribute('widgetstyle');
|
||||
}
|
||||
|
||||
doFillWidgetVars();
|
||||
}
|
||||
|
||||
/* 페이지 모듈에서 내용의 위젯을 더블클릭하여 수정하려고 할 경우 */
|
||||
function doFillWidgetVars() {
|
||||
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
|
||||
selected_node = opener.selectedWidget;
|
||||
|
||||
// 스킨과 컬러셋은 기본
|
||||
var skin = selected_node.getAttribute("skin");
|
||||
var colorset = selected_node.getAttribute("colorset");
|
||||
var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10);
|
||||
|
||||
var fo_widget = jQuery("#fo_widget");
|
||||
var fo_obj = xGetElementById("fo_widget");
|
||||
jQuery('#widget_skin').val(skin);
|
||||
|
||||
// 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장
|
||||
var attrs = selected_node.attributes;
|
||||
for (i=0; i< attrs.length ; i++){
|
||||
var name = attrs[i].name;
|
||||
var value = jQuery(selected_node).attr(name);
|
||||
if(value=='Array') continue;
|
||||
if(jQuery("[name="+name+"]",fo_widget).size()>0 || !value || name == 'style') continue;
|
||||
|
||||
var dummy = jQuery('<input type="hidden" name="'+name+'" >').val(value).appendTo("#fo_widget").get(0);
|
||||
}
|
||||
|
||||
// 위젯의 속성 설정
|
||||
var obj_list = new Array();
|
||||
jQuery('input,select,textarea','#fo_widget').each( function() {
|
||||
obj_list.push(this);
|
||||
});
|
||||
|
||||
for(var j=0;j<obj_list.length;j++) {
|
||||
var node = obj_list[j];
|
||||
if(node.name.indexOf('_')==0) continue;
|
||||
if(node.name == 'widgetstyle') continue;
|
||||
|
||||
var length = node.length;
|
||||
var type = node.type;
|
||||
if((typeof(type)=='undefined'||!type) && typeof(length)!='undefined' && typeof(node[0])!='undefined' && length>0) type = node[0].type;
|
||||
else length = 0;
|
||||
var name = node.name;
|
||||
|
||||
switch(type) {
|
||||
case "hidden" :
|
||||
case "text" :
|
||||
case "textarea" :
|
||||
var val = selected_node.getAttribute(name);
|
||||
if(!val) continue;
|
||||
var unescaped_val = unescape(val);
|
||||
if(!unescaped_val) node.value = val;
|
||||
else node.value = unescaped_val;
|
||||
break;
|
||||
case "checkbox" :
|
||||
if(selected_node.getAttribute(name)) {
|
||||
var val = selected_node.getAttribute(name).split(',');
|
||||
if(fo_obj[name].length) {
|
||||
for(var i=0;i<fo_obj[name].length;i++) {
|
||||
var v = fo_obj[name][i].value;
|
||||
for(var k=0;k<val.length;k++) {
|
||||
if(v == val[k]) {
|
||||
fo_obj[name][i].checked=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(fo_obj[name].value == val) fo_obj[name].checked =true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "select" :
|
||||
case "select-one" :
|
||||
var val = selected_node.getAttribute(name);
|
||||
var sel = fo_obj[name];
|
||||
if(!val) break;
|
||||
for(var i=0;i<sel.options.length;i++) {
|
||||
if(sel.options[i].value == val) sel.options[i].selected = true;
|
||||
else sel.options[i].selected = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var style = selected_node.getAttribute("style");
|
||||
if(typeof(style)=="object") style = style["cssText"];
|
||||
fo_obj.style.value = style;
|
||||
|
||||
fo_obj.widget_padding_left.value = selected_node.getAttribute("widget_padding_left");
|
||||
fo_obj.widget_padding_right.value = selected_node.getAttribute("widget_padding_right");
|
||||
fo_obj.widget_padding_bottom.value = selected_node.getAttribute("widget_padding_bottom");
|
||||
fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top");
|
||||
|
||||
|
||||
// 컬러셋 설정
|
||||
if(skin && xGetElementById("widget_colorset") && xGetElementById("widget_colorset").options.length<1 && colorset) {
|
||||
doDisplaySkinColorset(xGetElementById("widget_skin"), colorset);
|
||||
}
|
||||
|
||||
// widget sequence 설정
|
||||
fo_obj.widget_sequence.value = widget_sequence;
|
||||
}
|
||||
|
||||
function checkFixType(obj) {
|
||||
var val = obj.options[obj.selectedIndex].value;
|
||||
if(val != "px") {
|
||||
var fo_obj = xGetElementById("fo_widget");
|
||||
var width = fo_obj.widget_width.value;
|
||||
if(width>100) fo_obj.widget_width.value = 100;
|
||||
}
|
||||
}
|
||||
|
||||
// 위젯의 대상 모듈 입력기 (단일 선택)
|
||||
function insertSelectedModule(id, module_srl, mid, browser_title) {
|
||||
var obj= xGetElementById('_'+id);
|
||||
var sObj = xGetElementById(id);
|
||||
sObj.value = module_srl;
|
||||
obj.value = browser_title+' ('+mid+')';
|
||||
|
||||
}
|
||||
|
||||
// 위젯의 대상 모듈 입력기 (다중 선택)
|
||||
function insertSelectedModules(id, module_srl, mid, browser_title) {
|
||||
var sel_obj = jQuery('#_'+id)[0];
|
||||
for(var i=0;i<sel_obj.options.length;i++) if(sel_obj.options[i].value==module_srl) return;
|
||||
var opt = new Option(browser_title+' ('+mid+')', module_srl, false, false);
|
||||
sel_obj.options[sel_obj.options.length] = opt;
|
||||
if(sel_obj.options.length>8) sel_obj.size = sel_obj.options.length;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midMoveUp(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
|
||||
if(idx < 1) return;
|
||||
|
||||
var s_obj = sel_obj.options[idx];
|
||||
var t_obj = sel_obj.options[idx-1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
sel_obj.selectedIndex = idx-1;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midMoveDown(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
|
||||
if(idx == sel_obj.options.length-1) return;
|
||||
|
||||
var s_obj = sel_obj.options[idx];
|
||||
var t_obj = sel_obj.options[idx+1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
sel_obj.selectedIndex = idx+1;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midRemove(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
sel_obj.remove(idx);
|
||||
idx = idx-1;
|
||||
if(idx < 0) idx = 0;
|
||||
if(sel_obj.options.length) sel_obj.selectedIndex = idx;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function syncMid(id) {
|
||||
var sel_obj = jQuery('#_'+id)[0];
|
||||
var valueArray = [];
|
||||
for(var i=0;i<sel_obj.options.length;i++) valueArray[valueArray.length] = sel_obj.options[i].value;
|
||||
jQuery('#'+id).val( valueArray.join(',') );
|
||||
}
|
||||
|
||||
function getModuleSrlList(id) {
|
||||
var obj = jQuery('#'+id);
|
||||
if(!obj[0] || !obj.val()) return;
|
||||
|
||||
var params = [];
|
||||
params["module_srls"] = obj.val();
|
||||
params["id"] = id;
|
||||
|
||||
var response_tags = ["error","message","module_list","id"];
|
||||
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrlList, response_tags, params);
|
||||
}
|
||||
|
||||
function completeGetModuleSrlList(ret_obj, response_tags) {
|
||||
var id = ret_obj['id'];
|
||||
var sel_obj = jQuery('#_'+id);
|
||||
if(!sel_obj[0]) return;
|
||||
|
||||
var module_list = ret_obj['module_list'];
|
||||
if(!module_list) return;
|
||||
var item = module_list['item'];
|
||||
if(typeof(item.length)=='undefined' || item.length<1) item = [item];
|
||||
|
||||
for(var i=0;i<item.length;i++) {
|
||||
var module_srl = item[i].module_srl;
|
||||
var mid = item[i].mid;
|
||||
var browser_title = item[i].browser_title;
|
||||
var opt = new Option(browser_title+' ('+mid+')', module_srl);
|
||||
sel_obj[0].options.add(opt);
|
||||
}
|
||||
}
|
||||
|
||||
function getModuleSrl(id) {
|
||||
var obj = xGetElementById(id);
|
||||
if(!obj.value) return;
|
||||
var value = obj.value;
|
||||
var params = new Array();
|
||||
params["module_srls"] = obj.value;
|
||||
params["id"] = id;
|
||||
|
||||
var response_tags = new Array("error","message","module_list","id");
|
||||
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrl, response_tags, params);
|
||||
}
|
||||
|
||||
function completeGetModuleSrl(ret_obj, response_tags) {
|
||||
var id = ret_obj['id'];
|
||||
var obj = xGetElementById('_'+id);
|
||||
var sObj = xGetElementById(id);
|
||||
if(!sObj || !obj) return;
|
||||
|
||||
var module_list = ret_obj['module_list'];
|
||||
if(!module_list) return;
|
||||
var item = module_list['item'];
|
||||
if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item);
|
||||
|
||||
sObj.value = item[0].module_srl;
|
||||
obj.value = item[0].browser_title+' ('+item[0].mid+')';
|
||||
}
|
||||
|
||||
var windowLoadEventLoader = new Array();
|
||||
function doAddWindowLoadEventLoader(func) {
|
||||
windowLoadEventLoader.push(func);
|
||||
}
|
||||
function excuteWindowLoadEvent() {
|
||||
for(var i=0;i<windowLoadEventLoader.length;i++) {
|
||||
windowLoadEventLoader[i]();
|
||||
}
|
||||
}
|
||||
|
||||
jQuery(window).load(excuteWindowLoadEvent);
|
||||
|
||||
|
||||
function selectWidget(val){
|
||||
var url =current_url.setQuery('selected_widget', val);
|
||||
document.location.href = url;
|
||||
}
|
||||
|
||||
function widgetstyle_extra_image_upload(f){
|
||||
f.act.value='procWidgetStyleExtraImageUpload';
|
||||
f.submit();
|
||||
}
|
||||
|
||||
function MultiOrderSet(id){
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
|
||||
var value = [];
|
||||
for(i=0;i<selectedObj.options.length;i++){
|
||||
value.push(selectedObj.options[i].value);
|
||||
}
|
||||
jQuery("[name='"+id+"']").val(value.join(','));
|
||||
}
|
||||
|
||||
|
||||
function MultiOrderAdd(id){
|
||||
var showObj = jQuery("[name='show_"+id+"']").get(0);
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
|
||||
|
||||
if(showObj.selectedIndex<0) return;
|
||||
var idx = showObj.selectedIndex;
|
||||
var svalue = showObj.options[idx].value;
|
||||
|
||||
|
||||
for(i=0;i<selectedObj.options.length;i++){
|
||||
if(selectedObj.options[i].value == svalue) return;
|
||||
}
|
||||
selectedObj.options.add(new Option(svalue, svalue, false, false));
|
||||
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
||||
|
||||
function MultiOrderDelete(id){
|
||||
var showObj = jQuery("[name='show_"+id+"']").get(0);
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
|
||||
|
||||
var idx = selectedObj.selectedIndex;
|
||||
if(idx<0) return;
|
||||
for(i=0;i<defaultObj.length;i++){
|
||||
if(jQuery.inArray(selectedObj.options[idx].value, defaultObj) > -1) return;
|
||||
}
|
||||
|
||||
selectedObj.remove(idx);
|
||||
idx = idx-1;
|
||||
if(idx < 0) idx = 0;
|
||||
if(selectedObj.options.length) selectedObj.selectedIndex = idx;
|
||||
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
||||
function MultiOrderUp(id){
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
if(selectedObj.selectedIndex<0) return;
|
||||
var idx = selectedObj.selectedIndex;
|
||||
|
||||
if(idx < 1) return;
|
||||
|
||||
var s_obj = selectedObj.options[idx];
|
||||
var t_obj = selectedObj.options[idx-1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
selectedObj.selectedIndex = idx-1;
|
||||
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
||||
|
||||
function MultiOrderDown(id){
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
if(selectedObj.selectedIndex<0) return;
|
||||
var idx = selectedObj.selectedIndex;
|
||||
|
||||
if(idx == selectedObj.options.length-1) return;
|
||||
|
||||
var s_obj = selectedObj.options[idx];
|
||||
var t_obj = selectedObj.options[idx+1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
selectedObj.selectedIndex = idx+1;
|
||||
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
||||
function initMultiOrder(id){
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
var init_value = jQuery("[name='init_"+id+"']").val();
|
||||
var save_value = jQuery("[name='"+id+"']").val();
|
||||
if(save_value){
|
||||
var arr_save_value = save_value.split(',');
|
||||
for(i=0;i<arr_save_value.length;i++){
|
||||
if(arr_save_value[i].length>0){
|
||||
var opt = new Option(arr_save_value[i], arr_save_value[i]);
|
||||
selectedObj.options.add(opt);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
var arr_init_value = init_value.split(',');
|
||||
for(i=0;i<arr_init_value.length;i++){
|
||||
if(arr_init_value[i].length>0){
|
||||
var opt = new Option(arr_init_value[i], arr_init_value[i]);
|
||||
selectedObj.options.add(opt);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
/**
|
||||
* @file modules/widget/js/widget_admin.js
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief widget 모듈의 관리자용 javascript
|
||||
**/
|
||||
|
||||
/* 생성된 코드를 textarea에 출력 */
|
||||
function completeGenerateCode(ret_obj) {
|
||||
var widget_code = ret_obj["widget_code"];
|
||||
widget_code = widget_code.replace(/&/g, "&");
|
||||
widget_code = widget_code.replace(/\'/g, "'");
|
||||
var zone = xGetElementById("widget_code");
|
||||
zone.value = widget_code;
|
||||
}
|
||||
|
||||
/* 생성된 코드를 페이지 zone에 출력 */
|
||||
function completeGenerateCodeInPage(ret_obj,response_tags,params,fo_obj) {
|
||||
var widget_code = ret_obj["widget_code"];
|
||||
if(!opener || !widget_code) {
|
||||
window.close();
|
||||
return;
|
||||
}
|
||||
|
||||
opener.doAddWidgetCode(widget_code);
|
||||
window.close();
|
||||
}
|
||||
|
||||
/* 위젯 코드 생성시 스킨을 고르면 컬러셋의 정보를 표시 */
|
||||
function doDisplaySkinColorset(sel, colorset) {
|
||||
var skin = sel.options[sel.selectedIndex].value;
|
||||
if(!skin) {
|
||||
xGetElementById("colorset_area").style.display = "none";
|
||||
setFixedPopupSize();
|
||||
return;
|
||||
}
|
||||
|
||||
var params = new Array();
|
||||
params["selected_widget"] = xGetElementById("fo_widget").selected_widget.value;
|
||||
params["skin"] = skin;
|
||||
params["colorset"] = colorset;
|
||||
|
||||
var response_tags = new Array("error","message","colorset_list");
|
||||
|
||||
exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params);
|
||||
}
|
||||
|
||||
/* 서버에서 받아온 컬러셋을 표시 */
|
||||
function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) {
|
||||
var sel = jQuery("#fo_widget")[0].widget_colorset;
|
||||
var length = sel.options.length;
|
||||
var selected_colorset = params["colorset"];
|
||||
for(var i=0;i<length;i++) sel.remove(0);
|
||||
|
||||
if(!ret_obj["colorset_list"]) return;
|
||||
|
||||
var colorset_list = ret_obj["colorset_list"].split("\n");
|
||||
var selected_index = 0;
|
||||
for(var i=0;i<colorset_list.length;i++) {
|
||||
var tmp = colorset_list[i].split("|@|");
|
||||
if(selected_colorset && selected_colorset==tmp[0]) selected_index = i;
|
||||
var opt = new Option(tmp[1], tmp[0], false, false);
|
||||
sel.options.add(opt);
|
||||
}
|
||||
|
||||
sel.selectedIndex = selected_index;
|
||||
|
||||
jQuery("#colorset_area").show();
|
||||
setFixedPopupSize();
|
||||
}
|
||||
|
||||
|
||||
var selected_node = null;
|
||||
/* 페이지 모듈에서 위젯스타일 수정하려고 할 경우 */
|
||||
function getWidgetVars() {
|
||||
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
|
||||
selected_node = opener.selectedWidget;
|
||||
|
||||
if(!xGetElementById('fo_widget').widgetstyle.value) {
|
||||
xGetElementById('fo_widget').widgetstyle.value = selected_node.getAttribute('widgetstyle');
|
||||
}
|
||||
|
||||
doFillWidgetVars();
|
||||
}
|
||||
|
||||
/* 페이지 모듈에서 내용의 위젯을 더블클릭하여 수정하려고 할 경우 */
|
||||
function doFillWidgetVars() {
|
||||
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
|
||||
selected_node = opener.selectedWidget;
|
||||
|
||||
// 스킨과 컬러셋은 기본
|
||||
var skin = selected_node.getAttribute("skin");
|
||||
var colorset = selected_node.getAttribute("colorset");
|
||||
var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10);
|
||||
|
||||
var fo_widget = jQuery("#fo_widget");
|
||||
var fo_obj = xGetElementById("fo_widget");
|
||||
jQuery('#widget_skin').val(skin);
|
||||
|
||||
// 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장
|
||||
var attrs = selected_node.attributes;
|
||||
for (i=0; i< attrs.length ; i++){
|
||||
var name = attrs[i].name;
|
||||
var value = jQuery(selected_node).attr(name);
|
||||
if(value=='Array') continue;
|
||||
if(jQuery("[name="+name+"]",fo_widget).size()>0 || !value || name == 'style') continue;
|
||||
|
||||
var dummy = jQuery('<input type="hidden" name="'+name+'" >').val(value).appendTo("#fo_widget").get(0);
|
||||
}
|
||||
|
||||
// 위젯의 속성 설정
|
||||
var obj_list = new Array();
|
||||
jQuery('input,select,textarea','#fo_widget').each( function() {
|
||||
obj_list.push(this);
|
||||
});
|
||||
|
||||
for(var j=0;j<obj_list.length;j++) {
|
||||
var node = obj_list[j];
|
||||
if(node.name.indexOf('_')==0) continue;
|
||||
if(node.name == 'widgetstyle') continue;
|
||||
|
||||
var length = node.length;
|
||||
var type = node.type;
|
||||
if((typeof(type)=='undefined'||!type) && typeof(length)!='undefined' && typeof(node[0])!='undefined' && length>0) type = node[0].type;
|
||||
else length = 0;
|
||||
var name = node.name;
|
||||
|
||||
switch(type) {
|
||||
case "hidden" :
|
||||
case "text" :
|
||||
case "textarea" :
|
||||
var val = selected_node.getAttribute(name);
|
||||
if(!val) continue;
|
||||
var unescaped_val = unescape(val);
|
||||
if(!unescaped_val) node.value = val;
|
||||
else node.value = unescaped_val;
|
||||
break;
|
||||
case "checkbox" :
|
||||
if(selected_node.getAttribute(name)) {
|
||||
var val = selected_node.getAttribute(name).split(',');
|
||||
if(fo_obj[name].length) {
|
||||
for(var i=0;i<fo_obj[name].length;i++) {
|
||||
var v = fo_obj[name][i].value;
|
||||
for(var k=0;k<val.length;k++) {
|
||||
if(v == val[k]) {
|
||||
fo_obj[name][i].checked=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(fo_obj[name].value == val) fo_obj[name].checked =true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "select" :
|
||||
case "select-one" :
|
||||
var val = selected_node.getAttribute(name);
|
||||
var sel = fo_obj[name];
|
||||
if(!val) break;
|
||||
for(var i=0;i<sel.options.length;i++) {
|
||||
if(sel.options[i].value == val) sel.options[i].selected = true;
|
||||
else sel.options[i].selected = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var style = selected_node.getAttribute("style");
|
||||
if(typeof(style)=="object") style = style["cssText"];
|
||||
fo_obj.style.value = style;
|
||||
|
||||
fo_obj.widget_padding_left.value = selected_node.getAttribute("widget_padding_left");
|
||||
fo_obj.widget_padding_right.value = selected_node.getAttribute("widget_padding_right");
|
||||
fo_obj.widget_padding_bottom.value = selected_node.getAttribute("widget_padding_bottom");
|
||||
fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top");
|
||||
|
||||
|
||||
// 컬러셋 설정
|
||||
if(skin && xGetElementById("widget_colorset") && xGetElementById("widget_colorset").options.length<1 && colorset) {
|
||||
doDisplaySkinColorset(xGetElementById("widget_skin"), colorset);
|
||||
}
|
||||
|
||||
// widget sequence 설정
|
||||
fo_obj.widget_sequence.value = widget_sequence;
|
||||
}
|
||||
|
||||
function checkFixType(obj) {
|
||||
var val = obj.options[obj.selectedIndex].value;
|
||||
if(val != "px") {
|
||||
var fo_obj = xGetElementById("fo_widget");
|
||||
var width = fo_obj.widget_width.value;
|
||||
if(width>100) fo_obj.widget_width.value = 100;
|
||||
}
|
||||
}
|
||||
|
||||
// 위젯의 대상 모듈 입력기 (단일 선택)
|
||||
function insertSelectedModule(id, module_srl, mid, browser_title) {
|
||||
var obj= xGetElementById('_'+id);
|
||||
var sObj = xGetElementById(id);
|
||||
sObj.value = module_srl;
|
||||
obj.value = browser_title+' ('+mid+')';
|
||||
|
||||
}
|
||||
|
||||
// 위젯의 대상 모듈 입력기 (다중 선택)
|
||||
function insertSelectedModules(id, module_srl, mid, browser_title) {
|
||||
var sel_obj = jQuery('#_'+id)[0];
|
||||
for(var i=0;i<sel_obj.options.length;i++) if(sel_obj.options[i].value==module_srl) return;
|
||||
var opt = new Option(browser_title+' ('+mid+')', module_srl, false, false);
|
||||
sel_obj.options[sel_obj.options.length] = opt;
|
||||
if(sel_obj.options.length>8) sel_obj.size = sel_obj.options.length;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midMoveUp(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
|
||||
if(idx < 1) return;
|
||||
|
||||
var s_obj = sel_obj.options[idx];
|
||||
var t_obj = sel_obj.options[idx-1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
sel_obj.selectedIndex = idx-1;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midMoveDown(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
|
||||
if(idx == sel_obj.options.length-1) return;
|
||||
|
||||
var s_obj = sel_obj.options[idx];
|
||||
var t_obj = sel_obj.options[idx+1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
sel_obj.selectedIndex = idx+1;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function midRemove(id) {
|
||||
var sel_obj = xGetElementById('_'+id);
|
||||
if(sel_obj.selectedIndex<0) return;
|
||||
var idx = sel_obj.selectedIndex;
|
||||
sel_obj.remove(idx);
|
||||
idx = idx-1;
|
||||
if(idx < 0) idx = 0;
|
||||
if(sel_obj.options.length) sel_obj.selectedIndex = idx;
|
||||
|
||||
syncMid(id);
|
||||
}
|
||||
|
||||
function syncMid(id) {
|
||||
var sel_obj = jQuery('#_'+id)[0];
|
||||
var valueArray = [];
|
||||
for(var i=0;i<sel_obj.options.length;i++) valueArray[valueArray.length] = sel_obj.options[i].value;
|
||||
jQuery('#'+id).val( valueArray.join(',') );
|
||||
}
|
||||
|
||||
function getModuleSrlList(id) {
|
||||
var obj = jQuery('#'+id);
|
||||
if(!obj[0] || !obj.val()) return;
|
||||
|
||||
var params = [];
|
||||
params["module_srls"] = obj.val();
|
||||
params["id"] = id;
|
||||
|
||||
var response_tags = ["error","message","module_list","id"];
|
||||
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrlList, response_tags, params);
|
||||
}
|
||||
|
||||
function completeGetModuleSrlList(ret_obj, response_tags) {
|
||||
var id = ret_obj['id'];
|
||||
var sel_obj = jQuery('#_'+id);
|
||||
if(!sel_obj[0]) return;
|
||||
|
||||
var module_list = ret_obj['module_list'];
|
||||
if(!module_list) return;
|
||||
var item = module_list['item'];
|
||||
if(typeof(item.length)=='undefined' || item.length<1) item = [item];
|
||||
|
||||
for(var i=0;i<item.length;i++) {
|
||||
var module_srl = item[i].module_srl;
|
||||
var mid = item[i].mid;
|
||||
var browser_title = item[i].browser_title;
|
||||
var opt = new Option(browser_title+' ('+mid+')', module_srl);
|
||||
sel_obj[0].options.add(opt);
|
||||
}
|
||||
}
|
||||
|
||||
function getModuleSrl(id) {
|
||||
var obj = xGetElementById(id);
|
||||
if(!obj.value) return;
|
||||
var value = obj.value;
|
||||
var params = new Array();
|
||||
params["module_srls"] = obj.value;
|
||||
params["id"] = id;
|
||||
|
||||
var response_tags = new Array("error","message","module_list","id");
|
||||
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrl, response_tags, params);
|
||||
}
|
||||
|
||||
function completeGetModuleSrl(ret_obj, response_tags) {
|
||||
var id = ret_obj['id'];
|
||||
var obj = xGetElementById('_'+id);
|
||||
var sObj = xGetElementById(id);
|
||||
if(!sObj || !obj) return;
|
||||
|
||||
var module_list = ret_obj['module_list'];
|
||||
if(!module_list) return;
|
||||
var item = module_list['item'];
|
||||
if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item);
|
||||
|
||||
sObj.value = item[0].module_srl;
|
||||
obj.value = item[0].browser_title+' ('+item[0].mid+')';
|
||||
}
|
||||
|
||||
var windowLoadEventLoader = new Array();
|
||||
function doAddWindowLoadEventLoader(func) {
|
||||
windowLoadEventLoader.push(func);
|
||||
}
|
||||
function excuteWindowLoadEvent() {
|
||||
for(var i=0;i<windowLoadEventLoader.length;i++) {
|
||||
windowLoadEventLoader[i]();
|
||||
}
|
||||
}
|
||||
|
||||
jQuery(window).load(excuteWindowLoadEvent);
|
||||
|
||||
|
||||
function selectWidget(val){
|
||||
var url =current_url.setQuery('selected_widget', val);
|
||||
document.location.href = url;
|
||||
}
|
||||
|
||||
function widgetstyle_extra_image_upload(f){
|
||||
f.act.value='procWidgetStyleExtraImageUpload';
|
||||
f.submit();
|
||||
}
|
||||
|
||||
function MultiOrderSet(id){
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
|
||||
var value = [];
|
||||
for(i=0;i<selectedObj.options.length;i++){
|
||||
value.push(selectedObj.options[i].value);
|
||||
}
|
||||
jQuery("[name='"+id+"']").val(value.join(','));
|
||||
}
|
||||
|
||||
|
||||
function MultiOrderAdd(id){
|
||||
var showObj = jQuery("[name='show_"+id+"']").get(0);
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
|
||||
|
||||
if(showObj.selectedIndex<0) return;
|
||||
var idx = showObj.selectedIndex;
|
||||
var svalue = showObj.options[idx].value;
|
||||
|
||||
|
||||
for(i=0;i<selectedObj.options.length;i++){
|
||||
if(selectedObj.options[i].value == svalue) return;
|
||||
}
|
||||
selectedObj.options.add(new Option(svalue, svalue, false, false));
|
||||
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
||||
|
||||
function MultiOrderDelete(id){
|
||||
var showObj = jQuery("[name='show_"+id+"']").get(0);
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
|
||||
|
||||
var idx = selectedObj.selectedIndex;
|
||||
if(idx<0) return;
|
||||
for(i=0;i<defaultObj.length;i++){
|
||||
if(jQuery.inArray(selectedObj.options[idx].value, defaultObj) > -1) return;
|
||||
}
|
||||
|
||||
selectedObj.remove(idx);
|
||||
idx = idx-1;
|
||||
if(idx < 0) idx = 0;
|
||||
if(selectedObj.options.length) selectedObj.selectedIndex = idx;
|
||||
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
||||
function MultiOrderUp(id){
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
if(selectedObj.selectedIndex<0) return;
|
||||
var idx = selectedObj.selectedIndex;
|
||||
|
||||
if(idx < 1) return;
|
||||
|
||||
var s_obj = selectedObj.options[idx];
|
||||
var t_obj = selectedObj.options[idx-1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
selectedObj.selectedIndex = idx-1;
|
||||
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
||||
|
||||
function MultiOrderDown(id){
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
if(selectedObj.selectedIndex<0) return;
|
||||
var idx = selectedObj.selectedIndex;
|
||||
|
||||
if(idx == selectedObj.options.length-1) return;
|
||||
|
||||
var s_obj = selectedObj.options[idx];
|
||||
var t_obj = selectedObj.options[idx+1];
|
||||
var value = s_obj.value;
|
||||
var text = s_obj.text;
|
||||
s_obj.value = t_obj.value;
|
||||
s_obj.text = t_obj.text;
|
||||
t_obj.value = value;
|
||||
t_obj.text = text;
|
||||
selectedObj.selectedIndex = idx+1;
|
||||
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
||||
function initMultiOrder(id){
|
||||
var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
|
||||
var init_value = jQuery("[name='init_"+id+"']").val();
|
||||
var save_value = jQuery("[name='"+id+"']").val();
|
||||
if(save_value){
|
||||
var arr_save_value = save_value.split(',');
|
||||
for(i=0;i<arr_save_value.length;i++){
|
||||
if(arr_save_value[i].length>0){
|
||||
var opt = new Option(arr_save_value[i], arr_save_value[i]);
|
||||
selectedObj.options.add(opt);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
var arr_init_value = init_value.split(',');
|
||||
for(i=0;i<arr_init_value.length;i++){
|
||||
if(arr_init_value[i].length>0){
|
||||
var opt = new Option(arr_init_value[i], arr_init_value[i]);
|
||||
selectedObj.options.add(opt);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
MultiOrderSet(id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,56 +1,56 @@
|
|||
<?php
|
||||
/**
|
||||
* @class widgetAdminView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief widget 모듈의 admin view class
|
||||
**/
|
||||
|
||||
class widgetAdminView extends widget {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯 목록을 보여줌
|
||||
**/
|
||||
function dispWidgetAdminDownloadedList() {
|
||||
// 위젯 목록을 세팅
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
Context::set('widget_list', $widget_list);
|
||||
|
||||
$this->setTemplateFile('downloaded_widget_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 내용 직접 입력 위젯 팝업창 내용을 꾸힘
|
||||
**/
|
||||
function dispWidgetAdminAddContent() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
if(!$module_srl) return $this->stop("msg_invalid_request");
|
||||
|
||||
$document_srl = Context::get('document_srl');
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($document_srl);
|
||||
Context::set('oDocument', $oDocument);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
Context::set('module_info', $module_info);
|
||||
|
||||
// 에디터 모듈의 getEditor를 호출하여 세팅
|
||||
$oEditorModel = &getModel('editor');
|
||||
$editor = $oEditorModel->getModuleEditor('document',$module_srl, $module_srl,'module_srl','content');
|
||||
Context::set('editor', $editor);
|
||||
|
||||
$this->setLayoutFile("popup_layout");
|
||||
$this->setTemplateFile('add_content_widget');
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class widgetAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief widget 모듈의 admin view class
|
||||
**/
|
||||
|
||||
class widgetAdminView extends widget {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯 목록을 보여줌
|
||||
**/
|
||||
function dispWidgetAdminDownloadedList() {
|
||||
// 위젯 목록을 세팅
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
Context::set('widget_list', $widget_list);
|
||||
|
||||
$this->setTemplateFile('downloaded_widget_list');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 내용 직접 입력 위젯 팝업창 내용을 꾸힘
|
||||
**/
|
||||
function dispWidgetAdminAddContent() {
|
||||
$module_srl = Context::get('module_srl');
|
||||
if(!$module_srl) return $this->stop("msg_invalid_request");
|
||||
|
||||
$document_srl = Context::get('document_srl');
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($document_srl);
|
||||
Context::set('oDocument', $oDocument);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
Context::set('module_info', $module_info);
|
||||
|
||||
// 에디터 모듈의 getEditor를 호출하여 세팅
|
||||
$oEditorModel = &getModel('editor');
|
||||
$editor = $oEditorModel->getModuleEditor('document',$module_srl, $module_srl,'module_srl','content');
|
||||
Context::set('editor', $editor);
|
||||
|
||||
$this->setLayoutFile("popup_layout");
|
||||
$this->setTemplateFile('add_content_widget');
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,64 +1,64 @@
|
|||
<?php
|
||||
/**
|
||||
* @class widget
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief widget 모듈의 high class
|
||||
**/
|
||||
|
||||
class widget extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// widget 에서 사용할 cache디렉토리 생성
|
||||
FileHandler::makeDir('./files/cache/widget');
|
||||
FileHandler::makeDir('./files/cache/widget_cache');
|
||||
|
||||
// widget compile을 위한 display.after 트리거 추가
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->insertTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// widget compile을 위한 display.after 트리거 추가 (2009. 04. 14)
|
||||
if(!$oModuleModel->getTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before')) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// widget compile을 위한 display.after 트리거 추가 (2009. 04. 14)
|
||||
if(!$oModuleModel->getTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before')) {
|
||||
$oModuleController->insertTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before');
|
||||
}
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
// widget 정보를 담은 캐시 파일 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/widget");
|
||||
|
||||
// widget 생성 캐시 파일 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/widget_cache");
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class widget
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief widget 모듈의 high class
|
||||
**/
|
||||
|
||||
class widget extends ModuleObject {
|
||||
|
||||
/**
|
||||
* @brief 설치시 추가 작업이 필요할시 구현
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// widget 에서 사용할 cache디렉토리 생성
|
||||
FileHandler::makeDir('./files/cache/widget');
|
||||
FileHandler::makeDir('./files/cache/widget_cache');
|
||||
|
||||
// widget compile을 위한 display.after 트리거 추가
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->insertTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설치가 이상이 없는지 체크하는 method
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// widget compile을 위한 display.after 트리거 추가 (2009. 04. 14)
|
||||
if(!$oModuleModel->getTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before')) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 업데이트 실행
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
$oModuleModel = &getModel('module');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// widget compile을 위한 display.after 트리거 추가 (2009. 04. 14)
|
||||
if(!$oModuleModel->getTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before')) {
|
||||
$oModuleController->insertTrigger('display', 'widget', 'controller', 'triggerWidgetCompile', 'before');
|
||||
}
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 캐시 파일 재생성
|
||||
**/
|
||||
function recompileCache() {
|
||||
// widget 정보를 담은 캐시 파일 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/widget");
|
||||
|
||||
// widget 생성 캐시 파일 삭제
|
||||
FileHandler::removeFilesInDir("./files/cache/widget_cache");
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,403 +1,403 @@
|
|||
<?php
|
||||
/**
|
||||
* @class widgetModel
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @version 0.1
|
||||
* @brief widget 모듈의 Model class
|
||||
**/
|
||||
|
||||
class widgetModel extends widget {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 경로를 구함
|
||||
**/
|
||||
function getWidgetPath($widget_name) {
|
||||
$path = sprintf('./widgets/%s/', $widget_name);
|
||||
if(is_dir($path)) return $path;
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 위젯 스타일의 경로를 구함
|
||||
**/
|
||||
function getWidgetStylePath($widgetStyle_name) {
|
||||
$path = sprintf('./widgetstyles/%s/', $widgetStyle_name);
|
||||
if(is_dir($path)) return $path;
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯 스타일의 경로를 구함
|
||||
**/
|
||||
function getWidgetStyleTpl($widgetStyle_name) {
|
||||
$path = $this->getWidgetStylePath($widgetStyle_name);
|
||||
$tpl = sprintf('%swidgetstyle.html', $path);
|
||||
return $tpl;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 종류와 정보를 구함
|
||||
* 다운로드되어 있는 위젯의 종류 (생성과 다른 의미)
|
||||
**/
|
||||
function getDownloadedWidgetList() {
|
||||
// 다운받은 위젯과 설치된 위젯의 목록을 구함
|
||||
$searched_list = FileHandler::readDir('./widgets');
|
||||
$searched_count = count($searched_list);
|
||||
if(!$searched_count) return;
|
||||
sort($searched_list);
|
||||
|
||||
// 찾아진 위젯 목록을 loop돌면서 필요한 정보를 간추려 return
|
||||
for($i=0;$i<$searched_count;$i++) {
|
||||
// 위젯의 이름
|
||||
$widget = $searched_list[$i];
|
||||
|
||||
// 해당 위젯의 정보를 구함
|
||||
$widget_info = $this->getWidgetInfo($widget);
|
||||
|
||||
$list[] = $widget_info;
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 종류와 정보를 구함
|
||||
* 다운로드되어 있는 위젯의 종류 (생성과 다른 의미)
|
||||
**/
|
||||
function getDownloadedWidgetStyleList() {
|
||||
// 다운받은 위젯과 설치된 위젯의 목록을 구함
|
||||
$searched_list = FileHandler::readDir('./widgetstyles');
|
||||
$searched_count = count($searched_list);
|
||||
if(!$searched_count) return;
|
||||
sort($searched_list);
|
||||
|
||||
// 찾아진 위젯 목록을 loop돌면서 필요한 정보를 간추려 return
|
||||
for($i=0;$i<$searched_count;$i++) {
|
||||
// 위젯의 이름
|
||||
$widgetStyle = $searched_list[$i];
|
||||
|
||||
// 해당 위젯의 정보를 구함
|
||||
$widgetStyle_info = $this->getWidgetStyleInfo($widgetStyle);
|
||||
|
||||
$list[] = $widgetStyle_info;
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 모듈의 conf/info.xml 을 읽어서 정보를 구함
|
||||
* 이것 역시 캐싱을 통해서 xml parsing 시간을 줄인다..
|
||||
**/
|
||||
function getWidgetInfo($widget) {
|
||||
// 요청된 모듈의 경로를 구한다. 없으면 return
|
||||
$widget_path = $this->getWidgetPath($widget);
|
||||
if(!$widget_path) return;
|
||||
|
||||
// 현재 선택된 모듈의 스킨의 정보 xml 파일을 읽음
|
||||
$xml_file = sprintf("%sconf/info.xml", $widget_path);
|
||||
if(!file_exists($xml_file)) return;
|
||||
|
||||
// cache 파일을 비교하여 문제 없으면 include하고 $widget_info 변수를 return
|
||||
$cache_file = sprintf('./files/cache/widget/%s.%s.cache.php', $widget, Context::getLangType());
|
||||
|
||||
|
||||
if(file_exists($cache_file)&&filemtime($cache_file)>filemtime($xml_file)) {
|
||||
@include($cache_file);
|
||||
return $widget_info;
|
||||
}
|
||||
|
||||
// cache 파일이 없으면 xml parsing하고 변수화 한 후에 캐시 파일에 쓰고 변수 바로 return
|
||||
$oXmlParser = new XmlParser();
|
||||
$tmp_xml_obj = $oXmlParser->loadXmlFile($xml_file);
|
||||
$xml_obj = $tmp_xml_obj->widget;
|
||||
if(!$xml_obj) return;
|
||||
|
||||
$buff = '';
|
||||
|
||||
if($xml_obj->version && $xml_obj->attrs->version == '0.2') {
|
||||
// 위젯의 제목, 버전
|
||||
$buff .= sprintf('$widget_info->widget = "%s";', $widget);
|
||||
$buff .= sprintf('$widget_info->path = "%s";', $widget_path);
|
||||
$buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body);
|
||||
$buff .= sprintf('$widget_info->description = "%s";', $xml_obj->description->body);
|
||||
$buff .= sprintf('$widget_info->version = "%s";', $xml_obj->version->body);
|
||||
sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widget_info->date = "%s";', $date);
|
||||
$buff .= sprintf('$widget_info->homepage = "%s";', $xml_obj->link->body);
|
||||
$buff .= sprintf('$widget_info->license = "%s";', $xml_obj->license->body);
|
||||
$buff .= sprintf('$widget_info->license_link = "%s";', $xml_obj->license->attrs->link);
|
||||
$buff .= sprintf('$widget_info->widget_srl = $widget_srl;');
|
||||
$buff .= sprintf('$widget_info->widget_title = $widget_title;');
|
||||
|
||||
// 작성자 정보
|
||||
if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author;
|
||||
else $author_list = $xml_obj->author;
|
||||
|
||||
for($i=0; $i < count($author_list); $i++) {
|
||||
$buff .= sprintf('$widget_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body);
|
||||
$buff .= sprintf('$widget_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address);
|
||||
$buff .= sprintf('$widget_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link);
|
||||
}
|
||||
|
||||
// history
|
||||
if($xml_obj->history) {
|
||||
if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history;
|
||||
else $history_list = $xml_obj->history;
|
||||
|
||||
for($i=0; $i < count($history_list); $i++) {
|
||||
sscanf($history_list[$i]->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->description = "%s";', $history_list[$i]->description->body);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->version = "%s";', $history_list[$i]->attrs->version);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->date = "%s";', $date);
|
||||
|
||||
if($history_list[$i]->author) {
|
||||
(!is_array($history_list[$i]->author)) ? $obj->author_list[] = $history_list[$i]->author : $obj->author_list = $history_list[$i]->author;
|
||||
|
||||
for($j=0; $j < count($obj->author_list); $j++) {
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->name = "%s";', $obj->author_list[$j]->name->body);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->email_address = "%s";', $obj->author_list[$j]->attrs->email_address);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->homepage = "%s";', $obj->author_list[$j]->attrs->link);
|
||||
}
|
||||
}
|
||||
|
||||
if($history_list[$i]->log) {
|
||||
(!is_array($history_list[$i]->log)) ? $obj->log_list[] = $history_list[$i]->log : $obj->log_list = $history_list[$i]->log;
|
||||
|
||||
for($j=0; $j < count($obj->log_list); $j++) {
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->logs['.$j.']->text = "%s";', $obj->log_list[$j]->body);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->logs['.$j.']->link = "%s";', $obj->log_list[$j]->attrs->link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// 위젯의 제목, 버전
|
||||
$buff .= sprintf('$widget_info->widget = "%s";', $widget);
|
||||
$buff .= sprintf('$widget_info->path = "%s";', $widget_path);
|
||||
$buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body);
|
||||
$buff .= sprintf('$widget_info->description = "%s";', $xml_obj->author->description->body);
|
||||
$buff .= sprintf('$widget_info->version = "%s";', $xml_obj->attrs->version);
|
||||
sscanf($xml_obj->author->attrs->date, '%d. %d. %d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widget_info->date = "%s";', $date);
|
||||
$buff .= sprintf('$widget_info->widget_srl = $widget_srl;');
|
||||
$buff .= sprintf('$widget_info->widget_title = $widget_title;');
|
||||
|
||||
// 작성자 정보
|
||||
$buff .= sprintf('$widget_info->author[0]->name = "%s";', $xml_obj->author->name->body);
|
||||
$buff .= sprintf('$widget_info->author[0]->email_address = "%s";', $xml_obj->author->attrs->email_address);
|
||||
$buff .= sprintf('$widget_info->author[0]->homepage = "%s";', $xml_obj->author->attrs->link);
|
||||
}
|
||||
|
||||
|
||||
// 추가 변수 (템플릿에서 사용할 제작자 정의 변수)
|
||||
$extra_var_groups = $xml_obj->extra_vars->group;
|
||||
if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars;
|
||||
if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups);
|
||||
foreach($extra_var_groups as $group){
|
||||
$extra_vars = $group->var;
|
||||
if(!is_array($group->var)) $extra_vars = array($group->var);
|
||||
|
||||
if($extra_vars[0]->attrs->id || $extra_vars[0]->attrs->name) {
|
||||
$extra_var_count = count($extra_vars);
|
||||
|
||||
$buff .= sprintf('$widget_info->extra_var_count = "%s";', $extra_var_count);
|
||||
for($i=0;$i<$extra_var_count;$i++) {
|
||||
unset($var);
|
||||
unset($options);
|
||||
$var = $extra_vars[$i];
|
||||
|
||||
$id = $var->attrs->id?$var->attrs->id:$var->attrs->name;
|
||||
$name = $var->name->body?$var->name->body:$var->title->body;
|
||||
$type = $var->attrs->type?$var->attrs->type:$var->type->body;
|
||||
if($type =='filebox') $buff .= sprintf('$widget_info->extra_var->%s->filter = "%s";', $id, $var->type->attrs->filter);
|
||||
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->group = "%s";', $id, $group->title->body);
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->name = "%s";', $id, $name);
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->type = "%s";', $id, $type);
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->value = $vars->%s;', $id, $id);
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->description = "%s";', $id, str_replace('"','\"',$var->description->body));
|
||||
|
||||
$options = $var->options;
|
||||
if(!$options) continue;
|
||||
|
||||
if(!is_array($options)) $options = array($options);
|
||||
$options_count = count($options);
|
||||
for($j=0;$j<$options_count;$j++) {
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->options["%s"] = "%s";', $id, $options[$j]->value->body, $options[$j]->name->body);
|
||||
|
||||
if($options[$j]->attrs->default && $options[$j]->attrs->default=='true'){
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->default_options["%s"] = true;', $id, $options[$j]->value->body);
|
||||
}
|
||||
|
||||
if($options[$j]->attrs->init && $options[$j]->attrs->init=='true'){
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->init_options["%s"] = true;', $id, $options[$j]->value->body);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$buff = '<?php if(!defined("__ZBXE__")) exit(); '.$buff.' ?>';
|
||||
FileHandler::writeFile($cache_file, $buff);
|
||||
|
||||
if(file_exists($cache_file)) @include($cache_file);
|
||||
return $widget_info;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief 모듈의 conf/info.xml 을 읽어서 정보를 구함
|
||||
* 이것 역시 캐싱을 통해서 xml parsing 시간을 줄인다..
|
||||
**/
|
||||
function getWidgetStyleInfo($widgetStyle) {
|
||||
|
||||
$widgetStyle_path = $this->getWidgetStylePath($widgetStyle);
|
||||
if(!$widgetStyle_path) return;
|
||||
$xml_file = sprintf("%sskin.xml", $widgetStyle_path);
|
||||
if(!file_exists($xml_file)) return;
|
||||
|
||||
// cache 파일을 비교하여 문제 없으면 include하고 $widgetStyle_info 변수를 return
|
||||
$cache_file = sprintf('./files/cache/widgetstyles/%s.%s.cache.php', $widgetStyle, Context::getLangType());
|
||||
|
||||
if(file_exists($cache_file)&&filemtime($cache_file)>filemtime($xml_file)) {
|
||||
@include($cache_file);
|
||||
return $widgetStyle_info;
|
||||
}
|
||||
|
||||
// cache 파일이 없으면 xml parsing하고 변수화 한 후에 캐시 파일에 쓰고 변수 바로 return
|
||||
$oXmlParser = new XmlParser();
|
||||
$tmp_xml_obj = $oXmlParser->loadXmlFile($xml_file);
|
||||
$xml_obj = $tmp_xml_obj->widgetstyle;
|
||||
if(!$xml_obj) return;
|
||||
|
||||
$buff = '';
|
||||
|
||||
// 위젯의 제목, 버전
|
||||
$buff .= sprintf('$widgetStyle_info->widgetStyle = "%s";', $widgetStyle);
|
||||
$buff .= sprintf('$widgetStyle_info->path = "%s";', $widgetStyle_path);
|
||||
$buff .= sprintf('$widgetStyle_info->title = "%s";', $xml_obj->title->body);
|
||||
$buff .= sprintf('$widgetStyle_info->description = "%s";', $xml_obj->description->body);
|
||||
$buff .= sprintf('$widgetStyle_info->version = "%s";', $xml_obj->version->body);
|
||||
sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widgetStyle_info->date = "%s";', $date);
|
||||
$buff .= sprintf('$widgetStyle_info->homepage = "%s";', $xml_obj->link->body);
|
||||
$buff .= sprintf('$widgetStyle_info->license = "%s";', $xml_obj->license->body);
|
||||
$buff .= sprintf('$widgetStyle_info->license_link = "%s";', $xml_obj->license->attrs->link);
|
||||
|
||||
// preview
|
||||
if(!$xml_obj->preview->body) $xml_obj->preview->body = 'preview.jpg';
|
||||
$preview_file = sprintf("%s%s", $widgetStyle_path,$xml_obj->preview->body);
|
||||
if(file_exists($preview_file)) $buff .= sprintf('$widgetStyle_info->preview = "%s";', $preview_file);
|
||||
|
||||
// 작성자 정보
|
||||
if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author;
|
||||
else $author_list = $xml_obj->author;
|
||||
|
||||
for($i=0; $i < count($author_list); $i++) {
|
||||
$buff .= sprintf('$widgetStyle_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body);
|
||||
$buff .= sprintf('$widgetStyle_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address);
|
||||
$buff .= sprintf('$widgetStyle_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link);
|
||||
}
|
||||
|
||||
// history
|
||||
if($xml_obj->history) {
|
||||
if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history;
|
||||
else $history_list = $xml_obj->history;
|
||||
|
||||
for($i=0; $i < count($history_list); $i++) {
|
||||
sscanf($history_list[$i]->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->description = "%s";', $history_list[$i]->description->body);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->version = "%s";', $history_list[$i]->attrs->version);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->date = "%s";', $date);
|
||||
|
||||
if($history_list[$i]->author) {
|
||||
(!is_array($history_list[$i]->author)) ? $obj->author_list[] = $history_list[$i]->author : $obj->author_list = $history_list[$i]->author;
|
||||
|
||||
for($j=0; $j < count($obj->author_list); $j++) {
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->author['.$j.']->name = "%s";', $obj->author_list[$j]->name->body);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->author['.$j.']->email_address = "%s";', $obj->author_list[$j]->attrs->email_address);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->author['.$j.']->homepage = "%s";', $obj->author_list[$j]->attrs->link);
|
||||
}
|
||||
}
|
||||
|
||||
if($history_list[$i]->log) {
|
||||
(!is_array($history_list[$i]->log)) ? $obj->log_list[] = $history_list[$i]->log : $obj->log_list = $history_list[$i]->log;
|
||||
|
||||
for($j=0; $j < count($obj->log_list); $j++) {
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->logs['.$j.']->text = "%s";', $obj->log_list[$j]->body);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->logs['.$j.']->link = "%s";', $obj->log_list[$j]->attrs->link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 추가 변수 (템플릿에서 사용할 제작자 정의 변수)
|
||||
$extra_var_groups = $xml_obj->extra_vars->group;
|
||||
if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars;
|
||||
if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups);
|
||||
foreach($extra_var_groups as $group){
|
||||
$extra_vars = $group->var;
|
||||
if(!is_array($group->var)) $extra_vars = array($group->var);
|
||||
|
||||
if($extra_vars[0]->attrs->id || $extra_vars[0]->attrs->name) {
|
||||
$extra_var_count = count($extra_vars);
|
||||
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var_count = "%s";', $extra_var_count);
|
||||
for($i=0;$i<$extra_var_count;$i++) {
|
||||
unset($var);
|
||||
unset($options);
|
||||
$var = $extra_vars[$i];
|
||||
|
||||
$id = $var->attrs->id?$var->attrs->id:$var->attrs->name;
|
||||
$name = $var->name->body?$var->name->body:$var->title->body;
|
||||
$type = $var->attrs->type?$var->attrs->type:$var->type->body;
|
||||
|
||||
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->group = "%s";', $id, $group->title->body);
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->name = "%s";', $id, $name);
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->type = "%s";', $id, $type);
|
||||
if($type =='filebox') $buff .= sprintf('$widgetStyle_info->extra_var->%s->filter = "%s";', $id, $var->attrs->filter);
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->value = $vars->%s;', $id, $id);
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->description = "%s";', $id, str_replace('"','\"',$var->description->body));
|
||||
|
||||
$options = $var->options;
|
||||
if(!$options) continue;
|
||||
|
||||
if(!is_array($options)) $options = array($options);
|
||||
$options_count = count($options);
|
||||
for($j=0;$j<$options_count;$j++) {
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->options["%s"] = "%s";', $id, $options[$j]->value->body, $options[$j]->name->body);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$buff = '<?php if(!defined("__ZBXE__")) exit(); '.$buff.' ?>';
|
||||
FileHandler::writeFile($cache_file, $buff);
|
||||
|
||||
if(file_exists($cache_file)) @include($cache_file);
|
||||
return $widgetStyle_info;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class widgetModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @version 0.1
|
||||
* @brief widget 모듈의 Model class
|
||||
**/
|
||||
|
||||
class widgetModel extends widget {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 경로를 구함
|
||||
**/
|
||||
function getWidgetPath($widget_name) {
|
||||
$path = sprintf('./widgets/%s/', $widget_name);
|
||||
if(is_dir($path)) return $path;
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 위젯 스타일의 경로를 구함
|
||||
**/
|
||||
function getWidgetStylePath($widgetStyle_name) {
|
||||
$path = sprintf('./widgetstyles/%s/', $widgetStyle_name);
|
||||
if(is_dir($path)) return $path;
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯 스타일의 경로를 구함
|
||||
**/
|
||||
function getWidgetStyleTpl($widgetStyle_name) {
|
||||
$path = $this->getWidgetStylePath($widgetStyle_name);
|
||||
$tpl = sprintf('%swidgetstyle.html', $path);
|
||||
return $tpl;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 종류와 정보를 구함
|
||||
* 다운로드되어 있는 위젯의 종류 (생성과 다른 의미)
|
||||
**/
|
||||
function getDownloadedWidgetList() {
|
||||
// 다운받은 위젯과 설치된 위젯의 목록을 구함
|
||||
$searched_list = FileHandler::readDir('./widgets');
|
||||
$searched_count = count($searched_list);
|
||||
if(!$searched_count) return;
|
||||
sort($searched_list);
|
||||
|
||||
// 찾아진 위젯 목록을 loop돌면서 필요한 정보를 간추려 return
|
||||
for($i=0;$i<$searched_count;$i++) {
|
||||
// 위젯의 이름
|
||||
$widget = $searched_list[$i];
|
||||
|
||||
// 해당 위젯의 정보를 구함
|
||||
$widget_info = $this->getWidgetInfo($widget);
|
||||
|
||||
$list[] = $widget_info;
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 종류와 정보를 구함
|
||||
* 다운로드되어 있는 위젯의 종류 (생성과 다른 의미)
|
||||
**/
|
||||
function getDownloadedWidgetStyleList() {
|
||||
// 다운받은 위젯과 설치된 위젯의 목록을 구함
|
||||
$searched_list = FileHandler::readDir('./widgetstyles');
|
||||
$searched_count = count($searched_list);
|
||||
if(!$searched_count) return;
|
||||
sort($searched_list);
|
||||
|
||||
// 찾아진 위젯 목록을 loop돌면서 필요한 정보를 간추려 return
|
||||
for($i=0;$i<$searched_count;$i++) {
|
||||
// 위젯의 이름
|
||||
$widgetStyle = $searched_list[$i];
|
||||
|
||||
// 해당 위젯의 정보를 구함
|
||||
$widgetStyle_info = $this->getWidgetStyleInfo($widgetStyle);
|
||||
|
||||
$list[] = $widgetStyle_info;
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 모듈의 conf/info.xml 을 읽어서 정보를 구함
|
||||
* 이것 역시 캐싱을 통해서 xml parsing 시간을 줄인다..
|
||||
**/
|
||||
function getWidgetInfo($widget) {
|
||||
// 요청된 모듈의 경로를 구한다. 없으면 return
|
||||
$widget_path = $this->getWidgetPath($widget);
|
||||
if(!$widget_path) return;
|
||||
|
||||
// 현재 선택된 모듈의 스킨의 정보 xml 파일을 읽음
|
||||
$xml_file = sprintf("%sconf/info.xml", $widget_path);
|
||||
if(!file_exists($xml_file)) return;
|
||||
|
||||
// cache 파일을 비교하여 문제 없으면 include하고 $widget_info 변수를 return
|
||||
$cache_file = sprintf('./files/cache/widget/%s.%s.cache.php', $widget, Context::getLangType());
|
||||
|
||||
|
||||
if(file_exists($cache_file)&&filemtime($cache_file)>filemtime($xml_file)) {
|
||||
@include($cache_file);
|
||||
return $widget_info;
|
||||
}
|
||||
|
||||
// cache 파일이 없으면 xml parsing하고 변수화 한 후에 캐시 파일에 쓰고 변수 바로 return
|
||||
$oXmlParser = new XmlParser();
|
||||
$tmp_xml_obj = $oXmlParser->loadXmlFile($xml_file);
|
||||
$xml_obj = $tmp_xml_obj->widget;
|
||||
if(!$xml_obj) return;
|
||||
|
||||
$buff = '';
|
||||
|
||||
if($xml_obj->version && $xml_obj->attrs->version == '0.2') {
|
||||
// 위젯의 제목, 버전
|
||||
$buff .= sprintf('$widget_info->widget = "%s";', $widget);
|
||||
$buff .= sprintf('$widget_info->path = "%s";', $widget_path);
|
||||
$buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body);
|
||||
$buff .= sprintf('$widget_info->description = "%s";', $xml_obj->description->body);
|
||||
$buff .= sprintf('$widget_info->version = "%s";', $xml_obj->version->body);
|
||||
sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widget_info->date = "%s";', $date);
|
||||
$buff .= sprintf('$widget_info->homepage = "%s";', $xml_obj->link->body);
|
||||
$buff .= sprintf('$widget_info->license = "%s";', $xml_obj->license->body);
|
||||
$buff .= sprintf('$widget_info->license_link = "%s";', $xml_obj->license->attrs->link);
|
||||
$buff .= sprintf('$widget_info->widget_srl = $widget_srl;');
|
||||
$buff .= sprintf('$widget_info->widget_title = $widget_title;');
|
||||
|
||||
// 작성자 정보
|
||||
if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author;
|
||||
else $author_list = $xml_obj->author;
|
||||
|
||||
for($i=0; $i < count($author_list); $i++) {
|
||||
$buff .= sprintf('$widget_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body);
|
||||
$buff .= sprintf('$widget_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address);
|
||||
$buff .= sprintf('$widget_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link);
|
||||
}
|
||||
|
||||
// history
|
||||
if($xml_obj->history) {
|
||||
if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history;
|
||||
else $history_list = $xml_obj->history;
|
||||
|
||||
for($i=0; $i < count($history_list); $i++) {
|
||||
sscanf($history_list[$i]->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->description = "%s";', $history_list[$i]->description->body);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->version = "%s";', $history_list[$i]->attrs->version);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->date = "%s";', $date);
|
||||
|
||||
if($history_list[$i]->author) {
|
||||
(!is_array($history_list[$i]->author)) ? $obj->author_list[] = $history_list[$i]->author : $obj->author_list = $history_list[$i]->author;
|
||||
|
||||
for($j=0; $j < count($obj->author_list); $j++) {
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->name = "%s";', $obj->author_list[$j]->name->body);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->email_address = "%s";', $obj->author_list[$j]->attrs->email_address);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->homepage = "%s";', $obj->author_list[$j]->attrs->link);
|
||||
}
|
||||
}
|
||||
|
||||
if($history_list[$i]->log) {
|
||||
(!is_array($history_list[$i]->log)) ? $obj->log_list[] = $history_list[$i]->log : $obj->log_list = $history_list[$i]->log;
|
||||
|
||||
for($j=0; $j < count($obj->log_list); $j++) {
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->logs['.$j.']->text = "%s";', $obj->log_list[$j]->body);
|
||||
$buff .= sprintf('$widget_info->history['.$i.']->logs['.$j.']->link = "%s";', $obj->log_list[$j]->attrs->link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// 위젯의 제목, 버전
|
||||
$buff .= sprintf('$widget_info->widget = "%s";', $widget);
|
||||
$buff .= sprintf('$widget_info->path = "%s";', $widget_path);
|
||||
$buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body);
|
||||
$buff .= sprintf('$widget_info->description = "%s";', $xml_obj->author->description->body);
|
||||
$buff .= sprintf('$widget_info->version = "%s";', $xml_obj->attrs->version);
|
||||
sscanf($xml_obj->author->attrs->date, '%d. %d. %d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widget_info->date = "%s";', $date);
|
||||
$buff .= sprintf('$widget_info->widget_srl = $widget_srl;');
|
||||
$buff .= sprintf('$widget_info->widget_title = $widget_title;');
|
||||
|
||||
// 작성자 정보
|
||||
$buff .= sprintf('$widget_info->author[0]->name = "%s";', $xml_obj->author->name->body);
|
||||
$buff .= sprintf('$widget_info->author[0]->email_address = "%s";', $xml_obj->author->attrs->email_address);
|
||||
$buff .= sprintf('$widget_info->author[0]->homepage = "%s";', $xml_obj->author->attrs->link);
|
||||
}
|
||||
|
||||
|
||||
// 추가 변수 (템플릿에서 사용할 제작자 정의 변수)
|
||||
$extra_var_groups = $xml_obj->extra_vars->group;
|
||||
if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars;
|
||||
if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups);
|
||||
foreach($extra_var_groups as $group){
|
||||
$extra_vars = $group->var;
|
||||
if(!is_array($group->var)) $extra_vars = array($group->var);
|
||||
|
||||
if($extra_vars[0]->attrs->id || $extra_vars[0]->attrs->name) {
|
||||
$extra_var_count = count($extra_vars);
|
||||
|
||||
$buff .= sprintf('$widget_info->extra_var_count = "%s";', $extra_var_count);
|
||||
for($i=0;$i<$extra_var_count;$i++) {
|
||||
unset($var);
|
||||
unset($options);
|
||||
$var = $extra_vars[$i];
|
||||
|
||||
$id = $var->attrs->id?$var->attrs->id:$var->attrs->name;
|
||||
$name = $var->name->body?$var->name->body:$var->title->body;
|
||||
$type = $var->attrs->type?$var->attrs->type:$var->type->body;
|
||||
if($type =='filebox') $buff .= sprintf('$widget_info->extra_var->%s->filter = "%s";', $id, $var->type->attrs->filter);
|
||||
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->group = "%s";', $id, $group->title->body);
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->name = "%s";', $id, $name);
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->type = "%s";', $id, $type);
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->value = $vars->%s;', $id, $id);
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->description = "%s";', $id, str_replace('"','\"',$var->description->body));
|
||||
|
||||
$options = $var->options;
|
||||
if(!$options) continue;
|
||||
|
||||
if(!is_array($options)) $options = array($options);
|
||||
$options_count = count($options);
|
||||
for($j=0;$j<$options_count;$j++) {
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->options["%s"] = "%s";', $id, $options[$j]->value->body, $options[$j]->name->body);
|
||||
|
||||
if($options[$j]->attrs->default && $options[$j]->attrs->default=='true'){
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->default_options["%s"] = true;', $id, $options[$j]->value->body);
|
||||
}
|
||||
|
||||
if($options[$j]->attrs->init && $options[$j]->attrs->init=='true'){
|
||||
$buff .= sprintf('$widget_info->extra_var->%s->init_options["%s"] = true;', $id, $options[$j]->value->body);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$buff = '<?php if(!defined("__ZBXE__")) exit(); '.$buff.' ?>';
|
||||
FileHandler::writeFile($cache_file, $buff);
|
||||
|
||||
if(file_exists($cache_file)) @include($cache_file);
|
||||
return $widget_info;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief 모듈의 conf/info.xml 을 읽어서 정보를 구함
|
||||
* 이것 역시 캐싱을 통해서 xml parsing 시간을 줄인다..
|
||||
**/
|
||||
function getWidgetStyleInfo($widgetStyle) {
|
||||
|
||||
$widgetStyle_path = $this->getWidgetStylePath($widgetStyle);
|
||||
if(!$widgetStyle_path) return;
|
||||
$xml_file = sprintf("%sskin.xml", $widgetStyle_path);
|
||||
if(!file_exists($xml_file)) return;
|
||||
|
||||
// cache 파일을 비교하여 문제 없으면 include하고 $widgetStyle_info 변수를 return
|
||||
$cache_file = sprintf('./files/cache/widgetstyles/%s.%s.cache.php', $widgetStyle, Context::getLangType());
|
||||
|
||||
if(file_exists($cache_file)&&filemtime($cache_file)>filemtime($xml_file)) {
|
||||
@include($cache_file);
|
||||
return $widgetStyle_info;
|
||||
}
|
||||
|
||||
// cache 파일이 없으면 xml parsing하고 변수화 한 후에 캐시 파일에 쓰고 변수 바로 return
|
||||
$oXmlParser = new XmlParser();
|
||||
$tmp_xml_obj = $oXmlParser->loadXmlFile($xml_file);
|
||||
$xml_obj = $tmp_xml_obj->widgetstyle;
|
||||
if(!$xml_obj) return;
|
||||
|
||||
$buff = '';
|
||||
|
||||
// 위젯의 제목, 버전
|
||||
$buff .= sprintf('$widgetStyle_info->widgetStyle = "%s";', $widgetStyle);
|
||||
$buff .= sprintf('$widgetStyle_info->path = "%s";', $widgetStyle_path);
|
||||
$buff .= sprintf('$widgetStyle_info->title = "%s";', $xml_obj->title->body);
|
||||
$buff .= sprintf('$widgetStyle_info->description = "%s";', $xml_obj->description->body);
|
||||
$buff .= sprintf('$widgetStyle_info->version = "%s";', $xml_obj->version->body);
|
||||
sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widgetStyle_info->date = "%s";', $date);
|
||||
$buff .= sprintf('$widgetStyle_info->homepage = "%s";', $xml_obj->link->body);
|
||||
$buff .= sprintf('$widgetStyle_info->license = "%s";', $xml_obj->license->body);
|
||||
$buff .= sprintf('$widgetStyle_info->license_link = "%s";', $xml_obj->license->attrs->link);
|
||||
|
||||
// preview
|
||||
if(!$xml_obj->preview->body) $xml_obj->preview->body = 'preview.jpg';
|
||||
$preview_file = sprintf("%s%s", $widgetStyle_path,$xml_obj->preview->body);
|
||||
if(file_exists($preview_file)) $buff .= sprintf('$widgetStyle_info->preview = "%s";', $preview_file);
|
||||
|
||||
// 작성자 정보
|
||||
if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author;
|
||||
else $author_list = $xml_obj->author;
|
||||
|
||||
for($i=0; $i < count($author_list); $i++) {
|
||||
$buff .= sprintf('$widgetStyle_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body);
|
||||
$buff .= sprintf('$widgetStyle_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address);
|
||||
$buff .= sprintf('$widgetStyle_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link);
|
||||
}
|
||||
|
||||
// history
|
||||
if($xml_obj->history) {
|
||||
if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history;
|
||||
else $history_list = $xml_obj->history;
|
||||
|
||||
for($i=0; $i < count($history_list); $i++) {
|
||||
sscanf($history_list[$i]->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->description = "%s";', $history_list[$i]->description->body);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->version = "%s";', $history_list[$i]->attrs->version);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->date = "%s";', $date);
|
||||
|
||||
if($history_list[$i]->author) {
|
||||
(!is_array($history_list[$i]->author)) ? $obj->author_list[] = $history_list[$i]->author : $obj->author_list = $history_list[$i]->author;
|
||||
|
||||
for($j=0; $j < count($obj->author_list); $j++) {
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->author['.$j.']->name = "%s";', $obj->author_list[$j]->name->body);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->author['.$j.']->email_address = "%s";', $obj->author_list[$j]->attrs->email_address);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->author['.$j.']->homepage = "%s";', $obj->author_list[$j]->attrs->link);
|
||||
}
|
||||
}
|
||||
|
||||
if($history_list[$i]->log) {
|
||||
(!is_array($history_list[$i]->log)) ? $obj->log_list[] = $history_list[$i]->log : $obj->log_list = $history_list[$i]->log;
|
||||
|
||||
for($j=0; $j < count($obj->log_list); $j++) {
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->logs['.$j.']->text = "%s";', $obj->log_list[$j]->body);
|
||||
$buff .= sprintf('$widgetStyle_info->history['.$i.']->logs['.$j.']->link = "%s";', $obj->log_list[$j]->attrs->link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 추가 변수 (템플릿에서 사용할 제작자 정의 변수)
|
||||
$extra_var_groups = $xml_obj->extra_vars->group;
|
||||
if(!$extra_var_groups) $extra_var_groups = $xml_obj->extra_vars;
|
||||
if(!is_array($extra_var_groups)) $extra_var_groups = array($extra_var_groups);
|
||||
foreach($extra_var_groups as $group){
|
||||
$extra_vars = $group->var;
|
||||
if(!is_array($group->var)) $extra_vars = array($group->var);
|
||||
|
||||
if($extra_vars[0]->attrs->id || $extra_vars[0]->attrs->name) {
|
||||
$extra_var_count = count($extra_vars);
|
||||
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var_count = "%s";', $extra_var_count);
|
||||
for($i=0;$i<$extra_var_count;$i++) {
|
||||
unset($var);
|
||||
unset($options);
|
||||
$var = $extra_vars[$i];
|
||||
|
||||
$id = $var->attrs->id?$var->attrs->id:$var->attrs->name;
|
||||
$name = $var->name->body?$var->name->body:$var->title->body;
|
||||
$type = $var->attrs->type?$var->attrs->type:$var->type->body;
|
||||
|
||||
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->group = "%s";', $id, $group->title->body);
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->name = "%s";', $id, $name);
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->type = "%s";', $id, $type);
|
||||
if($type =='filebox') $buff .= sprintf('$widgetStyle_info->extra_var->%s->filter = "%s";', $id, $var->attrs->filter);
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->value = $vars->%s;', $id, $id);
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->description = "%s";', $id, str_replace('"','\"',$var->description->body));
|
||||
|
||||
$options = $var->options;
|
||||
if(!$options) continue;
|
||||
|
||||
if(!is_array($options)) $options = array($options);
|
||||
$options_count = count($options);
|
||||
for($j=0;$j<$options_count;$j++) {
|
||||
$buff .= sprintf('$widgetStyle_info->extra_var->%s->options["%s"] = "%s";', $id, $options[$j]->value->body, $options[$j]->name->body);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$buff = '<?php if(!defined("__ZBXE__")) exit(); '.$buff.' ?>';
|
||||
FileHandler::writeFile($cache_file, $buff);
|
||||
|
||||
if(file_exists($cache_file)) @include($cache_file);
|
||||
return $widgetStyle_info;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -1,153 +1,153 @@
|
|||
<?php
|
||||
/**
|
||||
* @class widgetView
|
||||
* @author zero (zero@nzeo.com)
|
||||
* @brief widget 모듈의 View class
|
||||
**/
|
||||
|
||||
class widgetView extends widget {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 상세 정보(conf/info.xml)를 팝업 출력
|
||||
**/
|
||||
function dispWidgetInfo() {
|
||||
// 위젯 스킨명이 있을 경우 위젯 스킨 상세 정보 함수로 출력
|
||||
if(Context::get('skin')) return $this->dispWidgetSkinInfo();
|
||||
|
||||
// 선택된 위젯 정보를 구함
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_info = $oWidgetModel->getWidgetInfo(Context::get('selected_widget'));
|
||||
Context::set('widget_info', $widget_info);
|
||||
|
||||
// 위젯을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('widget_detail_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯 스킨의 상세 정보(skin.xml)를 팝업 출력
|
||||
**/
|
||||
function dispWidgetSkinInfo() {
|
||||
$widget = Context::get('selected_widget');
|
||||
$skin = Context::get('skin');
|
||||
|
||||
$path = sprintf('./widgets/%s/', $widget);
|
||||
|
||||
// 선택된 위젯 정보를 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($path, $skin);
|
||||
|
||||
Context::set('skin_info',$skin_info);
|
||||
|
||||
// 위젯을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('skin_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 코드 생성기
|
||||
**/
|
||||
function dispWidgetGenerateCode() {
|
||||
// 선택된 위젯 정보를 구함
|
||||
$oWidgetModel = &getModel('widget');
|
||||
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
$selected_widget = Context::get('selected_widget');
|
||||
if(!$selected_widget) $selected_widget = $widget_list[0]->widget;
|
||||
|
||||
$widget_info = $oWidgetModel->getWidgetInfo($selected_widget);
|
||||
Context::set('widget_info', $widget_info);
|
||||
Context::set('widget_list', $widget_list);
|
||||
Context::set('selected_widget', $selected_widget);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 모듈 카테고리 목록을 구함
|
||||
$module_categories = $oModuleModel->getModuleCategories();
|
||||
|
||||
// mid 목록을 가져옴
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = $site_module_info->site_srl;
|
||||
$mid_list = $oModuleModel->getMidList($args);
|
||||
|
||||
// 그룹 목록을 가져옴
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups($site_module_info->site_srl);
|
||||
Context::set('group_list', $group_list);
|
||||
|
||||
// module_category와 module의 조합
|
||||
if($module_categories) {
|
||||
foreach($mid_list as $module_srl => $module) {
|
||||
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
|
||||
}
|
||||
} else {
|
||||
$module_categories[0]->list = $mid_list;
|
||||
}
|
||||
|
||||
Context::set('mid_list',$module_categories);
|
||||
|
||||
// 메뉴 목록을 구함
|
||||
$output = executeQueryArray('menu.getMenus');
|
||||
Context::set('menu_list',$output->data);
|
||||
|
||||
|
||||
// 스킨의 정보를 구함
|
||||
$skin_list = $oModuleModel->getSkins($widget_info->path);
|
||||
Context::set('skin_list', $skin_list);
|
||||
|
||||
// 위젯을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('widget_generate_code');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 페이지 관리에서 사용될 코드 생성 팝업
|
||||
**/
|
||||
function dispWidgetGenerateCodeInPage() {
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
Context::set('widget_list',$widget_list);
|
||||
|
||||
// 선택된 위젯이 없을경우 첫 위젯으로
|
||||
if(!Context::get('selected_widget')) Context::set('selected_widget',$widget_list[0]->widget);
|
||||
|
||||
$this->dispWidgetGenerateCode();
|
||||
$this->setTemplateFile('widget_generate_code_in_page');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 페이지 관리에서 사용될 위젯 스타일 코드 생성 팝업
|
||||
**/
|
||||
function dispWidgetStyleGenerateCodeInPage() {
|
||||
|
||||
// 위젯 스타일 목록
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widgetStyle_list = $oWidgetModel->getDownloadedWidgetStyleList();
|
||||
Context::set('widgetStyle_list',$widgetStyle_list);
|
||||
|
||||
// 선택된 위젯 스타일 목록
|
||||
$widgetstyle = Context::get('widgetstyle');
|
||||
$widgetstyle_info = $oWidgetModel->getWidgetStyleInfo($widgetstyle);
|
||||
if($widgetstyle && $widgetstyle_info){
|
||||
Context::set('widgetstyle_info',$widgetstyle_info);
|
||||
}
|
||||
|
||||
$this->dispWidgetGenerateCode();
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('widget_style_generate_code_in_page');
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/**
|
||||
* @class widgetView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief widget 모듈의 View class
|
||||
**/
|
||||
|
||||
class widgetView extends widget {
|
||||
|
||||
/**
|
||||
* @brief 초기화
|
||||
**/
|
||||
function init() {
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 상세 정보(conf/info.xml)를 팝업 출력
|
||||
**/
|
||||
function dispWidgetInfo() {
|
||||
// 위젯 스킨명이 있을 경우 위젯 스킨 상세 정보 함수로 출력
|
||||
if(Context::get('skin')) return $this->dispWidgetSkinInfo();
|
||||
|
||||
// 선택된 위젯 정보를 구함
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_info = $oWidgetModel->getWidgetInfo(Context::get('selected_widget'));
|
||||
Context::set('widget_info', $widget_info);
|
||||
|
||||
// 위젯을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('widget_detail_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯 스킨의 상세 정보(skin.xml)를 팝업 출력
|
||||
**/
|
||||
function dispWidgetSkinInfo() {
|
||||
$widget = Context::get('selected_widget');
|
||||
$skin = Context::get('skin');
|
||||
|
||||
$path = sprintf('./widgets/%s/', $widget);
|
||||
|
||||
// 선택된 위젯 정보를 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($path, $skin);
|
||||
|
||||
Context::set('skin_info',$skin_info);
|
||||
|
||||
// 위젯을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('skin_info');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 위젯의 코드 생성기
|
||||
**/
|
||||
function dispWidgetGenerateCode() {
|
||||
// 선택된 위젯 정보를 구함
|
||||
$oWidgetModel = &getModel('widget');
|
||||
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
$selected_widget = Context::get('selected_widget');
|
||||
if(!$selected_widget) $selected_widget = $widget_list[0]->widget;
|
||||
|
||||
$widget_info = $oWidgetModel->getWidgetInfo($selected_widget);
|
||||
Context::set('widget_info', $widget_info);
|
||||
Context::set('widget_list', $widget_list);
|
||||
Context::set('selected_widget', $selected_widget);
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 모듈 카테고리 목록을 구함
|
||||
$module_categories = $oModuleModel->getModuleCategories();
|
||||
|
||||
// mid 목록을 가져옴
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args->site_srl = $site_module_info->site_srl;
|
||||
$mid_list = $oModuleModel->getMidList($args);
|
||||
|
||||
// 그룹 목록을 가져옴
|
||||
$oMemberModel = &getModel('member');
|
||||
$group_list = $oMemberModel->getGroups($site_module_info->site_srl);
|
||||
Context::set('group_list', $group_list);
|
||||
|
||||
// module_category와 module의 조합
|
||||
if($module_categories) {
|
||||
foreach($mid_list as $module_srl => $module) {
|
||||
$module_categories[$module->module_category_srl]->list[$module_srl] = $module;
|
||||
}
|
||||
} else {
|
||||
$module_categories[0]->list = $mid_list;
|
||||
}
|
||||
|
||||
Context::set('mid_list',$module_categories);
|
||||
|
||||
// 메뉴 목록을 구함
|
||||
$output = executeQueryArray('menu.getMenus');
|
||||
Context::set('menu_list',$output->data);
|
||||
|
||||
|
||||
// 스킨의 정보를 구함
|
||||
$skin_list = $oModuleModel->getSkins($widget_info->path);
|
||||
Context::set('skin_list', $skin_list);
|
||||
|
||||
// 위젯을 팝업으로 지정
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
// 템플릿 파일 지정
|
||||
$this->setTemplateFile('widget_generate_code');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 페이지 관리에서 사용될 코드 생성 팝업
|
||||
**/
|
||||
function dispWidgetGenerateCodeInPage() {
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widget_list = $oWidgetModel->getDownloadedWidgetList();
|
||||
Context::set('widget_list',$widget_list);
|
||||
|
||||
// 선택된 위젯이 없을경우 첫 위젯으로
|
||||
if(!Context::get('selected_widget')) Context::set('selected_widget',$widget_list[0]->widget);
|
||||
|
||||
$this->dispWidgetGenerateCode();
|
||||
$this->setTemplateFile('widget_generate_code_in_page');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 페이지 관리에서 사용될 위젯 스타일 코드 생성 팝업
|
||||
**/
|
||||
function dispWidgetStyleGenerateCodeInPage() {
|
||||
|
||||
// 위젯 스타일 목록
|
||||
$oWidgetModel = &getModel('widget');
|
||||
$widgetStyle_list = $oWidgetModel->getDownloadedWidgetStyleList();
|
||||
Context::set('widgetStyle_list',$widgetStyle_list);
|
||||
|
||||
// 선택된 위젯 스타일 목록
|
||||
$widgetstyle = Context::get('widgetstyle');
|
||||
$widgetstyle_info = $oWidgetModel->getWidgetStyleInfo($widgetstyle);
|
||||
if($widgetstyle && $widgetstyle_info){
|
||||
Context::set('widgetstyle_info',$widgetstyle_info);
|
||||
}
|
||||
|
||||
$this->dispWidgetGenerateCode();
|
||||
$this->setLayoutFile('popup_layout');
|
||||
$this->setTemplateFile('widget_style_generate_code_in_page');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue