From f842ee1582b8b29f6e3d0f864f8c5e825cee9f85 Mon Sep 17 00:00:00 2001 From: ngleader Date: Tue, 13 Oct 2009 05:06:32 +0000 Subject: [PATCH 01/72] show first msg that install and update modules git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6862 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/tpl/index.html | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/modules/admin/tpl/index.html b/modules/admin/tpl/index.html index 23739e662..f4c5dc352 100644 --- a/modules/admin/tpl/index.html +++ b/modules/admin/tpl/index.html @@ -33,7 +33,8 @@ - + + {$val->title} ({$val->module}) {$val->version} @@ -44,18 +45,36 @@ created_table_count != $val->table_count)-->class="alert"> {$val->created_table_count}/{$val->table_count} - need_install || $val->need_update)-->class="alert"> + {$lang->cmd_install} {$lang->cmd_update} - - - {$lang->module_info} + + + + + + {$val->title} ({$val->module}) + {$val->version} + + + {$author->name} + + + created_table_count != $val->table_count)-->class="alert"> + {$val->created_table_count}/{$val->table_count} + + - + {$lang->module_info} + + + From d77f7f76982024dc1c3ff1527ace75e4f318ad48 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 14 Oct 2009 04:07:08 +0000 Subject: [PATCH 02/72] #18368166 : fix an error occurred in PHP4 git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6863 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DBCubrid.class.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/classes/db/DBCubrid.class.php b/classes/db/DBCubrid.class.php index 14189cad3..46b0939dd 100644 --- a/classes/db/DBCubrid.class.php +++ b/classes/db/DBCubrid.class.php @@ -618,7 +618,7 @@ $query = sprintf("select %s from %s %s %s", $columns, implode(',',$table_list),implode(' ',$left_join), $condition); if (count ($output->groups)) { - foreach ($output->groups as &$value) { + foreach ($output->groups as $key => $value) { if (strpos ($value, '.')) { $tmp = explode ('.', $value); $tmp[0] = sprintf ('"%s"', $tmp[0]); @@ -627,6 +627,7 @@ } elseif (strpos ($value, '(')) $value = $value; else $value = sprintf ('"%s"', $value); + $output->groups[$key] = $value; } $query .= sprintf(' group by %s', implode(',',$output->groups)); } @@ -798,7 +799,7 @@ $query = sprintf("select %s from %s %s %s", $columns, implode(',',$table_list), implode(' ',$left_join), $condition); if (count ($output->groups)) { - foreach ($output->groups as &$value) { + foreach ($output->groups as $key => $value) { if (strpos ($value, '.')) { $tmp = explode ('.', $value); $tmp[0] = sprintf ('"%s"', $tmp[0]); @@ -807,6 +808,7 @@ } elseif (strpos ($value, '(')) $value = $value; else $value = sprintf ('"%s"', $value); + $output->groups[$key] = $value; } $query .= sprintf(' group by %s', implode(',',$output->groups)); } From 29c3da6612c970023a9517b8b87a0bcc93344ff0 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 14 Oct 2009 09:58:12 +0000 Subject: [PATCH 03/72] #18335350 : display wrong information for sent messages (Thanks to grien) git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6864 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/communication/skins/default/messages.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/communication/skins/default/messages.html b/modules/communication/skins/default/messages.html index 714202d16..1b7736cf6 100644 --- a/modules/communication/skins/default/messages.html +++ b/modules/communication/skins/default/messages.html @@ -32,7 +32,7 @@ - {$message->nick_name} ({$message->user_id}) + {$message->nick_name} ({$message->user_id}) {zdate($message->regdate, "Y.m.d H:i:s")} From 961e73ef1bd858833f1d6a39bd13aea54647c544 Mon Sep 17 00:00:00 2001 From: taggon Date: Thu, 15 Oct 2009 02:22:00 +0000 Subject: [PATCH 04/72] =?UTF-8?q?JS=20Application=20Framework=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6865 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/app.js | 290 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100644 common/js/app.js diff --git a/common/js/app.js b/common/js/app.js new file mode 100644 index 000000000..adf0cc527 --- /dev/null +++ b/common/js/app.js @@ -0,0 +1,290 @@ +/** + * @brief XE Application Framework + * @namespace xe + */ +(function($){ + +var _app_base, _plugin_base; +var _apps = []; + +var _xe_base = { + /** + * @brief return the name of Core module + */ + getName : function() { + return 'Core'; + }, + + /** + * @brief Create an application class + */ + createApp : function(sName, oDef) { + var _base = getTypeBase(); + var newApp = $.extend(_base.prototype, _app_base, oDef); + + newApp.prototype.getName = function() { + return sName; + }; + + return newApp; + }, + + /** + * @brief Create a plugin class + */ + createPlugin : function(sName, oDef) { + var _base = getTypeBase(); + var newPlugin = $.extend(_base.prototype, _plugin_base, oDef); + + newPlugin.prototype.getName = function() { + return sName; + }; + + return newPlugin; + }, + + /** + * @brief Get the array of applications + */ + getApps : function() { + return $.makeArray(_apps); + }, + + /** + * @brief Get one application + */ + getApp : function(indexOrName) { + if (typeof _apps[indexOrName] != 'undefined') { + return _apps[indexOrName]; + } else { + return null; + } + }, + + /** + * @brief Register an application instance + */ + registerApp : function(oApp) { + var sName = oPlugin.getName().toLowerCase(); + + _apps.push(oApp); + if (!$.isArray(_apps[sName])) { + _apps[sName] = []; + } + _apps[sName].push(oApp); + + oApp.parent = this; + }, + + /** + * @brief Unregister an application instance + */ + unregisterApp : function(oApp) { + var sName = oPlugin.getName().toLowerCase(); + var nIndex = $.inArray(oApp, _apps); + + if (nIndex >= 0) _apps.splice(nIndex, 1); + + if ($.isArray(_apps[sName])) { + nIndex = $.inArray(oApp, _apps[sName]); + if (nIndex >= 0) _apps[sName].splice(nIndex, 1); + } + }, + + /** + * @brief overrides broadcast method + */ + broadcast : function(oSender, msg, params) { + for(var i=0; i < this._apps.length; i++) { + this._apps[i].cast(oSender, msg, params); + } + } +} + +function getTypeBase() { + var _base = function() { + if ($.isArray(this._plugins)) this._plugins = []; + if ($.isArray(this._messages)) this._messages = []; + if ($.isArray(this._binded_fn)) this._binded_fn = []; + + if ($.isFunction(this.$init)) { + this.$init.apply(this, arguments); + } + }; + + return _base; +} + +_app_base = { + _plugins : [], + _messages : [], + + _fn_level : -1, + + /** + * @brief register a plugin instance + */ + registerPlugin : function(oPlugin) { + var sName = oPlugin.getName().toLowerCase(); + + // check if the plugin is already registered + if ($.inArray(oPlugin, this._plugins) >= 0) return false; + + // push the plugin into the _plugins array + this._plugins.push(oPlugin); + + if (!$.isArray(this._plugins[sName])) { + this._plugins[sName] = []; + } + this._plugins[sName].push(oPlugin); + + // register method pool + var msgs = this._messages; + $.each(oPlugin, function(key, val){ + if (!$.isFunction(val)) return true; + if (!/^API_((BEFORE_|AFTER_)?[A-Z0-9_]+)$/.test(key)) return true; + + var fn = function(s,p){ return oPlugin[key](s,p) }; + fn._fn = val; + + if (RegExp.$2) { // is hooker? + if ($.isArray(msgs[RegExp.$1])) msgs[RegExp.$1] = []; + msgs[RegExp.$1].push(fn); + } else { // register only one main function + if ($.isFunction(msgs[RegExp.$1])) { + msgs[RegExp.$1] = fn; + } + } + }); + + // set the application + oPlugin.oApp = this; + + // binding + oPlugin.cast = function(msg, params) { + oPlugin._cast(msg, params); + }; + + oPlugin.broadcast = function(msg, params) { + oPlugin._broadcast(msg, params); + }; + + return true; + }, + + /** + * @brief unregister a plugin instance + */ + unregisterPlugin : function(oPlugin) { + var sName = oPlugin.getName().toLowerCase(); + + // remove from _plugins array + var nIndex = $.inArray(oPlugin, this._plugins); + if (nIndex >= 0) this._plugins.splice(nIndex, 1); + + if ($.isArray(this._plugins[sName])) { + nIndex = $.inArray(oPlugin, this._plugins); + if (nIndex >= 0) this._plugins[sName].splice(nIndex, 1); + } + + // unregister method pool + var msgs = this._messages; + $.each(oPlugin, function(key, val){ + if (!$.isFunction(val)) return true; + if (!/^API_([A-Z0-9_]+)$/.test(key)) return true; + if (typeof msgs[RegExp.$1] == 'undefined') return true; + + if ($.isArray(msgs[RegExp.$1])) { + msgs[RegExp.$1] = $.grep(msgs[RegExp.$1], function(fn,i){ return (fn._fn != val); }); + if (!msgs[RegExp.$1].length) { + delete msgs[RegExp.$1]; + } + } else { + if (msgs[RegExp.$1]._fn == val) { + delete msgs[RegExp.$1]; + } + + } + }); + + // unset the application + oPlugin.oApp = null; + }, + + cast : function(sender, msg, params) { + var i, len; + var aMsg = this._messages; + + msg = msg.toUpperCase(); + + // increase function level + this._fn_level++; + + // BEFORE hooker + var bContinue = this.cast(sender, 'BEFORE_'+msg, params); + if (!bContinue) { + this._fn_level--; + return; + } + + // main api function + var vRet; + if ($.isFunction(aMsg[msg])) { + vRet = aMsg[msg](sender, params); + } else if ($.isArray(aMsg[msg])) { + vRet = []; + for(i=0; i < aMsg[msg].length; i++) { + vRet.push( aMsg[msg][i](sender, params) ); + } + } + + // AFTER hooker + this.cast(sender, 'AFTER_'+msg, params); + + // decrease function level + this._fn_level--; + + if (_fn_level < 0) { // top level function + return vRet; + } else { + if (typeof vRet == 'undefined') vRet = true; + return $.isArray(vRet)?$.inArray(false, vRet):!!vRet; + } + }, + + broadcast : function(sender, msg, params) { + if (this.parent && this.parent.broadcast) { + this.parent.broadcast(sender, msg, params); + } + } +}; + +_plugin_base = { + oApp : null, + _binded_fn : [], + + _cast : function(msg, params) { + if (this.oApp && this.oApp.cast) { + this.oApp.cast(this, msg, params || []); + } + }, + _broadcast : function(msg, params) { + if (this.oApp && this.oApp.broadcast) { + this.oApp.broadcast(this, mag, params || []); + } + } + + /** + * Event handler prototype + */ +}; + +window.xe = $.extend(_app_base, _xe_base); + +// domready event +$(function(){ xe.broadcast(xe, 'ONREADY'); }); + +// load event +$(window).load(function(){ xe.broadcast(xe, 'ONLOAD'); }); + +})(jQuery); \ No newline at end of file From 423b34861cfe4aae630478e74ff1a98d25fd6d7b Mon Sep 17 00:00:00 2001 From: taggon Date: Thu, 15 Oct 2009 02:29:20 +0000 Subject: [PATCH 05/72] =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=A0=95=EB=A0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6866 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/app.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/common/js/app.js b/common/js/app.js index adf0cc527..1fbf28aef 100644 --- a/common/js/app.js +++ b/common/js/app.js @@ -4,10 +4,10 @@ */ (function($){ -var _app_base, _plugin_base; +var _xe_base, _app_base, _plugin_base; var _apps = []; -var _xe_base = { +_xe_base = { /** * @brief return the name of Core module */ @@ -101,20 +101,6 @@ var _xe_base = { } } -function getTypeBase() { - var _base = function() { - if ($.isArray(this._plugins)) this._plugins = []; - if ($.isArray(this._messages)) this._messages = []; - if ($.isArray(this._binded_fn)) this._binded_fn = []; - - if ($.isFunction(this.$init)) { - this.$init.apply(this, arguments); - } - }; - - return _base; -} - _app_base = { _plugins : [], _messages : [], @@ -279,6 +265,20 @@ _plugin_base = { */ }; +function getTypeBase() { + var _base = function() { + if ($.isArray(this._plugins)) this._plugins = []; + if ($.isArray(this._messages)) this._messages = []; + if ($.isArray(this._binded_fn)) this._binded_fn = []; + + if ($.isFunction(this.$init)) { + this.$init.apply(this, arguments); + } + }; + + return _base; +} + window.xe = $.extend(_app_base, _xe_base); // domready event From d3111892d819c1dba6d58743646ccfc5aa2c56c1 Mon Sep 17 00:00:00 2001 From: taggon Date: Thu, 15 Oct 2009 02:31:44 +0000 Subject: [PATCH 06/72] =?UTF-8?q?=EC=A0=84=EC=97=AD=EA=B0=9D=EC=B2=B4?= =?UTF-8?q?=EC=97=90=EC=84=9C=20broadcast=20=ED=95=A0=20=EB=95=8C=20?= =?UTF-8?q?=EC=9E=90=EC=8B=9D=20=ED=94=8C=EB=9F=AC=EA=B7=B8=EC=9D=B8?= =?UTF-8?q?=EC=97=90=EB=8F=84=20cast=20=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6867 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/app.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/js/app.js b/common/js/app.js index 1fbf28aef..cf9ae517b 100644 --- a/common/js/app.js +++ b/common/js/app.js @@ -98,6 +98,9 @@ _xe_base = { for(var i=0; i < this._apps.length; i++) { this._apps[i].cast(oSender, msg, params); } + + // cast to child plugins + this.cast(oSender, msg, params); } } From 044af4db049f00f1c83a46cf96e5c2574363808b Mon Sep 17 00:00:00 2001 From: taggon Date: Thu, 15 Oct 2009 09:45:48 +0000 Subject: [PATCH 07/72] =?UTF-8?q?cast=20=EB=A9=94=EC=86=8C=EB=93=9C?= =?UTF-8?q?=EC=97=90=20=EC=9E=88=EB=8D=98=20too=20many=20recursion=20?= =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6868 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/app.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/common/js/app.js b/common/js/app.js index cf9ae517b..6646355e6 100644 --- a/common/js/app.js +++ b/common/js/app.js @@ -95,7 +95,7 @@ _xe_base = { * @brief overrides broadcast method */ broadcast : function(oSender, msg, params) { - for(var i=0; i < this._apps.length; i++) { + for(var i=0; i < _apps.length; i++) { this._apps[i].cast(oSender, msg, params); } @@ -210,10 +210,12 @@ _app_base = { this._fn_level++; // BEFORE hooker - var bContinue = this.cast(sender, 'BEFORE_'+msg, params); - if (!bContinue) { - this._fn_level--; - return; + if (typeof aMsg['BEFORE_'+msg] != 'undefined') { + var bContinue = this.cast(sender, 'BEFORE_'+msg, params); + if (!bContinue) { + this._fn_level--; + return; + } } // main api function @@ -228,12 +230,14 @@ _app_base = { } // AFTER hooker - this.cast(sender, 'AFTER_'+msg, params); + if (typeof aMsg['AFTER_'+msg] != 'undefined') { + this.cast(sender, 'AFTER_'+msg, params); + } // decrease function level this._fn_level--; - if (_fn_level < 0) { // top level function + if (this._fn_level < 0) { // top level function return vRet; } else { if (typeof vRet == 'undefined') vRet = true; From 142d9c1c31046d9894b02d6cebaf85d576fa1b4b Mon Sep 17 00:00:00 2001 From: taggon Date: Fri, 16 Oct 2009 01:39:50 +0000 Subject: [PATCH 08/72] =?UTF-8?q?broadcast=20=ED=95=A0=20=EB=95=8C=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=EA=B0=80=20=EB=B0=9C=EC=83=9D=ED=95=98?= =?UTF-8?q?=EB=8D=98=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6869 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/app.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/common/js/app.js b/common/js/app.js index 6646355e6..cf6aa567a 100644 --- a/common/js/app.js +++ b/common/js/app.js @@ -19,28 +19,30 @@ _xe_base = { * @brief Create an application class */ createApp : function(sName, oDef) { - var _base = getTypeBase(); - var newApp = $.extend(_base.prototype, _app_base, oDef); + var _base = getTypeBase(); - newApp.prototype.getName = function() { + $.extend(_base.prototype, _app_base, oDef); + + _base.prototype.getName = function() { return sName; }; - return newApp; + return _base; }, /** * @brief Create a plugin class */ createPlugin : function(sName, oDef) { - var _base = getTypeBase(); - var newPlugin = $.extend(_base.prototype, _plugin_base, oDef); + var _base = getTypeBase(); - newPlugin.prototype.getName = function() { + $.extend(_base.prototype, _plugin_base, oDef); + + _base.prototype.getName = function() { return sName; }; - return newPlugin; + return _base; }, /** @@ -65,7 +67,7 @@ _xe_base = { * @brief Register an application instance */ registerApp : function(oApp) { - var sName = oPlugin.getName().toLowerCase(); + var sName = oApp.getName().toLowerCase(); _apps.push(oApp); if (!$.isArray(_apps[sName])) { @@ -96,7 +98,7 @@ _xe_base = { */ broadcast : function(oSender, msg, params) { for(var i=0; i < _apps.length; i++) { - this._apps[i].cast(oSender, msg, params); + _apps[i].cast(oSender, msg, params); } // cast to child plugins @@ -140,9 +142,7 @@ _app_base = { if ($.isArray(msgs[RegExp.$1])) msgs[RegExp.$1] = []; msgs[RegExp.$1].push(fn); } else { // register only one main function - if ($.isFunction(msgs[RegExp.$1])) { - msgs[RegExp.$1] = fn; - } + msgs[RegExp.$1] = fn; } }); @@ -192,7 +192,7 @@ _app_base = { if (msgs[RegExp.$1]._fn == val) { delete msgs[RegExp.$1]; } - + } }); @@ -244,7 +244,7 @@ _app_base = { return $.isArray(vRet)?$.inArray(false, vRet):!!vRet; } }, - + broadcast : function(sender, msg, params) { if (this.parent && this.parent.broadcast) { this.parent.broadcast(sender, msg, params); From 42db7cf307eac6e7014b929ae1f80e2402c64a94 Mon Sep 17 00:00:00 2001 From: haneul Date: Fri, 16 Oct 2009 02:45:57 +0000 Subject: [PATCH 09/72] #18377592 : fixed a bug missing 0 value in getUrl function git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6870 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/context/Context.class.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index c50f0be2b..00df330f0 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -834,7 +834,7 @@ $val = trim($args_list[$i+1]); // 값이 없으면 GET변수에서 해당 키를 제거 - if(!isset($val)) { + if(!isset($val) || strlen($val)<1) { unset($get_vars[$key]); continue; } @@ -847,12 +847,6 @@ if($vid) $get_vars['vid'] = $vid; else unset($get_vars['vid']); - if(count($get_vars)) { - foreach($get_vars as $key => $val) { - if(!trim($val)) unset($get_vars[$key]); - } - } - // action명이 변경되었던 것에 대해 호환성을 유지하기 위한 강제 값 변경 switch($get_vars['act']) { case 'dispMemberFriend' : $get_vars['act'] = 'dispCommunicationFriend'; break; From cfe50ff6bad8c8991c8cae013a8694cb8f946d20 Mon Sep 17 00:00:00 2001 From: heemin Date: Fri, 16 Oct 2009 08:53:56 +0000 Subject: [PATCH 10/72] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EC=9D=BC?= =?UTF-8?q?=EB=B6=80=20=EB=B2=88=EC=97=AD=20=EC=B6=94=EA=B0=80=20=EB=B0=8F?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6871 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/lang/jp.lang.php | 4 ++-- modules/admin/lang/jp.lang.php | 9 ++++----- modules/communication/lang/jp.lang.php | 2 +- modules/editor/lang/jp.lang.php | 7 +++---- modules/editor/styles/default/skin.xml | 5 +++++ modules/editor/styles/xeStyleBlack/skin.xml | 2 +- modules/layout/lang/jp.lang.php | 2 +- 7 files changed, 17 insertions(+), 14 deletions(-) diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index 9ba0fb49b..d1f59b580 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -225,9 +225,9 @@ $lang->msg_invalid_format = '正しくないフォーマットです。'; $lang->msg_not_permitted_act = '現在の操作は実行する権限がありません。'; - $lang->msg_module_is_not_exists = "요청하신 모듈을 찾을 수 없습니다.\n사이트 관리자에게 모듈 점검 요청 바랍니다"; + $lang->msg_module_is_not_exists = "動作に必要なモジュールが見つかりません。\nサイト管理者へモジュールの点検をお問い合わせ下さい。"; $lang->msg_module_is_not_standalone = 'このモジュールはスタンドアローンでは作動しません。'; - $lang->msg_default_url_is_not_defined = '기본 URL이 정해지지 않아서 동작을 중지합니다'; + $lang->msg_default_url_is_not_defined = 'デフォルトURLが定められてないため、動作を中止します。'; $lang->success_registed = '登録しました。'; $lang->success_declared = '通報しました。'; diff --git a/modules/admin/lang/jp.lang.php b/modules/admin/lang/jp.lang.php index 387e1ca58..ace53460e 100644 --- a/modules/admin/lang/jp.lang.php +++ b/modules/admin/lang/jp.lang.php @@ -32,10 +32,10 @@ $lang->env_information = '環境情報'; - $lang->current_version = 'インストールバージョン'; + $lang->current_version = 'インストール済みバージョン'; $lang->current_path = 'インストールパス'; $lang->released_version = '最新バージョン'; - $lang->about_download_link = "インストールされたバージョンより新しいバージョンが配布されています。\n「ダウンロード」リンクをクリックするとダウンロード出来ます。"; + $lang->about_download_link = "新しいバージョンが配布されています。\n「ダウンロード」リンクをクリックするとダウンロード出来ます。"; $lang->item_module = 'モジュールリスト'; $lang->item_addon = 'アドオンリスト'; @@ -51,12 +51,11 @@ $lang->cmd_shortcut_management = 'メニューの編集'; - $lang->msg_is_not_administrator = '管理者だけアクセス出来ます'; + $lang->msg_is_not_administrator = '管理者のみアクセス出来ます'; $lang->msg_manage_module_cannot_delete = 'モジュール、アドオン、ウィジェットのショットカットは削除出来ません。'; $lang->msg_default_act_is_null = 'デフォルトの管理者のアクションが指定されていないため、ショットカットを登録することが出来ません。'; $lang->welcome_to_xe = 'XEの管理者ページです。'; - $lang->about_admin_page = "管理者ページはまだ未完成です。\nクローズベータバージョンの期間に、多くの方々からご意見をいただきながら、必ず完成したいと思います。"; $lang->about_lang_env = '初めてサイトに訪問したユーザーに対し、上記の選択した言語でサイトを表示させるためには、必ず下記の「保存」ボタンをクリックして適用して下さい。'; $lang->xe_license = 'XEのライセンスはGPLです。'; @@ -66,7 +65,7 @@ $lang->today = '今日'; $lang->cmd_lang_select = '言語選択'; - $lang->about_cmd_lang_select = '選択された言語だけでサービスを行います。'; + $lang->about_cmd_lang_select = '選択した言語だけでサービスを行います。'; $lang->about_recompile_cache = '要らないかごみのキャッシューファイルを整理します。'; $lang->use_ssl = 'SSL環境設定'; $lang->ssl_options = array( diff --git a/modules/communication/lang/jp.lang.php b/modules/communication/lang/jp.lang.php index 6d391af38..840101d98 100644 --- a/modules/communication/lang/jp.lang.php +++ b/modules/communication/lang/jp.lang.php @@ -33,7 +33,7 @@ $lang->cmd_view_friend = '友達リスト'; $lang->cmd_add_friend = '友達登録'; $lang->cmd_view_message_box = 'メッセージ'; - $lang->cmd_store = "保存"; + $lang->cmd_store = '保存'; $lang->cmd_add_friend_group = '友達グループ追加'; $lang->cmd_rename_friend_group = '友達グループ名変更'; diff --git a/modules/editor/lang/jp.lang.php b/modules/editor/lang/jp.lang.php index 89e026ce8..335f06888 100644 --- a/modules/editor/lang/jp.lang.php +++ b/modules/editor/lang/jp.lang.php @@ -213,19 +213,18 @@ $lang->edit->move = '移動'; $lang->edit->refresh = '再読み込み'; - $lang->edit->materials = '資料箱'; + $lang->edit->materials = '資料箱'; $lang->edit->temporary_savings = '下書きリスト'; $lang->edit->drag_here = '下のツールリストから段落のタイプを選んで追加できます。
マウスでドラッグをすると、右の資料箱からこの枠に文書を追加できます。'; - $lang->edit->paging_prev = '前へ'; $lang->edit->paging_next = '次へ'; $lang->edit->paging_prev_help = '前のページへ移動します。'; $lang->edit->paging_next_help = '次のページへ移動します。'; $lang->edit->toc = 'リスト'; - $lang->edit->close_help = '도움말 닫기'; + $lang->edit->close_help = 'ヘルプを閉じる'; - $lang->edit->confirm_submit_without_saving = '저장하지 않은 단락이 있습니다.\\n그냥 전송하시겠습니까?'; + $lang->edit->confirm_submit_without_saving = 'まだ保存してない内容があります。\\nそのまま転送して宜しいでしょうか?'; ?> diff --git a/modules/editor/styles/default/skin.xml b/modules/editor/styles/default/skin.xml index 25e78b4d0..661e924dc 100644 --- a/modules/editor/styles/default/skin.xml +++ b/modules/editor/styles/default/skin.xml @@ -17,11 +17,16 @@ Trang mẫu mặc định của XE. Nó sẽ hiển thị trong phần sửa đổi bài viết và không ảnh hưởng đến bất cứ chức năng nào cả. + + XEのデフォルト書式です。 + そのまま表示され、編集/出力時何の影響はありません。 + 0.0.1 2009-05-23 정찬명 Chan-Myung Jeong Chan-Myung Jeong + Chan-Myung Jeong diff --git a/modules/editor/styles/xeStyleBlack/skin.xml b/modules/editor/styles/xeStyleBlack/skin.xml index 0309695f5..dc20ede2a 100644 --- a/modules/editor/styles/xeStyleBlack/skin.xml +++ b/modules/editor/styles/xeStyleBlack/skin.xml @@ -2,7 +2,7 @@ XE 기본 서식 (검은 배경) XE Mặc định (Nền tối) - XEデフォルトスタイル(黑色背景) + XEデフォルトスタイル(黒色背景) XE預設樣式(黑色背景) XE 기본 문서 서식입니다. diff --git a/modules/layout/lang/jp.lang.php b/modules/layout/lang/jp.lang.php index 089fc52cd..0a4db3d45 100644 --- a/modules/layout/lang/jp.lang.php +++ b/modules/layout/lang/jp.lang.php @@ -29,7 +29,7 @@ $lang->about_layout_code = "下のレイアウトコードを修正し、保存するとサービスに反映されます。 必ずプレビューで確認してから保存して下さい。 - XEのテンプレート文法はXEテンプレートを参考して下さい。"; + XEのテンプレート文法はXEテンプレートを参考して下さい。"; $lang->layout_export = 'エクスポート'; $lang->layout_btn_export = 'マイレイアウトをダウンロードする'; From 1f59bc8e25e99f40613a7802b9579714e1b4a1e5 Mon Sep 17 00:00:00 2001 From: haneul Date: Mon, 19 Oct 2009 03:00:45 +0000 Subject: [PATCH 13/72] added missing language item (refresh) git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6874 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/lang/en.lang.php | 1 + modules/editor/lang/es.lang.php | 1 + modules/editor/lang/fr.lang.php | 1 + modules/editor/lang/ru.lang.php | 1 + modules/editor/lang/vi.lang.php | 1 + modules/editor/lang/zh-CN.lang.php | 1 + modules/editor/lang/zh-TW.lang.php | 1 + 7 files changed, 7 insertions(+) diff --git a/modules/editor/lang/en.lang.php b/modules/editor/lang/en.lang.php index 06c3c0b82..7b4980d9a 100644 --- a/modules/editor/lang/en.lang.php +++ b/modules/editor/lang/en.lang.php @@ -210,6 +210,7 @@ $lang->edit->minimize_list = 'Minimize'; $lang->edit->move = 'Move'; + $lang->edit->refresh = 'Refresh'; $lang->edit->materials = 'Materials'; $lang->edit->temporary_savings = 'Temporary Saved List'; diff --git a/modules/editor/lang/es.lang.php b/modules/editor/lang/es.lang.php index 6e7a0cd77..c46b514ea 100644 --- a/modules/editor/lang/es.lang.php +++ b/modules/editor/lang/es.lang.php @@ -206,6 +206,7 @@ $lang->edit->minimize_list = '최소화'; $lang->edit->move = '이동'; + $lang->edit->refresh = 'Refresh'; $lang->edit->materials = '글감보관함'; $lang->edit->temporary_savings = '임시저장목록'; diff --git a/modules/editor/lang/fr.lang.php b/modules/editor/lang/fr.lang.php index 9cdb7fbe5..f71b8b8d7 100644 --- a/modules/editor/lang/fr.lang.php +++ b/modules/editor/lang/fr.lang.php @@ -210,6 +210,7 @@ $lang->edit->minimize_list = '최소화'; $lang->edit->move = '이동'; + $lang->edit->refresh = 'Refresh'; $lang->edit->materials = '글감보관함'; $lang->edit->temporary_savings = '임시저장목록'; diff --git a/modules/editor/lang/ru.lang.php b/modules/editor/lang/ru.lang.php index 92f788ec4..619eb3137 100644 --- a/modules/editor/lang/ru.lang.php +++ b/modules/editor/lang/ru.lang.php @@ -206,6 +206,7 @@ $lang->edit->minimize_list = '최소화'; $lang->edit->move = '이동'; + $lang->edit->refresh = 'Refresh'; $lang->edit->materials = '글감보관함'; $lang->edit->temporary_savings = '임시저장목록'; diff --git a/modules/editor/lang/vi.lang.php b/modules/editor/lang/vi.lang.php index cbb20903d..f6070b0c6 100644 --- a/modules/editor/lang/vi.lang.php +++ b/modules/editor/lang/vi.lang.php @@ -212,6 +212,7 @@ $lang->edit->minimize_list = 'Thu nhỏ'; $lang->edit->move = 'Di chuyển'; + $lang->edit->refresh = 'Refresh'; $lang->edit->materials = 'Vật liệu'; $lang->edit->temporary_savings = 'Danh sách lưu tạm thời'; diff --git a/modules/editor/lang/zh-CN.lang.php b/modules/editor/lang/zh-CN.lang.php index f297480ac..36bebace2 100644 --- a/modules/editor/lang/zh-CN.lang.php +++ b/modules/editor/lang/zh-CN.lang.php @@ -212,6 +212,7 @@ $lang->edit->minimize_list = '최소화'; $lang->edit->move = '이동'; + $lang->edit->refresh = 'Refresh'; $lang->edit->materials = '글감보관함'; $lang->edit->temporary_savings = '임시저장목록'; diff --git a/modules/editor/lang/zh-TW.lang.php b/modules/editor/lang/zh-TW.lang.php index 15e02595f..1f44edcba 100644 --- a/modules/editor/lang/zh-TW.lang.php +++ b/modules/editor/lang/zh-TW.lang.php @@ -213,6 +213,7 @@ $lang->edit->minimize_list = '최소화'; $lang->edit->move = '이동'; + $lang->edit->refresh = 'Refresh'; $lang->edit->materials = '글감보관함'; $lang->edit->temporary_savings = '임시저장목록'; From 275124ec819f6f283e164c083c5c1307e3615983 Mon Sep 17 00:00:00 2001 From: haneul Date: Mon, 19 Oct 2009 04:03:54 +0000 Subject: [PATCH 14/72] fixed typo git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6875 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- widgets/content/conf/info.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/widgets/content/conf/info.xml b/widgets/content/conf/info.xml index 63cd77a45..124b0132c 100644 --- a/widgets/content/conf/info.xml +++ b/widgets/content/conf/info.xml @@ -412,7 +412,7 @@ 정렬대상을 내림차순 또는 올림차순으로 정렬할 수 있습니다. 对其排序对象可进行升序/降序方式排序。 ソートタイプを、降順、または昇順に設定します。 - You can sort target articles by asending or desending order. + You can sort target articles by ascending or descending order. Bạn có thể phân loại bài viết theo kiểu tăng hay giảm. Usted puede ordenar los documentos en orden acendente o en orden descendente. Вы можете сортировать статьи в порядке возрастания или убывания. @@ -422,7 +422,7 @@ 내림차순 降序 降順 - Desending order + Descending order Giảm dần Orden Descendente По убыванию @@ -433,7 +433,7 @@ 올림차순 升序 昇順 - Asending order + Ascending order Tăng dần Orden Acendente По возрастанию From 31f55d0f216c55eeef290b20fe363261ae5ee309 Mon Sep 17 00:00:00 2001 From: supershop Date: Mon, 19 Oct 2009 10:30:47 +0000 Subject: [PATCH 15/72] english translation git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6876 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/lang/en.lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/lang/en.lang.php b/modules/editor/lang/en.lang.php index 7b4980d9a..60f0d5fa6 100644 --- a/modules/editor/lang/en.lang.php +++ b/modules/editor/lang/en.lang.php @@ -222,7 +222,7 @@ $lang->edit->paging_next_help = 'Move to next page.'; $lang->edit->toc = 'Table of Contents'; - $lang->edit->close_help = '도움말 닫기'; + $lang->edit->close_help = 'Close Help'; $lang->edit->confirm_submit_without_saving = 'There is paragraphs that were not saved.\\nProceed anyway?'; ?> From ab090026604fc0597e12a791c582af5f64cdaada Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 20 Oct 2009 09:17:36 +0000 Subject: [PATCH 16/72] Translate comments into English git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6877 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/admin.admin.controller.php | 19 ++++---- modules/admin/admin.admin.view.php | 60 +++++++++++------------- modules/admin/admin.class.php | 23 +++++---- 3 files changed, 51 insertions(+), 51 deletions(-) diff --git a/modules/admin/admin.admin.controller.php b/modules/admin/admin.admin.controller.php index 7353aebb5..511e29e16 100644 --- a/modules/admin/admin.admin.controller.php +++ b/modules/admin/admin.admin.controller.php @@ -2,35 +2,35 @@ /** * @class adminAdminController * @author zero (zero@nzeo.com) - * @brief admin 모듈의 admin controller class + * @brief admin controller class of admin module **/ class adminAdminController extends admin { /** - * @brief 초기화 + * @brief initialization + * @return none **/ function init() { - // 접속 사용자에 대한 체크 + // forbit access if the user is not an administrator $oMemberModel = &getModel('member'); $logged_info = $oMemberModel->getLoggedInfo(); - - // 관리자가 아니면 금지 if($logged_info->is_admin!='Y') return $this->stop("msg_is_not_administrator"); } /** - * @brief 모든 캐시 파일 재생성 + * @brief Regenerate all cache files + * @return none **/ function procAdminRecompileCacheFile() { $oModuleModel = &getModel('module'); $module_list = $oModuleModel->getModuleList(); - // 개발 디버그 파일들 제거 + // remove debug files FileHandler::removeFile(_XE_PATH_.'files/_debug_message.php'); FileHandler::removeFile(_XE_PATH_.'files/_debug_db_query.php'); FileHandler::removeFile(_XE_PATH_.'files/_db_slow_query.php'); - // 각 모듈마다 돌면서 캐시 파일 제거 + // call recompileCache for each module foreach($module_list as $module) { $oModule = null; $oModule = &getClass($module->module); @@ -41,7 +41,8 @@ } /** - * @brief 관리자 로그아웃 + * @brief Logout + * @return none **/ function procAdminLogout() { $oMemberController = &getController('member'); diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 27e49f1c4..3eb6e03f0 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -2,30 +2,28 @@ /** * @class adminAdminView * @author zero (zero@nzeo.com) - * @brief admin 모듈의 admin view class + * @brief admin view class of admin module **/ class adminAdminView extends admin { /** - * @brief 초기화 + * @brief Initilization + * @return none **/ function init() { - // template path 지정 $this->setTemplatePath($this->module_path.'tpl'); - // 접속 사용자에 대한 체크 + // forbit access if the user is not an administrator $oMemberModel = &getModel('member'); $logged_info = $oMemberModel->getLoggedInfo(); - - // 관리자가 아니면 금지 if($logged_info->is_admin!='Y') return $this->stop("msg_is_not_administrator"); - // 관리자용 레이아웃으로 변경 + // change into administration layout $this->setLayoutPath($this->getTemplatePath()); $this->setLayoutFile('layout.html'); - // 설치된 모듈 목록 가져와서 적절히 분리 + // Retrieve the list of installed modules $oModuleModel = &getModel('module'); $installed_module_list = $oModuleModel->getModulesXmlInfo(); @@ -33,7 +31,7 @@ $package_idx = 0; foreach($installed_module_list as $key => $val) { if($val->module == 'admin' || !$val->admin_index_act) continue; - // action 정보 구함 + // get action information $action_spec = $oModuleModel->getModuleActionXml($val->module); $actions = array(); if($action_spec->default_index_act) $actions[] = $action_spec->default_index_act; @@ -47,14 +45,14 @@ $obj->index_act = $val->admin_index_act; if(in_array(Context::get('act'), $actions)) $obj->selected = true; - // 패키지 모듈 + // Packages if($val->category == 'package') { if($package_idx == 0) $obj->position = "first"; else $obj->position = "mid"; $package_modules[] = $obj; $package_idx ++; if($obj->selected) Context::set('package_selected',true); - // 일반 모듈 + // Modules } else { $installed_modules[] = $obj; } @@ -83,17 +81,16 @@ } /** - * @brief 관리자 메인 페이지 출력 + * @brief Display main administration page + * @return none **/ function dispAdminIndex() { - /** - * 최근 뉴스를 가져와서 세팅 - **/ + //Retrieve recent news and set them into context $newest_news_url = sprintf("http://news.xpressengine.com/%s/news.php", Context::getLangType()); $cache_file = sprintf("%sfiles/cache/newest_news.%s.cache.php", _XE_PATH_,Context::getLangType()); if(!file_exists($cache_file) || filemtime($cache_file)+ 60*60 < time()) { - // 네트웍 상태로 데이터를 가져오지 못할 상황을 고려해 일단 filemtime을 변경하여 관리자 페이지 refresh시에 다시 읽ㅇ 오지 않도록 함 - // 뉴스를 보지는 못하지만 관리자 페이지 접속은 이상없도록 함 + // Considering if data cannot be retrieved due to network problem, modify filemtime to prevent trying to reload again when refreshing administration page + // Ensure to access the administration page even though news cannot be displayed FileHandler::writeFile($cache_file,''); FileHandler::getRemoteFile($newest_news_url, $cache_file, null, 1, 'GET', 'text/html', array('REQUESTURL'=>getFullUrl(''))); } @@ -120,31 +117,29 @@ Context::set('download_link', $buff->zbxe_news->attrs->download_link); } - // DB 정보를 세팅 + // DB Information $db_info = Context::getDBInfo(); Context::set('selected_lang', $db_info->lang_type); - // 현재 버젼과 설치 경로 세팅 + // Current Version and Installed Path Context::set('current_version', __ZBXE_VERSION__); Context::set('installed_path', realpath('./')); - // 모듈 목록을 가져옴 + // Get list of modules $oModuleModel = &getModel('module'); $module_list = $oModuleModel->getModuleList(); Context::set('module_list', $module_list); - // 애드온 목록을 가져옴 + // Get list of addons $oAddonModel = &getAdminModel('addon'); $addon_list = $oAddonModel->getAddonList(); Context::set('addon_list', $addon_list); - /** - * 각종 통계를 추출 - **/ + // Get statistics $args->date = date("Ymd000000", time()-60*60*24); $today = date("Ymd"); - // 회원현황 + // Member Status $output = executeQueryArray("admin.getMemberStatus", $args); if($output->data) { foreach($output->data as $var) { @@ -158,7 +153,7 @@ $output = executeQuery("admin.getMemberCount", $args); $status->member->total = $output->data->count; - // 문서현황 + // Document Status $output = executeQueryArray("admin.getDocumentStatus", $args); if($output->data) { foreach($output->data as $var) { @@ -172,7 +167,7 @@ $output = executeQuery("admin.getDocumentCount", $args); $status->document->total = $output->data->count; - // 댓글현황 + // Comment Status $output = executeQueryArray("admin.getCommentStatus", $args); if($output->data) { foreach($output->data as $var) { @@ -186,7 +181,7 @@ $output = executeQuery("admin.getCommentCount", $args); $status->comment->total = $output->data->count; - // 엮인글현황 + // Trackback Status $output = executeQueryArray("admin.getTrackbackStatus", $args); if($output->data) { foreach($output->data as $var) { @@ -200,7 +195,7 @@ $output = executeQuery("admin.getTrackbackCount", $args); $status->trackback->total = $output->data->count; - // 첨부파일현황 + // Attached files Status $output = executeQueryArray("admin.getFileStatus", $args); if($output->data) { foreach($output->data as $var) { @@ -214,7 +209,7 @@ $output = executeQuery("admin.getFileCount", $args); $status->file->total = $output->data->count; - // 게시물 신고현황 + // Reported documents Status $output = executeQueryArray("admin.getDocumentDeclaredStatus", $args); if($output->data) { foreach($output->data as $var) { @@ -228,7 +223,7 @@ $output = executeQuery("admin.getDocumentDeclaredCount", $args); $status->documentDeclared->total = $output->data->count; - // 댓글 신고현황 + // Reported comments Status $output = executeQueryArray("admin.getCommentDeclaredStatus", $args); if($output->data) { foreach($output->data as $var) { @@ -253,7 +248,8 @@ } /** - * @brief 관리자 설정 + * @brief Display Configuration(settings) page + * @return none **/ function dispAdminConfig() { $db_info = Context::getDBInfo(); diff --git a/modules/admin/admin.class.php b/modules/admin/admin.class.php index 003c0585f..89cdbd044 100644 --- a/modules/admin/admin.class.php +++ b/modules/admin/admin.class.php @@ -2,50 +2,53 @@ /** * @class admin * @author zero (zero@nzeo.com) - * @brief admin 모듈의 high class + * @brief base class of admin module **/ class admin extends ModuleObject { /** - * @brief 설치시 추가 작업이 필요할시 구현 + * @brief install admin module + * @return new Object **/ function moduleInstall() { return new Object(); } /** - * @brief 설치가 이상이 없는지 체크하는 method + * @brief if update is necessary it returns true **/ function checkUpdate() { return false; } /** - * @brief 업데이트 실행 + * @brief update module + * @return new Object **/ function moduleUpdate() { return new Object(); } /** - * @brief 캐시 파일 재생성 + * @brief regenerate cache file + * @return none **/ function recompileCache() { - // 템플릿 컴파일 파일 삭제 + // remove compiled templates FileHandler::removeFilesInDir("./files/cache/template_compiled"); - // optimized 파일 삭제 + // remove optimized files FileHandler::removeFilesInDir("./files/cache/optimized"); - // js_filter_compiled 파일 삭제 + // remove js_filter_compiled files FileHandler::removeFilesInDir("./files/cache/js_filter_compiled"); - // queries 파일 삭제 + // remove cached queries FileHandler::removeFilesInDir("./files/cache/queries"); - // ./files/cache/news* 파일 삭제 + // remove ./files/cache/news* files $directory = dir(_XE_PATH_."files/cache/"); while($entry = $directory->read()) { if(substr($entry,0,11)=='newest_news') FileHandler::removeFile("./files/cache/".$entry); From 31d00efa0fcf183005691277eeb4ff26cb88c493 Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 20 Oct 2009 10:51:12 +0000 Subject: [PATCH 17/72] English translation of comments git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6878 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/module/ModuleHandler.class.php | 172 +++++++++++++------------ 1 file changed, 87 insertions(+), 85 deletions(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index f67b298e7..63284b2a3 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -2,45 +2,40 @@ /** * @class ModuleHandler * @author zero (zero@nzeo.com) - * @brief 모듈 핸들링을 위한 Handler + * @brief Handling modules * - * 모듈을 실행시키기 위한 클래스. - * constructor에 아무 인자 없이 객체를 생성하면 현재 요청받은 - * 상태를 바탕으로 적절한 모듈을 찾게 되고, - * 별도의 인자 값을 줄 경우 그에 맞는 모듈을 찾아서 실행한다. - * 만약 찾아진 모듈의 요청된 act 가 없으면 action_foward를 참조하여 다른 모듈의 act를 실행한다. + * @remarks This class is to excute actions of modules. + * Constructing an instance without any parameterconstructor, it finds the target module based on Context. + * If there is no act on the found module, excute an action referencing action_forward. **/ class ModuleHandler extends Handler { - var $oModule = NULL; ///< 모듈 객체 + var $oModule = NULL; ///< Module Instance - var $module = NULL; ///< 모듈 + var $module = NULL; ///< Module var $act = NULL; ///< action - var $mid = NULL; ///< 모듈의 객체명 - var $document_srl = NULL; ///< 문서 번호 - var $module_srl = NULL; ///< 모듈의 번호 + var $mid = NULL; ///< Module ID + var $document_srl = NULL; ///< Document Number + var $module_srl = NULL; ///< Module Number - var $module_info = NULL; ///< 모듈의 정보 + var $module_info = NULL; ///< Module Info. Object - var $error = NULL; ///< 진행 도중 에러 발생시 에러 코드를 정의, message 모듈을 호출시 사용 + var $error = NULL; ///< an error code. /** * @brief constructor - * - * ModuleHandler에서 사용할 변수를 미리 세팅 - * 인자를 넘겨주지 않으면 현 페이지 요청받은 Request Arguments를 이용하여 - * 변수를 세팅한다. + * @remarks it prepares variables to use in moduleHandler **/ function ModuleHandler($module = '', $act = '', $mid = '', $document_srl = '', $module_srl = '') { - // 설치가 안되어 있다면 install module을 지정 + // If XE has not installed yet, set module as install if(!Context::isInstalled()) { $this->module = 'install'; $this->act = Context::get('act'); return; } - // Request Argument중 모듈을 찾을 수 있는 변수를 구함 + // Set variables from request arguments if(!$module) $this->module = Context::get('module'); else $this->module = $module; @@ -58,12 +53,12 @@ $this->entry = Context::get('entry'); - // 기본 변수들의 검사 (XSS방지를 위한 기초적 검사) + // Validate variables to prevent XSS if($this->module && !preg_match("/^([a-z0-9\_\-]+)$/i",$this->module)) die(Context::getLang("msg_invalid_request")); if($this->mid && !preg_match("/^([a-z0-9\_\-]+)$/i",$this->mid)) die(Context::getLang("msg_invalid_request")); if($this->act && !preg_match("/^([a-z0-9\_\-]+)$/i",$this->act)) die(Context::getLang("msg_invalid_request")); - // 애드온 실행 (모듈 실행 전) + // execute addon (before module initialization) $called_position = 'before_module_init'; $oAddonController = &getController('addon'); $addon_file = $oAddonController->getCacheFilePath(); @@ -71,10 +66,10 @@ } /** - * @brief module, mid, document_srl을 이용하여 모듈을 찾고 act를 실행하기 위한 준비를 함 + * @brief Initialization. It finds the target module based on module, mid, document_srl, and prepares to execute an action + * @return true: OK, false: redirected **/ function init() { - // ModuleModel 객체 생성 $oModuleModel = &getModel('module'); $site_module_info = Context::get('site_module_info'); @@ -85,50 +80,50 @@ if($this->document_srl) Context::set('document_srl', $this->document_srl); } - // 문서번호(document_srl)가 있을 경우 모듈 정보를 구해옴 + // Get module's information based on document_srl, if it's specified if($this->document_srl && !$this->module) { $module_info = $oModuleModel->getModuleInfoByDocumentSrl($this->document_srl); - // 문서가 존재하지 않으면 문서 정보를 제거 + // If the document does not exist, remove document_srl if(!$module_info) { unset($this->document_srl); - // 문서가 존재할 경우 모듈 정보를 바탕으로 virtual site 및 mid 비교 } else { - // mid 값이 다르면 문서의 mid로 설정 + // If it exists, compare mid based on the module information + // if mids are not matching, set it as the document's mid if($this->mid != $module_info->mid) { $this->mid = $module_info->mid; Context::set('mid', $module_info->mid, true); } } - // 요청된 모듈과 문서 번호가 다르면 문서 번호에 의한 모듈 정보를 제거 + // if requested module is different from one of the document, remove the module information retrieved based on the document number if($this->module && $module_info->module != $this->module) unset($module_info); } - // 모듈정보를 구하지 못했고 mid 요청이 있으면 mid에 해당하는 모듈 정보를 구함 + // If module_info is not set yet, and there exists mid information, get module information based on the mid if(!$module_info && $this->mid) { $module_info = $oModuleModel->getModuleInfoByMid($this->mid, $site_module_info->site_srl); //if($this->module && $module_info->module != $this->module) unset($module_info); } - // module_site_srl과 site_srl 값이 다르면 redirect 시도 + // redirect, if module_site_srl and site_srl are different if(!$this->module && !$module_info && $site_module_info->site_srl == 0 && $site_module_info->module_site_srl > 0) { $site_info = $oModuleModel->getSiteInfo($site_module_info->module_site_srl); header("location:".getNotEncodedSiteUrl($site_info->domain,'mid',$site_module_info->mid)); return false; } - // 역시 모듈을 못 찾았고 $module이 없다면 기본 모듈을 찾아봄 + // If module_info is not set still, and $module does not exist, find the default module if(!$module_info && !$this->module) $module_info = $site_module_info; if(!$module_info && !$this->module && $site_module_info->module_site_srl) $module_info = $site_module_info; - // 모듈정보와 사이트 모듈정보가 다르면(다른 사이트이면) 페이지 리다이렉트 + // redirect, if site_srl of module_info is different from one of site's module_info if($module_info && $module_info->site_srl != $site_module_info->site_srl) { - // 현재 요청된 모듈이 가상 사이트 모듈일 경우 + // If the module is of virtual site if($module_info->site_srl) { $site_info = $oModuleModel->getSiteInfo($module_info->site_srl); $redirect_url = getNotEncodedSiteUrl($site_info->domain, 'mid',Context::get('mid'),'document_srl',Context::get('document_srl'),'module_srl',Context::get('module_srl'),'entry',Context::get('entry')); - // 가상 사이트 모듈이 아닌데 가상 사이트에서 호출되었을 경우 + // If it's called from a virtual site, though it's not a module of the virtual site } else { $db_info = Context::getDBInfo(); if(!$db_info->default_url) return Context::getLang('msg_default_url_is_not_defined'); @@ -138,7 +133,7 @@ return false; } - // 모듈 정보가 찾아졌을 경우 모듈 정보에서 기본 변수들을 구함, 모듈 정보에서 module 이름을 구해움 + // If module info was set, retrieve variables from the module information if($module_info) { $this->module = $module_info->module; $this->mid = $module_info->mid; @@ -148,34 +143,35 @@ Context::addHtmlHeader($part_config->header_script); } - // 모듈정보에 module과 mid를 강제로 지정 + // Set module and mid into module_info $this->module_info->module = $this->module; $this->module_info->mid = $this->mid; - // 여기까지도 모듈 정보를 찾지 못했다면 깔끔하게 시스템 오류 표시 + // Still no module? it's an error if(!$this->module) $this->error = 'msg_module_is_not_exists'; - // mid값이 있을 경우 mid값을 세팅 + // If mid exists, set mid into context if($this->mid) Context::set('mid', $this->mid, true); - // 실제 동작을 하기 전에 trigger 호출 + // Call a trigger after moduleHandler init $output = ModuleHandler::triggerCall('moduleHandler.init', 'after', $this->module_info); if(!$output->toBool()) { $this->error = $output->getMessage(); return false; } - // 현재 모듈의 정보를 세팅 + // Set current module info into context Context::set('current_module_info', $this->module_info); return true; } /** - * @brief 모듈과 관련된 정보를 이용하여 객체를 구하고 act 실행까지 진행시킴 + * @brief get a module instance and execute an action + * @return executed module instance **/ function procModule() { - // 에러가 있으면 메세지 객체를 만들어서 return + // If error occurred while preparation, return a message instance if($this->error) { $oMessageView = &getView('message'); $oMessageView->setError(-1); @@ -184,99 +180,98 @@ return $oMessageView; } - // ModuleModel 객체 생성 $oModuleModel = &getModel('module'); - // 해당 모듈의 conf/action.xml 을 분석하여 action 정보를 얻어옴 + // Get action information with conf/action.xml $xml_info = $oModuleModel->getModuleActionXml($this->module); - // 미설치시에는 act값을 강제로 변경 + // If not installed yet, modify act if($this->module=="install") { if(!$this->act || !$xml_info->action->{$this->act}) $this->act = $xml_info->default_index_act; } - // 현재 요청된 act가 있으면 $xml_info에서 type을 찾음, 없다면 기본 action을 이용 + // if act exists, find type of the action, if not use default index act if(!$this->act) $this->act = $xml_info->default_index_act; - // act값이 지정이 안되어 있으면 오류 표시 + // still no act means error if(!$this->act) { $this->error = 'msg_module_is_not_exists'; return; } - // type, kind 값 구함 + // get type, kind $type = $xml_info->action->{$this->act}->type; $kind = strpos(strtolower($this->act),'admin')!==false?'admin':''; if(!$kind && $this->module == 'admin') $kind = 'admin'; - // 모듈 객체 생성 + // create a module instance $oModule = &$this->getModuleInstance($this->module, $type, $kind); if(!is_object($oModule)) { $this->error = 'msg_module_is_not_exists'; return; } - // 모듈에 act값을 세팅 $oModule->setAct($this->act); - // 모듈 정보 세팅 $this->module_info->module_type = $type; $oModule->setModuleInfo($this->module_info, $xml_info); - // 모듈을 수행하고 결과가 false이면 message 모듈 호출 지정 + // execute the action, and if failed, set error if(!$oModule->proc()) $this->error = $oModule->getMessage(); return $oModule; } /** - * @ 실행된 모듈의 컨텐츠를 출력 + * @brief display contents from executed module + * @param[in] $oModule module instance + * @return none **/ function displayContent($oModule = NULL) { - // 설정된 모듈이 정상이지 않을 경우 message 모듈 객체 생성 + // If the module is not set or not an object, set error if(!$oModule || !is_object($oModule)) { $this->error = 'msg_module_is_not_exists'; } - // install 모듈이 아닐 때 DB 접속에 문제가 있으면 오류 + // If connection to DB has a problem even though it's not install module, set error if($this->module != 'install' && $GLOBALS['__DB__'][Context::getDBType()]->is_connected == false) { $this->error = 'msg_dbconnect_failed'; } - // 모듈 동작을 마친 후 trigger call + // Call trigger after moduleHandler proc $output = ModuleHandler::triggerCall('moduleHandler.proc', 'after', $oModule); if(!$output->toBool()) $this->error = $output->getMessage(); - // HTML call 이면 message view 객체 이용하도록 + // Use message view object, if HTML call if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { - // 에러가 발생하였을시 처리 + // If error occurred, handle it if($this->error) { - // message 모듈 객체를 생성해서 컨텐츠 생성 + // display content with message module instance $oMessageView = &getView('message'); $oMessageView->setError(-1); $oMessageView->setMessage($this->error); $oMessageView->dispMessage(); - // 정상적으로 호출된 객체가 있을 경우 해당 객체의 template를 변경 + // If module was called normally, change the templates of the module into ones of the message view module if($oModule) { $oModule->setTemplatePath($oMessageView->getTemplatePath()); $oModule->setTemplateFile($oMessageView->getTemplateFile()); - // 그렇지 않으면 message 객체를 호출된 객체로 지정 + // Otherwise, set message instance as the target module } else { $oModule = $oMessageView; } } - // 해당 모듈에 layout_srl이 있는지 확인 + // Check if layout_srl exists for the module if($oModule->module_info->layout_srl && !$oModule->getLayoutFile()) { - // layout_srl이 있으면 해당 레이아웃 정보를 가져와 layout_path/ layout_file 위치 변경 + // If layout_srl exists, get information of the layout, and set the location of layout_path/ layout_file $oLayoutModel = &getModel('layout'); $layout_info = $oLayoutModel->getLayout($oModule->module_info->layout_srl); if($layout_info) { - // 레이아웃 정보중 extra_vars의 이름과 값을 $layout_info에 입력 + // Input extra_vars into $layout_info if($layout_info->extra_var_count) { foreach($layout_info->extra_var as $var_id => $val) { @@ -286,7 +281,7 @@ $layout_info->{$var_id} = $val->value; } } - // 레이아웃 정보중 menu를 Context::set + // Set menus into context if($layout_info->menu_count) { foreach($layout_info->menu as $menu_id => $menu) { if(file_exists($menu->php_file)) @include($menu->php_file); @@ -294,33 +289,40 @@ } } - // 레이아웃 정보를 Context::set + // Set layout information into context Context::set('layout_info', $layout_info); $oModule->setLayoutPath($layout_info->path); $oModule->setLayoutFile('layout'); - // 레이아웃이 수정되었을 경우 수정본을 지정 + // If layout was modified, use the modified version $edited_layout = $oLayoutModel->getUserLayoutHtml($layout_info->layout_srl); if(file_exists($edited_layout)) $oModule->setEditedLayoutFile($edited_layout); } } } - // 컨텐츠 출력 + // Display contents $oDisplayHandler = new DisplayHandler(); $oDisplayHandler->printContent($oModule); } /** - * @brief module의 위치를 찾아서 return + * @brief returns module's path + * @param[in] $module module name + * @return path of the module **/ function getModulePath($module) { return sprintf('./modules/%s/', $module); } /** - * @brief 모듈 객체를 생성함 + * @brief It creates a module instance + * @param[in] $module module name + * @param[in] $type instance type, (e.g., view, controller, model) + * @param[in] $kind admin or svc + * @return module instance (if failed it returns null) + * @remarks if there exists a module instance created before, returns it. **/ function &getModuleInstance($module, $type = 'view', $kind = '') { $class_path = ModuleHandler::getModulePath($module); @@ -330,21 +332,17 @@ if($kind != 'admin') $kind = 'svc'; - // global 변수에 미리 생성해 둔 객체가 없으면 새로 생성 + // if there is no instance of the module in global variable, create a new one if(!$GLOBALS['_loaded_module'][$module][$type][$kind]) { - /** - * 모듈의 위치를 파악 - **/ - - // 상위 클래스명 구함 + // Get base class name and load the file contains it if(!class_exists($module)) { $high_class_file = sprintf('%s%s%s.class.php', _XE_PATH_,$class_path, $module); if(!file_exists($high_class_file)) return NULL; require_once($high_class_file); } - // 객체의 이름을 구함 + // Get the object's name switch($type) { case 'controller' : if($kind == 'admin') { @@ -392,40 +390,44 @@ break; } - // 클래스 파일의 이름을 구함 + // Get the name of the class file if(!file_exists($class_file)) return NULL; - // eval로 객체 생성 + // Create an instance with eval function require_once($class_file); $eval_str = sprintf('$oModule = new %s();', $instance_name); @eval($eval_str); if(!is_object($oModule)) return NULL; - // 해당 위치에 속한 lang 파일을 읽음 + // Load language files for the class Context::loadLang($class_path.'lang'); - // 생성된 객체에 자신이 호출된 위치를 세팅해줌 + // Set variables to the instance $oModule->setModule($module); $oModule->setModulePath($class_path); - // 요청된 module에 constructor가 있으면 실행 + // If the module has a constructor, run it. if(!isset($GLOBALS['_called_constructor'][$instance_name])) { $GLOBALS['_called_constructor'][$instance_name] = true; if(@method_exists($oModule, $instance_name)) $oModule->{$instance_name}(); } - // GLOBALS 변수에 생성된 객체 저장 + // Store the created instance into GLOBALS variable $GLOBALS['_loaded_module'][$module][$type][$kind] = $oModule; } if(__DEBUG__==3) $GLOBALS['__elapsed_class_load__'] += getMicroTime() - $start_time; - // 객체 리턴 + // return the instance return $GLOBALS['_loaded_module'][$module][$type][$kind]; } /** - * @brief trigger_name, called_position을 주고 trigger 호출 + * @brief call a trigger + * @param[in] $trigger_name trigger's name to call + * @param[in] $called_position called position + * @param[in] $obj an object as a parameter to trigger + * @return Object **/ function triggerCall($trigger_name, $called_position, &$obj) { // 설치가 안되어 있다면 trigger call을 하지 않고 바로 return From e97407dc1fd3a3e4941d1259841d8b568dde7bd7 Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 20 Oct 2009 11:03:43 +0000 Subject: [PATCH 18/72] #18366896 : fixed a bug occurred when non-modules are put into modules directory git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6879 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/module/ModuleHandler.class.php | 4 ++-- modules/module/module.model.php | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 63284b2a3..890abc6d7 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -334,7 +334,6 @@ // if there is no instance of the module in global variable, create a new one if(!$GLOBALS['_loaded_module'][$module][$type][$kind]) { - // Get base class name and load the file contains it if(!class_exists($module)) { $high_class_file = sprintf('%s%s%s.class.php', _XE_PATH_,$class_path, $module); @@ -395,6 +394,7 @@ // Create an instance with eval function require_once($class_file); + if(!class_exists($instance_name)) return NULL; $eval_str = sprintf('$oModule = new %s();', $instance_name); @eval($eval_str); if(!is_object($oModule)) return NULL; @@ -430,7 +430,7 @@ * @return Object **/ function triggerCall($trigger_name, $called_position, &$obj) { - // 설치가 안되어 있다면 trigger call을 하지 않고 바로 return + // skip if not installed if(!Context::isInstalled()) return new Object(); $oModuleModel = &getModel('module'); diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 963eb36ec..dd9d34d11 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -949,7 +949,13 @@ // 각 모듈의 module.class.php로 upgrade 유무 체크 $oDummy = null; $oDummy = &getModule($module_name, 'class'); - if($oDummy) $info->need_update = $oDummy->checkUpdate(); + if($oDummy && method_exists($oDummy, "checkUpdate")) { + $info->need_update = $oDummy->checkUpdate(); + } + else + { + continue; + } $list[] = $info; } From ab2e480517651e72e45c0c2bdef1a4e54778f266 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 21 Oct 2009 04:48:07 +0000 Subject: [PATCH 19/72] #18065388 : though ssl_port is not assigned, if current port is set as non-default port, do not remove url-port git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6880 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/context/Context.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 00df330f0..b8325a02b 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -955,7 +955,7 @@ if(Context::get("_https_port") && Context::get("_https_port") != 443) { $url_info['port'] = Context::get("_https_port"); } - else + elseif($url_info['port']==443) { unset($url_info['port']); } From 2c76ce07575984fb3a9f32ad354f03d4c85b9130 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 21 Oct 2009 06:56:35 +0000 Subject: [PATCH 20/72] #18366957 : fixed a bug using wrong port for getting url of different protocol git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6881 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/context/Context.class.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index b8325a02b..002def5c0 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -930,9 +930,11 @@ if(isset($url[$ssl_mode][$domain_key])) return $url[$ssl_mode][$domain_key]; + $current_use_ssl = $_SERVER['HTTPS']=='on' ? true : false; + switch($ssl_mode) { case FOLLOW_REQUEST_SSL : - if($_SERVER['HTTPS']=='on') $use_ssl = true; + if($current_use_ssl) $use_ssl = true; else $use_ssl = false; break; case ENFORCE_SSL : @@ -951,6 +953,12 @@ } $url_info = parse_url('http://'.$target_url); + + if($current_use_ssl != $use_ssl) + { + unset($url_info['port']); + } + if($use_ssl) { if(Context::get("_https_port") && Context::get("_https_port") != 443) { $url_info['port'] = Context::get("_https_port"); From d2506cd19815a672b72052dcc0df0dd00065562a Mon Sep 17 00:00:00 2001 From: taggon Date: Fri, 23 Oct 2009 01:55:27 +0000 Subject: [PATCH 21/72] =?UTF-8?q?=EB=A9=94=EC=8B=9C=EC=A7=80=20=EB=A7=B5?= =?UTF-8?q?=EC=9D=84=20=EC=83=9D=EC=84=B1=ED=95=A0=20=EB=95=8C=20=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=ED=95=98=EB=8A=94=20=EB=B2=84=EA=B7=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6882 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/js/app.js b/common/js/app.js index cf6aa567a..e5a343002 100644 --- a/common/js/app.js +++ b/common/js/app.js @@ -139,7 +139,7 @@ _app_base = { fn._fn = val; if (RegExp.$2) { // is hooker? - if ($.isArray(msgs[RegExp.$1])) msgs[RegExp.$1] = []; + if (!$.isArray(msgs[RegExp.$1])) msgs[RegExp.$1] = []; msgs[RegExp.$1].push(fn); } else { // register only one main function msgs[RegExp.$1] = fn; From 930e6e412766e0279fd54423ebf0af7129a52e63 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 23 Oct 2009 07:31:22 +0000 Subject: [PATCH 22/72] =?UTF-8?q?enforce=5Fssl=EC=9D=B4=20=EC=A0=95?= =?UTF-8?q?=EC=9D=98=EB=90=98=EC=A7=80=20=EC=95=8A=EC=95=98=EC=9D=84=20?= =?UTF-8?q?=EB=95=8C=20=ED=94=8C=EB=9E=98=EC=8B=9C=20=EB=93=B1=20displayMu?= =?UTF-8?q?ltimedia()=EC=9D=B4=20=EB=8F=99=EC=9E=91=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6883 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/js/common.js b/common/js/common.js index 7882dfb78..f88b37db0 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -464,7 +464,7 @@ function _displayMultimedia(src, width, height, options) { } else if(/\.swf/i.test(src)) { clsid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'; - if(typeof(enforce_ssl)=='undefined'){ codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"; } + if(typeof(enforce_ssl)!='undefined' && enforce_ssl){ codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"; } else { codebase = "https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"; } html = ''; html += ''; From 8a9dd100c3d341eddae074df0137179c8f72d7d4 Mon Sep 17 00:00:00 2001 From: ChanMyeong Date: Fri, 23 Oct 2009 08:32:33 +0000 Subject: [PATCH 23/72] =?UTF-8?q?=EB=8B=A8=EB=9D=BD=20=EC=97=90=EB=94=94?= =?UTF-8?q?=ED=84=B0=20'=EC=96=91=EC=AA=BD=20=EC=A0=95=EB=A0=AC=EC=9D=84?= =?UTF-8?q?=20=ED=95=A9=EB=8B=88=EB=8B=A4'=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6884 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/lang/en.lang.php | 1 + modules/editor/lang/es.lang.php | 1 + modules/editor/lang/fr.lang.php | 1 + modules/editor/lang/jp.lang.php | 1 + modules/editor/lang/ko.lang.php | 1 + modules/editor/lang/ru.lang.php | 1 + modules/editor/lang/vi.lang.php | 1 + modules/editor/lang/zh-CN.lang.php | 1 + modules/editor/lang/zh-TW.lang.php | 1 + 9 files changed, 9 insertions(+) diff --git a/modules/editor/lang/en.lang.php b/modules/editor/lang/en.lang.php index 60f0d5fa6..257f21fe6 100644 --- a/modules/editor/lang/en.lang.php +++ b/modules/editor/lang/en.lang.php @@ -118,6 +118,7 @@ $lang->edit->help_align_left = 'Align left'; $lang->edit->help_align_center = 'Align center'; $lang->edit->help_align_right = 'Align right'; + $lang->edit->help_align_justity = 'Align justity'; $lang->edit->help_add_indent = 'Add indent'; $lang->edit->help_remove_indent = 'Remove indent'; $lang->edit->help_list_number = 'Apply number list'; diff --git a/modules/editor/lang/es.lang.php b/modules/editor/lang/es.lang.php index c46b514ea..feae762e0 100644 --- a/modules/editor/lang/es.lang.php +++ b/modules/editor/lang/es.lang.php @@ -114,6 +114,7 @@ $lang->edit->help_align_left = 'Margen izquierdo'; $lang->edit->help_align_center = 'Margen central'; $lang->edit->help_align_right = 'Margen derecho'; + $lang->edit->help_align_justity = 'Align justity'; $lang->edit->help_add_indent = 'Anadir tabulación'; $lang->edit->help_remove_indent = 'Quitar tabulación'; $lang->edit->help_list_number = 'Aplicar la lista con números'; diff --git a/modules/editor/lang/fr.lang.php b/modules/editor/lang/fr.lang.php index f71b8b8d7..97979869d 100644 --- a/modules/editor/lang/fr.lang.php +++ b/modules/editor/lang/fr.lang.php @@ -118,6 +118,7 @@ $lang->edit->help_align_left = 'Aligner à gauche'; $lang->edit->help_align_center = 'Aligner centr'; $lang->edit->help_align_right = 'Aligner droite'; + $lang->edit->help_align_justity = 'Align justity'; $lang->edit->help_add_indent = 'Ajouter un Rentré'; $lang->edit->help_remove_indent = 'Enlever un Rentré'; $lang->edit->help_list_number = 'Appliquer la liste numroté'; diff --git a/modules/editor/lang/jp.lang.php b/modules/editor/lang/jp.lang.php index 335f06888..3fc837310 100644 --- a/modules/editor/lang/jp.lang.php +++ b/modules/editor/lang/jp.lang.php @@ -121,6 +121,7 @@ $lang->edit->help_align_left = 'テキストを左揃えで表示します。'; $lang->edit->help_align_center = 'テキストを中央揃えで表示します。'; $lang->edit->help_align_right = 'テキストを右揃えで表示します。'; + $lang->edit->help_align_justity = 'Align justity'; $lang->edit->help_add_indent = 'インデントを増やします。'; $lang->edit->help_remove_indent = 'インデントを減らします。'; $lang->edit->help_list_number = '番号付リスト'; diff --git a/modules/editor/lang/ko.lang.php b/modules/editor/lang/ko.lang.php index 8f0abe00a..b1932669c 100644 --- a/modules/editor/lang/ko.lang.php +++ b/modules/editor/lang/ko.lang.php @@ -121,6 +121,7 @@ $lang->edit->help_align_left = '왼쪽 정렬을 합니다.'; $lang->edit->help_align_center = '가운데 정렬을 합니다.'; $lang->edit->help_align_right = '오른쪽 정렬을 합니다.'; + $lang->edit->help_align_justity = '양쪽 정렬을 합니다.'; $lang->edit->help_add_indent = '단락의 들여쓰기 수준을 높입니다.'; $lang->edit->help_remove_indent = '단락의 들여쓰기 수준을 낮춥니다.'; $lang->edit->help_list_number = '숫자로된 목록을 적용합니다.'; diff --git a/modules/editor/lang/ru.lang.php b/modules/editor/lang/ru.lang.php index 619eb3137..ac0fe3ca1 100644 --- a/modules/editor/lang/ru.lang.php +++ b/modules/editor/lang/ru.lang.php @@ -114,6 +114,7 @@ $lang->edit->help_align_left = 'Выровнять по левому краю'; $lang->edit->help_align_center = 'Выровнять по центру'; $lang->edit->help_align_right = 'Выровнять по правому краю'; + $lang->edit->help_align_justity = 'Align justity'; $lang->edit->help_add_indent = 'Добавить отступ'; $lang->edit->help_remove_indent = 'Удалить отступ'; $lang->edit->help_list_number = 'Применить числовой список'; diff --git a/modules/editor/lang/vi.lang.php b/modules/editor/lang/vi.lang.php index f6070b0c6..2b09047a6 100644 --- a/modules/editor/lang/vi.lang.php +++ b/modules/editor/lang/vi.lang.php @@ -120,6 +120,7 @@ $lang->edit->help_align_left = 'Căn trái'; $lang->edit->help_align_center = 'Căn giữa'; $lang->edit->help_align_right = 'Căn phải'; + $lang->edit->help_align_justity = 'Align justity'; $lang->edit->help_add_indent = 'Thụt vào'; $lang->edit->help_remove_indent = 'Giãn ra'; $lang->edit->help_list_number = 'Thứ tự số'; diff --git a/modules/editor/lang/zh-CN.lang.php b/modules/editor/lang/zh-CN.lang.php index 36bebace2..2d549d36b 100644 --- a/modules/editor/lang/zh-CN.lang.php +++ b/modules/editor/lang/zh-CN.lang.php @@ -120,6 +120,7 @@ $lang->edit->help_align_left = '左对齐'; $lang->edit->help_align_center = '居中对齐'; $lang->edit->help_align_right = '右对齐'; + $lang->edit->help_align_justity = 'Align justity'; $lang->edit->help_add_indent = '增加缩进'; $lang->edit->help_remove_indent = '减少缩进'; $lang->edit->help_list_number = '有序列表'; diff --git a/modules/editor/lang/zh-TW.lang.php b/modules/editor/lang/zh-TW.lang.php index 1f44edcba..3722ce614 100644 --- a/modules/editor/lang/zh-TW.lang.php +++ b/modules/editor/lang/zh-TW.lang.php @@ -121,6 +121,7 @@ $lang->edit->help_align_left = '靠左對齊'; $lang->edit->help_align_center = '置中對齊'; $lang->edit->help_align_right = '靠右對齊'; + $lang->edit->help_align_justity = 'Align justity'; $lang->edit->help_add_indent = '縮排'; $lang->edit->help_remove_indent = '凸排'; $lang->edit->help_list_number = '編號'; From 3bd1548d7b7395b164bad3937b39724919c64409 Mon Sep 17 00:00:00 2001 From: ChanMyeong Date: Fri, 23 Oct 2009 08:36:56 +0000 Subject: [PATCH 24/72] =?UTF-8?q?=EB=8B=A8=EB=9D=BD=20=EC=97=90=EB=94=94?= =?UTF-8?q?=ED=84=B0=20'=EC=96=91=EC=AA=BD=20=EC=A0=95=EB=A0=AC=EC=9D=84?= =?UTF-8?q?=20=ED=95=A9=EB=8B=88=EB=8B=A4'=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6885 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/lang/en.lang.php | 2 +- modules/editor/lang/es.lang.php | 2 +- modules/editor/lang/fr.lang.php | 2 +- modules/editor/lang/jp.lang.php | 2 +- modules/editor/lang/ko.lang.php | 2 +- modules/editor/lang/ru.lang.php | 2 +- modules/editor/lang/vi.lang.php | 2 +- modules/editor/lang/zh-CN.lang.php | 2 +- modules/editor/lang/zh-TW.lang.php | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/editor/lang/en.lang.php b/modules/editor/lang/en.lang.php index 257f21fe6..a1f832bc6 100644 --- a/modules/editor/lang/en.lang.php +++ b/modules/editor/lang/en.lang.php @@ -118,7 +118,7 @@ $lang->edit->help_align_left = 'Align left'; $lang->edit->help_align_center = 'Align center'; $lang->edit->help_align_right = 'Align right'; - $lang->edit->help_align_justity = 'Align justity'; + $lang->edit->help_align_justify = 'Align justity'; $lang->edit->help_add_indent = 'Add indent'; $lang->edit->help_remove_indent = 'Remove indent'; $lang->edit->help_list_number = 'Apply number list'; diff --git a/modules/editor/lang/es.lang.php b/modules/editor/lang/es.lang.php index feae762e0..4c9614c6b 100644 --- a/modules/editor/lang/es.lang.php +++ b/modules/editor/lang/es.lang.php @@ -114,7 +114,7 @@ $lang->edit->help_align_left = 'Margen izquierdo'; $lang->edit->help_align_center = 'Margen central'; $lang->edit->help_align_right = 'Margen derecho'; - $lang->edit->help_align_justity = 'Align justity'; + $lang->edit->help_align_justify = 'Align justity'; $lang->edit->help_add_indent = 'Anadir tabulación'; $lang->edit->help_remove_indent = 'Quitar tabulación'; $lang->edit->help_list_number = 'Aplicar la lista con números'; diff --git a/modules/editor/lang/fr.lang.php b/modules/editor/lang/fr.lang.php index 97979869d..15f814d1a 100644 --- a/modules/editor/lang/fr.lang.php +++ b/modules/editor/lang/fr.lang.php @@ -118,7 +118,7 @@ $lang->edit->help_align_left = 'Aligner à gauche'; $lang->edit->help_align_center = 'Aligner centr'; $lang->edit->help_align_right = 'Aligner droite'; - $lang->edit->help_align_justity = 'Align justity'; + $lang->edit->help_align_justify = 'Align justity'; $lang->edit->help_add_indent = 'Ajouter un Rentré'; $lang->edit->help_remove_indent = 'Enlever un Rentré'; $lang->edit->help_list_number = 'Appliquer la liste numroté'; diff --git a/modules/editor/lang/jp.lang.php b/modules/editor/lang/jp.lang.php index 3fc837310..2aa2c0dbc 100644 --- a/modules/editor/lang/jp.lang.php +++ b/modules/editor/lang/jp.lang.php @@ -121,7 +121,7 @@ $lang->edit->help_align_left = 'テキストを左揃えで表示します。'; $lang->edit->help_align_center = 'テキストを中央揃えで表示します。'; $lang->edit->help_align_right = 'テキストを右揃えで表示します。'; - $lang->edit->help_align_justity = 'Align justity'; + $lang->edit->help_align_justify = 'Align justity'; $lang->edit->help_add_indent = 'インデントを増やします。'; $lang->edit->help_remove_indent = 'インデントを減らします。'; $lang->edit->help_list_number = '番号付リスト'; diff --git a/modules/editor/lang/ko.lang.php b/modules/editor/lang/ko.lang.php index b1932669c..06f953cea 100644 --- a/modules/editor/lang/ko.lang.php +++ b/modules/editor/lang/ko.lang.php @@ -121,7 +121,7 @@ $lang->edit->help_align_left = '왼쪽 정렬을 합니다.'; $lang->edit->help_align_center = '가운데 정렬을 합니다.'; $lang->edit->help_align_right = '오른쪽 정렬을 합니다.'; - $lang->edit->help_align_justity = '양쪽 정렬을 합니다.'; + $lang->edit->help_align_justify = '양쪽 정렬을 합니다.'; $lang->edit->help_add_indent = '단락의 들여쓰기 수준을 높입니다.'; $lang->edit->help_remove_indent = '단락의 들여쓰기 수준을 낮춥니다.'; $lang->edit->help_list_number = '숫자로된 목록을 적용합니다.'; diff --git a/modules/editor/lang/ru.lang.php b/modules/editor/lang/ru.lang.php index ac0fe3ca1..5241fe718 100644 --- a/modules/editor/lang/ru.lang.php +++ b/modules/editor/lang/ru.lang.php @@ -114,7 +114,7 @@ $lang->edit->help_align_left = 'Выровнять по левому краю'; $lang->edit->help_align_center = 'Выровнять по центру'; $lang->edit->help_align_right = 'Выровнять по правому краю'; - $lang->edit->help_align_justity = 'Align justity'; + $lang->edit->help_align_justify = 'Align justity'; $lang->edit->help_add_indent = 'Добавить отступ'; $lang->edit->help_remove_indent = 'Удалить отступ'; $lang->edit->help_list_number = 'Применить числовой список'; diff --git a/modules/editor/lang/vi.lang.php b/modules/editor/lang/vi.lang.php index 2b09047a6..d7e7a2a46 100644 --- a/modules/editor/lang/vi.lang.php +++ b/modules/editor/lang/vi.lang.php @@ -120,7 +120,7 @@ $lang->edit->help_align_left = 'Căn trái'; $lang->edit->help_align_center = 'Căn giữa'; $lang->edit->help_align_right = 'Căn phải'; - $lang->edit->help_align_justity = 'Align justity'; + $lang->edit->help_align_justify = 'Align justity'; $lang->edit->help_add_indent = 'Thụt vào'; $lang->edit->help_remove_indent = 'Giãn ra'; $lang->edit->help_list_number = 'Thứ tự số'; diff --git a/modules/editor/lang/zh-CN.lang.php b/modules/editor/lang/zh-CN.lang.php index 2d549d36b..f87412f3f 100644 --- a/modules/editor/lang/zh-CN.lang.php +++ b/modules/editor/lang/zh-CN.lang.php @@ -120,7 +120,7 @@ $lang->edit->help_align_left = '左对齐'; $lang->edit->help_align_center = '居中对齐'; $lang->edit->help_align_right = '右对齐'; - $lang->edit->help_align_justity = 'Align justity'; + $lang->edit->help_align_justify = 'Align justity'; $lang->edit->help_add_indent = '增加缩进'; $lang->edit->help_remove_indent = '减少缩进'; $lang->edit->help_list_number = '有序列表'; diff --git a/modules/editor/lang/zh-TW.lang.php b/modules/editor/lang/zh-TW.lang.php index 3722ce614..88877e232 100644 --- a/modules/editor/lang/zh-TW.lang.php +++ b/modules/editor/lang/zh-TW.lang.php @@ -121,7 +121,7 @@ $lang->edit->help_align_left = '靠左對齊'; $lang->edit->help_align_center = '置中對齊'; $lang->edit->help_align_right = '靠右對齊'; - $lang->edit->help_align_justity = 'Align justity'; + $lang->edit->help_align_justify = 'Align justity'; $lang->edit->help_add_indent = '縮排'; $lang->edit->help_remove_indent = '凸排'; $lang->edit->help_list_number = '編號'; From d62479cbf2aa5b28f0e3ced8f61980a01711b893 Mon Sep 17 00:00:00 2001 From: taggon Date: Fri, 23 Oct 2009 08:47:40 +0000 Subject: [PATCH 25/72] =?UTF-8?q?=EC=83=9D=EC=84=B1=EC=9E=90=EB=A5=BC=20$i?= =?UTF-8?q?nit=20->=20init=20=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20(PH?= =?UTF-8?q?P=20=EB=AC=B8=EB=B2=95=EC=97=90=20=EB=94=B0=EB=9D=BC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6886 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/js/app.js b/common/js/app.js index e5a343002..709f43edb 100644 --- a/common/js/app.js +++ b/common/js/app.js @@ -278,7 +278,7 @@ function getTypeBase() { if ($.isArray(this._messages)) this._messages = []; if ($.isArray(this._binded_fn)) this._binded_fn = []; - if ($.isFunction(this.$init)) { + if ($.isFunction(this.init)) { this.$init.apply(this, arguments); } }; From 24e95aa472936d8efcd17a98c512a7be30f4d4ff Mon Sep 17 00:00:00 2001 From: royallin Date: Sat, 24 Oct 2009 03:30:50 +0000 Subject: [PATCH 26/72] Chinese traditional translation git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6887 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../multimedia_link/lang/zh-TW.lang.php | 4 ++ modules/editor/lang/zh-TW.lang.php | 64 +++++++++---------- 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/modules/editor/components/multimedia_link/lang/zh-TW.lang.php b/modules/editor/components/multimedia_link/lang/zh-TW.lang.php index ec32d25db..76f34f417 100644 --- a/modules/editor/components/multimedia_link/lang/zh-TW.lang.php +++ b/modules/editor/components/multimedia_link/lang/zh-TW.lang.php @@ -10,4 +10,8 @@ $lang->multimedia_width = "寬度"; $lang->multimedia_height = "高度"; $lang->multimedia_auto_start = "自動播放"; + + $lang->multimedia_wmode_window = '總是在上'; + $lang->multimedia_wmode_opaque = '背景不透明'; + $lang->multimedia_wmode_transparent = '透明背景'; ?> diff --git a/modules/editor/lang/zh-TW.lang.php b/modules/editor/lang/zh-TW.lang.php index 88877e232..7aac102f2 100644 --- a/modules/editor/lang/zh-TW.lang.php +++ b/modules/editor/lang/zh-TW.lang.php @@ -18,7 +18,7 @@ $lang->component_grant = '權限設置'; $lang->content_style = '內容樣式'; $lang->content_font = '內容字體'; - $lang->content_font_size = '문서 폰트 크기'; + $lang->content_font_size = '字體大小'; $lang->about_component = '組件簡介'; $lang->about_component_grant = '除預設組件外,可設置延伸組件的使用權限
(全部解除時,任何用戶都可使用)。'; @@ -44,9 +44,9 @@ $lang->editor_height = '編輯器高度'; $lang->about_editor_skin = '選擇編輯器面板。'; - $lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다'; - $lang->about_content_font = '문서 편집 및 내용 출력시 원하는 폰트를 지정할 수 있습니다.
지정하지 않으면 사용자 설정에 따르게 됩니다
,(콤마)로 여러 폰트를 지정할 수 있습니다.'; - $lang->about_content_font_size = '문서 편집 및 내용 출력시 원하는 폰트의 크기를 지정할 수 있습니다.
12px, 1em등 단위까지 포함해서 입력해주세요.'; + $lang->about_content_style = '修改內容時,可指定要顯示的內容樣式'; + $lang->about_content_font = '修改內容時,可指定要顯示的內容字體。
如果沒有指定的話,以系統預設為主。
以,(逗號)區分多個字體。'; + $lang->about_content_font_size = '修改內容時,可指定要顯示的內容字體大小。
請輸入單位,像是12px, 1em等。'; $lang->about_upload_file_grant = '設置上傳檔案的權限(全部解除為無限制)。'; $lang->about_default_component_grant = '設置編輯器預設組件的使用權限(全部解除為無限制)。'; $lang->about_editor_height = '指定編輯器的預設高度。'; @@ -58,18 +58,18 @@ $lang->edit->fontsize = '大小'; $lang->edit->use_paragraph = '段落功能'; $lang->edit->fontlist = array( - '新細明體'=>'新細明體', - '標楷體'=>'標楷體', - '細明體'=>'細明體', - 'Arial'=>'Arial', - 'Arial Black'=>'Arial Black', - 'Tahoma'=>'Tahoma', - 'Verdana'=>'Verdana', - 'Sans-serif'=>'Sans-serif', - 'Serif'=>'Serif', - 'Monospace'=>'Monospace', - 'Cursive'=>'Cursive', - 'Fantasy'=>'Fantasy', + '新細明體' => '新細明體', + '標楷體' => '標楷體', + '細明體' => '細明體', + 'Arial' => 'Arial', + 'Arial Black' => 'Arial Black', + 'Tahoma' => 'Tahoma', + 'Verdana' => 'Verdana', + 'Sans-serif' => 'Sans-serif', + 'Serif' => 'Serif', + 'Monospace' => 'Monospace', + 'Cursive' => 'Cursive', + 'Fantasy' => 'Fantasy', ); $lang->edit->header = '樣式'; @@ -121,7 +121,7 @@ $lang->edit->help_align_left = '靠左對齊'; $lang->edit->help_align_center = '置中對齊'; $lang->edit->help_align_right = '靠右對齊'; - $lang->edit->help_align_justify = 'Align justity'; + $lang->edit->help_align_justify = '左右對齊'; $lang->edit->help_add_indent = '縮排'; $lang->edit->help_remove_indent = '凸排'; $lang->edit->help_list_number = '編號'; @@ -206,27 +206,27 @@ $lang->edit->next_search_words = '搜尋下一個'; $lang->edit->edit_height_control = '設定大小'; - $lang->edit->merge_cells = '分割儲存格'; - $lang->edit->split_row = '插入行'; - $lang->edit->split_col = '插入列'; + $lang->edit->merge_cells = '合併儲存格'; + $lang->edit->split_row = '分割行'; + $lang->edit->split_col = '分割列'; - $lang->edit->toggle_list = '목록 접기/펼치기'; - $lang->edit->minimize_list = '최소화'; + $lang->edit->toggle_list = '摺疊/展開'; + $lang->edit->minimize_list = '最小化'; - $lang->edit->move = '이동'; - $lang->edit->refresh = 'Refresh'; + $lang->edit->move = '搬移'; + $lang->edit->refresh = '重整'; $lang->edit->materials = '글감보관함'; - $lang->edit->temporary_savings = '임시저장목록'; + $lang->edit->temporary_savings = '暫存檔列表'; $lang->edit->drag_here = '아래의 단락추가 툴바에서 원하는 유형의 단락을 추가해 글 쓰기를 시작하세요.
글감 보관함에 글이 있으면 이곳으로 끌어 넣기 할 수 있습니다.'; - $lang->edit->paging_prev = '이전'; - $lang->edit->paging_next = '다음'; - $lang->edit->paging_prev_help = '이전 페이지로 이동합니다.'; - $lang->edit->paging_next_help = '다음 페이지로 이동합니다.'; + $lang->edit->paging_prev = '前頁'; + $lang->edit->paging_next = '次頁'; + $lang->edit->paging_prev_help = '往上一頁'; + $lang->edit->paging_next_help = '往下一頁'; - $lang->edit->toc = '목차'; - $lang->edit->close_help = '도움말 닫기'; + $lang->edit->toc = '目錄'; + $lang->edit->close_help = '關閉使用手冊'; - $lang->edit->confirm_submit_without_saving = '저장하지 않은 단락이 있습니다.\\n그냥 전송하시겠습니까?'; + $lang->edit->confirm_submit_without_saving = '有內容尚未儲存。\\n是否要繼續進行?'; ?> From ac8c0941a70b6d549b47e361c8a78927d796f643 Mon Sep 17 00:00:00 2001 From: haneul Date: Mon, 26 Oct 2009 04:51:20 +0000 Subject: [PATCH 27/72] #18390995 : remove redundant query git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6888 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/module/module.model.php | 2 +- modules/module/queries/getSiteDefaultInfo.xml | 17 ----------------- 2 files changed, 1 insertion(+), 18 deletions(-) delete mode 100644 modules/module/queries/getSiteDefaultInfo.xml diff --git a/modules/module/module.model.php b/modules/module/module.model.php index dd9d34d11..cb6981730 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -82,7 +82,7 @@ $hostname = $url_info['host']; $path = preg_replace('/\/$/','',$url_info['path']); $sites_args->domain = sprintf('%s%s%s', $hostname, $url_info['port']&&$url_info['port']!=80?':'.$url_info['port']:'',$path); - $output = executeQuery('module.getSiteDefaultInfo', $sites_args); + $output = executeQuery('module.getSiteInfoByDomain', $sites_args); } else { if(!$vid) $vid = $mid; if($vid) { diff --git a/modules/module/queries/getSiteDefaultInfo.xml b/modules/module/queries/getSiteDefaultInfo.xml deleted file mode 100644 index 8dd76137d..000000000 --- a/modules/module/queries/getSiteDefaultInfo.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - -
- - - - - - - - - - - - - From df63050e7da6b5cbe3d1d4e981139a3b9ec6f525 Mon Sep 17 00:00:00 2001 From: haneul Date: Mon, 26 Oct 2009 08:45:51 +0000 Subject: [PATCH 28/72] #18398490 : modify ereg to preg_match and fix matching RE git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6889 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/module/module.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/module/module.controller.php b/modules/module/module.controller.php index d205a269d..fcea72e66 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -156,7 +156,7 @@ unset($args->page); // mid값 검사 - if(!ereg("^[a-zA-Z][a-zA-Z0-9_]+", $args->mid)) return new Object(-1, 'msg_limit_mid'); + if(!preg_match("/^[a-z][a-z0-9_]+$/i", $args->mid)) return new Object(-1, 'msg_limit_mid'); // 변수를 검사 (modules의 기본 변수와 그렇지 않은 변수로 분리) $extra_vars = clone($args); From 85dec0c33a2a509241c53ffa235c29ee25cd7802 Mon Sep 17 00:00:00 2001 From: misol Date: Mon, 26 Oct 2009 13:44:08 +0000 Subject: [PATCH 29/72] =?UTF-8?q?r6883=20=EB=B3=B4=EC=99=84=20(enforce=5Fs?= =?UTF-8?q?sl=EC=9D=80=20=EA=B0=95=EC=A0=9C=20SSL=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=9D=BC=20=EB=95=8C=20=EB=82=98=ED=83=80=EB=82=A8.=20?= =?UTF-8?q?=EB=94=B0=EB=9D=BC=EC=84=9C=20enforce=5Fssl=EC=9D=B4=20?= =?UTF-8?q?=EC=A1=B4=EC=9E=AC=ED=95=98=EB=A9=B4=20https=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=86=A0=EC=BD=9C=EC=9D=84=20=EC=9D=B4=EC=9A=A9...)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6890 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index f88b37db0..e5f128d1e 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -464,8 +464,8 @@ function _displayMultimedia(src, width, height, options) { } else if(/\.swf/i.test(src)) { clsid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'; - if(typeof(enforce_ssl)!='undefined' && enforce_ssl){ codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"; } - else { codebase = "https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"; } + if(typeof(enforce_ssl)!='undefined' && enforce_ssl){ codebase = "https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"; } + else { codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"; } html = ''; html += ''; for(var name in params) { From 2ccd275fb5a35b846064c06c2db10527feb926ce Mon Sep 17 00:00:00 2001 From: haneul Date: Mon, 26 Oct 2009 17:57:37 +0000 Subject: [PATCH 30/72] fixed typo (complie => compile) git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6891 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/widget/widget.controller.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index 956d631d9..a4943c85a 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -624,7 +624,7 @@ // 위젯 스타일을 컴파일 한다. - if($args->widgetstyle) $widget_content_body = $this->complieWidgetStyle($args->widgetstyle,$widget, $widget_content_body, $args, $javascript_mode); + if($args->widgetstyle) $widget_content_body = $this->compileWidgetStyle($args->widgetstyle,$widget, $widget_content_body, $args, $javascript_mode); $output = $widget_content_header . $widget_content_body . $widget_content_footer; @@ -666,7 +666,7 @@ } - function complieWidgetStyle($widgetStyle,$widget,$widget_content_body, $args, $javascript_mode){ + function compileWidgetStyle($widgetStyle,$widget,$widget_content_body, $args, $javascript_mode){ if(!$widgetStyle) return $widget_content_body; $oWidgetModel = &getModel('widget'); From d4f35bb906404c630a1eb38bbbcd3c07ae86566b Mon Sep 17 00:00:00 2001 From: taggon Date: Tue, 27 Oct 2009 02:34:10 +0000 Subject: [PATCH 31/72] =?UTF-8?q?1.=20JS=20App=20Framework=EC=9D=84=20?= =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=8A=B8?= =?UTF-8?q?=EB=A1=9C=20=EC=B6=94=EA=B0=80=202.=20autolink=20=EC=95=A0?= =?UTF-8?q?=EB=93=9C=EC=98=A8=EC=9D=84=20JS-App=EC=97=90=20=EB=A7=9E?= =?UTF-8?q?=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6892 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/autolink.js | 69 ++++++++++++++++++------------- classes/context/Context.class.php | 1 + common/js/{app.js => js_app.js} | 2 +- 3 files changed, 42 insertions(+), 30 deletions(-) rename common/js/{app.js => js_app.js} (99%) diff --git a/addons/autolink/autolink.js b/addons/autolink/autolink.js index 59e5dc43d..4fec3010a 100644 --- a/addons/autolink/autolink.js +++ b/addons/autolink/autolink.js @@ -1,36 +1,47 @@ +(function($){ + var url_regex = /((http|https|ftp|news|telnet|irc):\/\/(([0-9a-z\-._~!$&'\(\)*+,;=:]|(%[0-9a-f]{2}))*\@)?((\[(((([0-9a-f]{1,4}:){6}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(::([0-9a-f]{1,4}:){5}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(([0-9a-f]{1,4})?::([0-9a-f]{1,4}:){4}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){2}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4})|((([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::))|(v[0-9a-f]+.[0-9a-z\-._~!$&'\(\)*+,;=:]+))\])|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))|(([0-9a-z\-._~!$&'\(\)*+,;=]|(%[0-9a-f]{2}))+))(:[0-9]*)?(\/([0-9a-z\-._~!$&'\(\)*+,;=:@]|(%[0-9a-f]{2}))*)*(\?([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?(#([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?)/i; -jQuery(function($) { - var url_regx = /((http|https|ftp|news|telnet|irc):\/\/(([0-9a-z\-._~!$&'\(\)*+,;=:]|(%[0-9a-f]{2}))*\@)?((\[(((([0-9a-f]{1,4}:){6}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(::([0-9a-f]{1,4}:){5}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(([0-9a-f]{1,4})?::([0-9a-f]{1,4}:){4}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){2}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4})|((([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::))|(v[0-9a-f]+.[0-9a-z\-._~!$&'\(\)*+,;=:]+))\])|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))|(([0-9a-z\-._~!$&'\(\)*+,;=]|(%[0-9a-f]{2}))+))(:[0-9]*)?(\/([0-9a-z\-._~!$&'\(\)*+,;=:@]|(%[0-9a-f]{2}))*)*(\?([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?(#([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?)/i; + var AutoLink = xe.createPlugin("autolink", { + targets : [], + init : function() { + this.targets = []; + }, + API_ONREADY : function() { + var thisPlugin = this; - function replaceHrefLink(obj) { - var obj_list = obj.childNodes; + // extract target text nodes + this.extractTargets($('.xe_content')); - for(var i = 0; i < obj_list.length; ++i) { - var obj = obj_list[i]; - var pObj = obj.parentNode; - if(!pObj) continue; + $(this.targets).each(function(){ + if (!url_regex.test(this.nodeValue)) return true; + thisPlugin.cast('AUTOLINK', [this]); + }); + }, + API_AUTOLINK : function(oSender, params) { + var textNode = params[0]; + var content = textNode.nodeValue; - var pN = pObj.nodeName.toLowerCase(); - if($.inArray(pN, ['a', 'pre', 'xml', 'textarea', 'input', 'select', 'option', 'code', 'script', 'style']) != -1) continue; + content = content.replace(//g, '>'); + content = content.replace(url_regex, '$1'); - if(obj.nodeType == 3 && obj.length >= 10) { - var content = obj.nodeValue; - if(!/(http|https|ftp|news|telnet|irc):\/\//i.test(content)) continue; + $(textNode).replaceWith(params[0] = $(content)); + }, + extractTargets : function(obj) { + var thisPlugin = this; - content = content.replace(//g, '>'); - content = content.replace(url_regx, '$1'); + $(obj) + .contents() + .each(function(){ + if (!$(this).is('a,pre,xml,code,script,style,:input')) { + if (this.nodeType == 3) { // text node + thisPlugin.targets.push(this); + } else { + thisPlugin.extractTargets(this); + } + } + }); + } + }); - $(obj).replaceWith(content); - delete(content); - - } else if(obj.nodeType == 1 && obj.childNodes.length) { - replaceHrefLink(obj); - } - } - } - - $('.xe_content').each(function() { - replaceHrefLink(this); - }); -}); + xe.registerPlugin(new AutoLink()); +})(jQuery); \ No newline at end of file diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 002def5c0..a16fafdb6 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -163,6 +163,7 @@ $this->addJsFile("./common/js/jquery.js"); $this->addJsFile("./common/js/x.js"); $this->addJsFile("./common/js/common.js"); + $this->addJsFile("./common/js/js_app.js"); $this->addJsFile("./common/js/xml_handler.js"); $this->addJsFile("./common/js/xml_js_filter.js"); $this->addCSSFile("./common/css/default.css"); diff --git a/common/js/app.js b/common/js/js_app.js similarity index 99% rename from common/js/app.js rename to common/js/js_app.js index 709f43edb..fb5d620d1 100644 --- a/common/js/app.js +++ b/common/js/js_app.js @@ -279,7 +279,7 @@ function getTypeBase() { if ($.isArray(this._binded_fn)) this._binded_fn = []; if ($.isFunction(this.init)) { - this.$init.apply(this, arguments); + this.init.apply(this, arguments); } }; From 9b10cc2df11d1628f671c773f48a0e6e3670638c Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 27 Oct 2009 05:24:09 +0000 Subject: [PATCH 32/72] #18400372 : Context close in xml cache codes git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6893 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/document/document.controller.php | 3 ++- modules/menu/menu.admin.controller.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index fcd639545..6e1fee85f 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -1287,7 +1287,8 @@ 'header("Cache-Control: post-check=0, pre-check=0", false); '. 'header("Pragma: no-cache"); '. '%s'. - '%s'. + '%s '. + '$oContext->close();'. '?>'. '%s', $header_script, diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php index 6e172b38d..db299b87c 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -411,7 +411,8 @@ 'header("Cache-Control: no-store, no-cache, must-revalidate"); '. 'header("Cache-Control: post-check=0, pre-check=0", false); '. 'header("Pragma: no-cache"); '. - '%s'. + '%s '. + '$oContext->close(); '. '?>'. '%s', $header_script, From 39f7316ee9ba19c15e0f551b2af888f05284d497 Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 27 Oct 2009 07:25:15 +0000 Subject: [PATCH 33/72] #18265518 : do not decode not-encoded strings git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6894 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/widget/widget.controller.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index a4943c85a..db75700cf 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -69,7 +69,7 @@ $attribute = $this->arrangeWidgetVars($widget, Context::getRequestVars(), $vars); // 결과물을 구함 - $widget_code = $this->execute($widget, $vars, true); + $widget_code = $this->execute($widget, $vars, true, false); $this->add('widget_code', $widget_code); } @@ -437,7 +437,7 @@ * * $javascript_mode가 true일 경우 페이지 수정시 위젯 핸들링을 위한 코드까지 포함함 **/ - function execute($widget, $args, $javascript_mode = false) { + function execute($widget, $args, $javascript_mode = false, $escaped = true) { // 디버그를 위한 위젯 실행 시간 저장 if(__DEBUG__==3) $start = getMicroTime(); @@ -446,7 +446,7 @@ if(count($object_vars)) { foreach($object_vars as $key => $val) { if(in_array($key, array('widgetbox_content','body','class','style','widget_sequence','widget','widget_padding_left','widget_padding_top','widget_padding_bottom','widget_padding_right','widgetstyle','document_srl'))) continue; - $args->{$key} = utf8RawUrlDecode($val); + if($escaped) $args->{$key} = utf8RawUrlDecode($val); } } From f670f90237102335a4e3cb32ebfcd61e10685f7d Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 27 Oct 2009 16:33:46 +0000 Subject: [PATCH 34/72] English translation git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6895 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/page/PageHandler.class.php | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/classes/page/PageHandler.class.php b/classes/page/PageHandler.class.php index 5dd920731..3620e1ef1 100644 --- a/classes/page/PageHandler.class.php +++ b/classes/page/PageHandler.class.php @@ -2,25 +2,29 @@ /** * @class PageHandler * @author zero (zero@nzeo.com) - * @brief 페이지 네비게이션 담당 + * @brief handles page navigation * @version 0.1 * - * 전체갯수, 전체페이지, 현재페이지, 페이지당 목록의 수를 넘겨주면 \n - * 페이지 네비게이션에 필요한 variables와 method를 구현\n + * @remarks Getting total counts, number of pages, current page number, number of items per page, + * this class implements methods and contains variables for page navigation **/ class PageHandler extends Handler { - var $total_count = 0; ///< 전체 item의 갯수 - var $total_page = 0; ///< 전체 페이지 수 - var $cur_page = 0; ///< 현 페이지 - var $page_count = 10; ///< 한번에 보일 페이지의 수 - var $first_page = 1; ///< 첫 페이지 - var $last_page = 1; ///< 마지막 페이지 - var $point = 0; ///< getNextPage() 호출시 증가하는 값 + var $total_count = 0; ///< number of total items + var $total_page = 0; ///< number of total pages + var $cur_page = 0; ///< current page number + var $page_count = 10; ///< number of page links displayed at one time + var $first_page = 1; ///< first page number + var $last_page = 1; ///< last page number + var $point = 0; ///< increments per getNextPage() /** * @brief constructor + * @param[in] $total_count number of total items + * @param[in] $total_page number of total pages + * @param[in] $cur_page current page number + * @param[in] $page_count number of page links displayed at one time **/ function PageHandler($total_count, $total_page, $cur_page, $page_count = 10) { $this->total_count = $total_count; @@ -41,7 +45,8 @@ } /** - * @brief 다음 페이지 요청 + * @brief request next page + * @return next page number **/ function getNextPage() { $page = $this->first_page+$this->point++; From 7d690f9acddec976e886cce63a49f779c5773093 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 28 Oct 2009 01:27:10 +0000 Subject: [PATCH 35/72] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6896 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/blogapi/blogapi.addon.php | 50 ++++++++++++++++---------------- addons/blogapi/blogapi.func.php | 1 + 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/addons/blogapi/blogapi.addon.php b/addons/blogapi/blogapi.addon.php index c87c407a3..5688cc9b1 100644 --- a/addons/blogapi/blogapi.addon.php +++ b/addons/blogapi/blogapi.addon.php @@ -162,7 +162,6 @@ if(!$document_srl) { printContent( getXmlRpcFailure(1, 'no permission') ); } else { - $oDocumentModel = &getModel('document'); $oDocument = $oDocumentModel->getDocument($document_srl); if(!$oDocument->isExists() || !$oDocument->isGranted()) { @@ -198,8 +197,8 @@ '', $category, date("Ymd", $oDocument->getRegdateTime()).'T'.date("H:i:s", $oDocument->getRegdateTime()), - $oDocument->getContent(false), - $oDocument->getPermanentUrl(), + $oDocument->getContent(false, false, true,false), + getFullUrl('','document_srl', $oDocument->document_srl), $oDocument->document_srl, $oDocument->getTitleText() ); @@ -275,9 +274,10 @@ $content = getXmlRpcFailure(1, $output->getMessage()); } else { //$content = getXmlRpcResponse(Context::getRequestUri().$this->mid.'/'.$document_srl); - $content = getXmlRpcResponse(''.$document_srl); + $content = getXmlRpcResponse($document_srl); } FileHandler::removeDir($tmp_uploaded_path); + debugPrint($content); printContent($content); break; @@ -372,7 +372,7 @@ if(!$output->toBool()) { $content = getXmlRpcFailure(1, $output->getMessage()); } else { - $content = getXmlRpcResponse(Context::getRequestUri().$this->mid.'/'.$document_srl); + $content = getXmlRpcResponse(getFullUrl('','document_srl',$document_srl)); FileHandler::removeDir($tmp_uploaded_path); } @@ -389,16 +389,22 @@ $oDocumentModel = &getModel('document'); $oDocument = $oDocumentModel->getDocument($document_srl); + // 글 존재 + if(!$oDocument->isExists()) { + $content = getXmlRpcFailure(1, 'not exists'); + // 글 삭제 권한 체크 - if(!$oDocument->isGranted()) { + } elseif(!$oDocument->isGranted()) { $content = getXmlRpcFailure(1, 'no permission'); break; - } - $oDocumentController = &getController('document'); - $output = $oDocumentController->deleteDocument($document_srl); - if(!$output->toBool()) $content = getXmlRpcFailure(1, $output->getMessage()); - else $content = getXmlRpcResponse(true); + // 삭제 + } else { + $oDocumentController = &getController('document'); + $output = $oDocumentController->deleteDocument($document_srl); + if(!$output->toBool()) $content = getXmlRpcFailure(1, $output->getMessage()); + else $content = getXmlRpcResponse(true); + } printContent($content); break; @@ -423,22 +429,16 @@ $posts = array(); foreach($output->data as $key => $oDocument) { $post = null; - $post->link = $post->permaLink = getUrl('','mid',$this->mid,'document_srl',$oDocument->document_srl); + $post->categories = array(); + $post->dateCreated = date("Ymd", $oDocument->getRegdateTime()).'T'.date("H:i:s", $oDocument->getRegdateTime()); + $post->description = htmlspecialchars($oEditorController->transComponent($oDocument->getContent(false,false,true,false))); + $post->link = $post->permaLink = getFullUrl('','document_srl',$oDocument->document_srl); + $post->postid = $oDocument->document_srl; + $post->title = htmlspecialchars($oDocument->get('title')); + $post->publish = 1; $post->userid = $oDocument->get('user_id'); $post->mt_allow_pings = 0; $post->mt_allow_comments = $oDocument->allowComment()=='Y'?1:0; - $post->description = htmlspecialchars($oEditorController->transComponent($oDocument->get('content'))); - $post->postid = $oDocument->document_srl; - $post->title = htmlspecialchars($oDocument->get('title')); - - $year = substr($oDocument->get('regdate'),0,4); - $month = substr($oDocument->get('regdate'),4,2); - $day = substr($oDocument->get('regdate'),6,2); - $hour = substr($oDocument->get('regdate'),8,2); - $min = substr($oDocument->get('regdate'),10,2); - $sec = substr($oDocument->get('regdate'),12,2); - $time = mktime($hour,$min,$sec,$month,$day,$year); - $post->dateCreated = gmdate("D, d M Y H:i:s", $time); $posts[] = $post; } $content = getXmlRpcResponse($posts); @@ -456,7 +456,7 @@ XpressEngine - http://www.zeroboard.com/ + http://www.xpressengine.com/ {$homepagelink} diff --git a/addons/blogapi/blogapi.func.php b/addons/blogapi/blogapi.func.php index b3e2503c2..65630f78e 100644 --- a/addons/blogapi/blogapi.func.php +++ b/addons/blogapi/blogapi.func.php @@ -29,6 +29,7 @@ // 인코딩 처리 function _getEncodedVal($val, $is_sub_set = false) { if(is_int($val)) $buff = sprintf("%d", $val); + elseif(is_string($val)&&preg_match('/^([0-9]+)T([0-9\:]+)$/', $val)) $buff = sprintf("%s\n", $val); elseif(is_double($val)) $buff = sprintf("%f", $val); elseif(is_bool($val)) $buff = sprintf("%d", $val?1:0); elseif(is_object($val)) { From e3eaf8de97bf9f382a3f6c745c4dc027b814120d Mon Sep 17 00:00:00 2001 From: taggon Date: Wed, 28 Oct 2009 03:35:27 +0000 Subject: [PATCH 36/72] =?UTF-8?q?#18402493=20:=20=EB=A7=81=ED=81=AC?= =?UTF-8?q?=EA=B0=80=20=ED=8F=AC=ED=95=A8=EB=90=9C=20=EB=AC=B8=EC=9E=A5?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EB=A7=81=ED=81=AC=EB=A7=8C=20=EB=B3=B4?= =?UTF-8?q?=EC=9D=B4=EA=B3=A0=20=EB=8B=A4=EB=A5=B8=20=ED=85=8D=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EB=8A=94=20=EB=82=98=ED=83=80=EB=82=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8D=98=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?+=20=EC=9C=A0=EB=8B=9B=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6897 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/autolink.js | 9 ++- addons/autolink/autolink.spec.html | 95 ++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 addons/autolink/autolink.spec.html diff --git a/addons/autolink/autolink.js b/addons/autolink/autolink.js index 4fec3010a..1dc836e4e 100644 --- a/addons/autolink/autolink.js +++ b/addons/autolink/autolink.js @@ -13,18 +13,21 @@ this.extractTargets($('.xe_content')); $(this.targets).each(function(){ - if (!url_regex.test(this.nodeValue)) return true; thisPlugin.cast('AUTOLINK', [this]); }); }, API_AUTOLINK : function(oSender, params) { var textNode = params[0]; var content = textNode.nodeValue; + var dummy = $(''); content = content.replace(//g, '>'); content = content.replace(url_regex, '$1'); - $(textNode).replaceWith(params[0] = $(content)); + $(textNode).before(dummy); + $(textNode).replaceWith(content); + params[0] = dummy.next('a'); + dummy.remove(); }, extractTargets : function(obj) { var thisPlugin = this; @@ -33,7 +36,7 @@ .contents() .each(function(){ if (!$(this).is('a,pre,xml,code,script,style,:input')) { - if (this.nodeType == 3) { // text node + if (this.nodeType == 3 && url_regex.test(this.nodeValue)) { // text node thisPlugin.targets.push(this); } else { thisPlugin.extractTargets(this); diff --git a/addons/autolink/autolink.spec.html b/addons/autolink/autolink.spec.html new file mode 100644 index 000000000..da7908e4e --- /dev/null +++ b/addons/autolink/autolink.spec.html @@ -0,0 +1,95 @@ + + + + +Autolink Addon Unit Test + + + + + + + + + + + + + \ No newline at end of file From fd50fdd9e3523f75d8d442160b1a955ccf972bde Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 28 Oct 2009 06:46:44 +0000 Subject: [PATCH 37/72] #18400897 : check gd functions existence before using them git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6898 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/file/FileHandler.class.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/classes/file/FileHandler.class.php b/classes/file/FileHandler.class.php index da3808613..4f518b57c 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -470,20 +470,24 @@ // create temporary image having original type switch($type) { case 'gif' : + if(!function_exists('imagecreatefromgif')) return false; $source = @imagecreatefromgif($source_file); break; // jpg case 'jpeg' : case 'jpg' : + if(!function_exists('imagecreatefromjpeg')) return false; $source = @imagecreatefromjpeg($source_file); break; // png case 'png' : + if(!function_exists('imagecreatefrompng')) return false; $source = @imagecreatefrompng($source_file); break; // bmp case 'wbmp' : case 'bmp' : + if(!function_exists('imagecreatefromwbmp')) return false; $source = @imagecreatefromwbmp($source_file); break; default : @@ -514,17 +518,21 @@ // write into the file switch($target_type) { case 'gif' : + if(!function_exists('imagegif')) return false; $output = @imagegif($thumb, $target_file); break; case 'jpeg' : case 'jpg' : + if(!function_exists('imagejpeg')) return false; $output = @imagejpeg($thumb, $target_file, 100); break; case 'png' : + if(!function_exists('imagepng')) return false; $output = @imagepng($thumb, $target_file, 9); break; case 'wbmp' : case 'bmp' : + if(!function_exists('imagewbmp')) return false; $output = @imagewbmp($thumb, $target_file, 100); break; } From 8cd154be310d0fd32e0e42af4df683e4f63b271b Mon Sep 17 00:00:00 2001 From: haneul Date: Thu, 29 Oct 2009 04:49:13 +0000 Subject: [PATCH 38/72] #18402013 : added estimation function called before loading image to create thumbnail (fixed a crash occurred when creating a thumbnail of large image file) git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6899 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/file/FileHandler.class.php | 39 +++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/classes/file/FileHandler.class.php b/classes/file/FileHandler.class.php index 4f518b57c..c8a94369f 100644 --- a/classes/file/FileHandler.class.php +++ b/classes/file/FileHandler.class.php @@ -397,6 +397,40 @@ return true; } + /** + * @brief convert size in string into numeric value + * @param[in] $val size in string (ex., 10, 10K, 10M, 10G ) + * @return converted size + */ + function returnBytes($val) + { + $val = trim($val); + $last = strtolower(substr($val, -1)); + if($last == 'g') $val *= 1024*1024*1024; + else if($last == 'm') $val *= 1024*1024; + else if($last == 'k') $val *= 1024; + + return $val; + } + + /** + * @brief check available memory to load image file + * @param[in] $imageInfo image info retrieved by getimagesize function + * @return true: it's ok, false: otherwise + */ + function checkMemoryLoadImage(&$imageInfo) + { + if(!function_exists('memory_get_usage')) return true; + $K64 = 65536; + $TWEAKFACTOR = 1.5; + $channels = $imageInfo['channels']; + if(!$channels) $channels = 6; //for png + $memoryNeeded = round( ($imageInfo[0] * $imageInfo[1] * $imageInfo['bits'] * $channels / 8 + $K64 ) * $TWEAKFACTOR ); + $availableMemory = FileHandler::returnBytes(ini_get('memory_limit')) - memory_get_usage(); + if($availableMemory < $memoryNeeded) return false; + return true; + } + /** * @brief moves an image file (resizing is possible) * @param[in] $source_file path of the source file @@ -416,7 +450,10 @@ if(!$resize_height) $resize_height = $resize_width; // retrieve source image's information - list($width, $height, $type, $attrs) = @getimagesize($source_file); + $imageInfo = getimagesize($source_file); + if(!FileHandler::checkMemoryLoadImage($imageInfo)) return false; + list($width, $height, $type, $attrs) = $imageInfo; + if($width<1 || $height<1) return; switch($type) { From 1f7ce8f07711a2c97c2ce91b43f5b8572e5d2272 Mon Sep 17 00:00:00 2001 From: taggon Date: Thu, 29 Oct 2009 09:18:57 +0000 Subject: [PATCH 39/72] =?UTF-8?q?#18399347=20:=20FF=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=B9=88=EC=B9=B8( )=20=EB=8C=80=EC=8B=A0=20=EB=B9=88=20?= =?UTF-8?q?=EC=A4=84(
)=EC=9D=84=20=EA=B8=B0=EB=B3=B8=20=EC=BB=A8?= =?UTF-8?q?=ED=85=90=ED=8A=B8=EB=A1=9C=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6900 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/skins/xpresseditor/js/xe_interface.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/skins/xpresseditor/js/xe_interface.js b/modules/editor/skins/xpresseditor/js/xe_interface.js index 2b93ee509..d57c84cc4 100644 --- a/modules/editor/skins/xpresseditor/js/xe_interface.js +++ b/modules/editor/skins/xpresseditor/js/xe_interface.js @@ -58,7 +58,7 @@ function editorStart_xe(editor_sequence, primary_key, content_key, editor_height } var content = form[content_key].value; - if(xFF && !content) content = '

 

'; + if(xFF && !content) content = '
'; // src, href, url의 XE 상대경로를 http로 시작하는 full path로 변경 content = content.replace(/(src=|href=|url\()("|\')*([^"\'\)]+)("|\'|\))*(\s|>)*/ig, function(m0,m1,m2,m3,m4,m5) { From d8c6bb565a7184814e8f69dfc7619aca72cae8df Mon Sep 17 00:00:00 2001 From: haneul Date: Thu, 29 Oct 2009 09:40:14 +0000 Subject: [PATCH 40/72] removed redundant language item git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6901 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/install/lang/en.lang.php | 1 - modules/install/lang/es.lang.php | 1 - modules/install/lang/fr.lang.php | 1 - modules/install/lang/jp.lang.php | 1 - modules/install/lang/ko.lang.php | 1 - modules/install/lang/ru.lang.php | 1 - modules/install/lang/vi.lang.php | 1 - modules/install/lang/zh-CN.lang.php | 1 - modules/install/lang/zh-TW.lang.php | 1 - 9 files changed, 9 deletions(-) diff --git a/modules/install/lang/en.lang.php b/modules/install/lang/en.lang.php index c8f7326aa..45fd9103b 100644 --- a/modules/install/lang/en.lang.php +++ b/modules/install/lang/en.lang.php @@ -173,7 +173,6 @@ EndOfLicense; $lang->about_database_file = 'Sqlite saves data in the file. Location of the database file should be unreachable by web
Data file should be inside the permission of 707.'; $lang->success_installed = 'Installation has been completed'; - $lang->success_updated = 'Update has been completed'; $lang->msg_cannot_proc = 'Installation environment is not proper to proceed.'; $lang->msg_already_installed = 'XE is already installed'; diff --git a/modules/install/lang/es.lang.php b/modules/install/lang/es.lang.php index e7f76ea43..b6892c716 100644 --- a/modules/install/lang/es.lang.php +++ b/modules/install/lang/es.lang.php @@ -269,7 +269,6 @@ EndOfLicense; $lang->about_database_file = 'Sqlite guarda el dato en el archivo. Es necesario crear archivo de BD en un lugar inaccesible de la web.
El archivo de dato debe estar ubicado en un lugar con la atribución 707.'; $lang->success_installed = 'Instalación finalizada'; - $lang->success_updated = 'Actualización finalizada'; $lang->msg_cannot_proc = 'No puede ser ejecutado lo requerido por no disponer del ambiente de instalación.'; $lang->msg_already_installed = 'Instalación de XE ya existe.'; diff --git a/modules/install/lang/fr.lang.php b/modules/install/lang/fr.lang.php index a7a142e5a..29393dadd 100644 --- a/modules/install/lang/fr.lang.php +++ b/modules/install/lang/fr.lang.php @@ -227,7 +227,6 @@ EndOfLicense; $lang->about_database_file = 'Sqlite conserve des données dans le fichier. Vous devez placer le fichier de la base de données où l\'on ne peut pas accéder par web.
Le fichier des Donées doit être en dedans la permission 707.'; $lang->success_installed = 'Installation s\'est complété'; - $lang->success_updated = 'Mise à Jour s\'est complété'; $lang->msg_cannot_proc = 'Environnement d\'Installation n\'est pas équipé à procéder.'; $lang->msg_already_installed = 'XE est déjà installé'; diff --git a/modules/install/lang/jp.lang.php b/modules/install/lang/jp.lang.php index 41cbd7f7a..be1b4a263 100644 --- a/modules/install/lang/jp.lang.php +++ b/modules/install/lang/jp.lang.php @@ -265,7 +265,6 @@ EndOfLicense; $lang->about_database_file = 'Sqliteはファイルにデータを保存します。そのため、データベースファイルにはウェブからアクセス出来ない場所にしなければなりません。
データファイルのパーミッションは「707」に設定して下さい。'; $lang->success_installed = '正常にインストールされました。'; - $lang->success_updated = '正常にアップデートされました。'; $lang->msg_cannot_proc = 'インストール出来る環境が整っていないため、リクエストを実行出来ませんでした。'; $lang->msg_already_installed = '既にインストールされています。'; diff --git a/modules/install/lang/ko.lang.php b/modules/install/lang/ko.lang.php index ba1e66d30..99be1b687 100644 --- a/modules/install/lang/ko.lang.php +++ b/modules/install/lang/ko.lang.php @@ -265,7 +265,6 @@ EndOfLicense; $lang->about_database_file = 'Sqlite는 파일에 데이터를 저장합니다. 데이터베이스 파일의 위치를 웹에서 접근할 수 없는 곳으로 하셔야 합니다.
데이터 파일은 707퍼미션 설정된 곳으로 지정해주세요.'; $lang->success_installed = '설치가 되었습니다.'; - $lang->success_updated = '업데이트가 되었습니다.'; $lang->msg_cannot_proc = '설치 환경이 갖춰지지 않아 요청을 실행할 수가 없습니다.'; $lang->msg_already_installed = '이미 설치가 되어 있습니다.'; diff --git a/modules/install/lang/ru.lang.php b/modules/install/lang/ru.lang.php index 41609b38d..d9d6bcf01 100644 --- a/modules/install/lang/ru.lang.php +++ b/modules/install/lang/ru.lang.php @@ -357,7 +357,6 @@ EndOfLicense; $lang->about_database_file = 'Sqlite сохраняет данные в файл. Размещение базы данных должно быть недоступно с веб
Файл базы данных должен иметь права доступа 707.'; $lang->success_installed = 'Установка завершена'; - $lang->success_updated = 'Обновление завершено'; $lang->msg_cannot_proc = 'Невозможно исполнить запрос, поскольку окружение установки не указано'; $lang->msg_already_installed = 'XE уже установлена'; diff --git a/modules/install/lang/vi.lang.php b/modules/install/lang/vi.lang.php index 2916490c4..abab21454 100644 --- a/modules/install/lang/vi.lang.php +++ b/modules/install/lang/vi.lang.php @@ -172,7 +172,6 @@ EndOfLicense; $lang->about_database_file = 'Sqlite lưu trữ dữ liệu trong một File, vì vậy cần tới sự truy cập đến nó trong Database.
Hãy CHMOD thành 707.'; $lang->success_installed = 'Bạn đã cài đặt XE thành công!'; - $lang->success_updated = 'Đã cập nhật thành công!'; $lang->msg_cannot_proc = 'Môi trường cài đặt không thích hợp.'; $lang->msg_already_installed = 'Một phiên bản nào đó của XE đã được cài đặt từ trước.
Xin hãy kiểm tra lại!'; diff --git a/modules/install/lang/zh-CN.lang.php b/modules/install/lang/zh-CN.lang.php index 2f6bc6988..8427c0c8c 100644 --- a/modules/install/lang/zh-CN.lang.php +++ b/modules/install/lang/zh-CN.lang.php @@ -256,7 +256,6 @@ EndOfLicense; $lang->about_database_file = 'Sqlite是文件里保存数据。数据库的文件位置应该放在web不能访问的地方。
数据文件应放在具有707属性的位置。'; $lang->success_installed = '已完成安装。'; - $lang->success_updated = '已完成更新。'; $lang->msg_cannot_proc = '不具备安装所需环境,不能继续进行。'; $lang->msg_already_installed = '已安装'; diff --git a/modules/install/lang/zh-TW.lang.php b/modules/install/lang/zh-TW.lang.php index 6c12a460c..429d4503d 100644 --- a/modules/install/lang/zh-TW.lang.php +++ b/modules/install/lang/zh-TW.lang.php @@ -257,7 +257,6 @@ EndOfLicense; $lang->about_database_file = 'Sqlite是保存資料於檔案中。資料庫的檔案位置應該放在web不能訪問的地方。
資料檔案應放在具有707權限的位置。'; $lang->success_installed = '已完成安裝。'; - $lang->success_updated = '已完成更新。'; $lang->msg_cannot_proc = '不具備安裝所需環境,無法繼續安裝。'; $lang->msg_already_installed = '已安裝'; From 3e767c202eed0336f0f4bb1cb393bd7cbfccfaba Mon Sep 17 00:00:00 2001 From: taggon Date: Thu, 29 Oct 2009 10:10:14 +0000 Subject: [PATCH 41/72] =?UTF-8?q?#18357077=20:=20IE=EC=97=90=EC=84=9C=20P?= =?UTF-8?q?=20=EB=85=B8=EB=93=9C=EA=B0=80=20=EC=A0=95=EC=83=81=EC=A0=81?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=83=9D=EC=84=B1=EB=90=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8A=94=20=EA=B2=BD=EC=9A=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6902 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../skins/xpresseditor/js/xe_interface.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/editor/skins/xpresseditor/js/xe_interface.js b/modules/editor/skins/xpresseditor/js/xe_interface.js index d57c84cc4..a255c3ce5 100644 --- a/modules/editor/skins/xpresseditor/js/xe_interface.js +++ b/modules/editor/skins/xpresseditor/js/xe_interface.js @@ -177,8 +177,25 @@ function editorGetContentTextarea_xe(editor_sequence) { if (!oEditor) return ''; var str = oEditor.getIR(); + if(!jQuery.trim(str.replace(/( |<\/?(p|br|span|div)([^>]+)?>)/ig, ''))) return ''; + // 속도 문제가 있으므로 1024 문자 미만일 때만 첫 노드가 텍스트 노드인지 테스트 + // 그 이상이면 P 노드가 정상적으로 생성되었다고 가정한다. + if (str.length < 1024) { + var div = jQuery('
'+str+'
').eq(0); + var nodes = div.contents(); + jQuery.each(nodes, function() { + if (this.nodeType == 3) { + jQuery(this).wrap('

'); + } + }); + str = div.html(); + } + + // 파이어폭스의 경우 의미없는
이 컨텐트 마지막에 추가될 수 있다. + str = str.replace(/
$/i, ''); + return str; } From ea4964ddb8b6ef0802bde4a153ec1043425f78b8 Mon Sep 17 00:00:00 2001 From: ngleader Date: Thu, 29 Oct 2009 12:39:51 +0000 Subject: [PATCH 42/72] #18406914 add mysqli class git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6903 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DBMysqli.class.php | 673 ++++++++++++++++++++++++++++++++++ 1 file changed, 673 insertions(+) create mode 100644 classes/db/DBMysqli.class.php diff --git a/classes/db/DBMysqli.class.php b/classes/db/DBMysqli.class.php new file mode 100644 index 000000000..99faa0e0e --- /dev/null +++ b/classes/db/DBMysqli.class.php @@ -0,0 +1,673 @@ + 'bigint', + 'number' => 'bigint', + 'varchar' => 'varchar', + 'char' => 'char', + 'text' => 'text', + 'bigtext' => 'longtext', + 'date' => 'varchar(14)', + 'float' => 'float', + ); + + /** + * @brief constructor + **/ + function DBMysqli() { + $this->_setDBInfo(); + $this->_connect(); + } + + /** + * @brief 설치 가능 여부를 return + **/ + function isSupported() { + if(!function_exists('mysqli_connect')) return false; + return true; + } + + /** + * @brief DB정보 설정 및 connect/ close + **/ + function _setDBInfo() { + $db_info = Context::getDBInfo(); + $this->hostname = $db_info->db_hostname; + $this->port = $db_info->db_port; + $this->userid = $db_info->db_userid; + $this->password = $db_info->db_password; + $this->database = $db_info->db_database; + $this->prefix = $db_info->db_table_prefix; + if(!substr($this->prefix,-1)!='_') $this->prefix .= '_'; + } + + /** + * @brief DB 접속 + **/ + function _connect() { + // db 정보가 없으면 무시 + if(!$this->hostname || !$this->userid || !$this->password || !$this->database) return; + + // 접속시도 + if($this->port){ + $this->fd = mysqli_connect($this->hostname, $this->userid, $this->password, $this->database, $this->port); + }else{ + $this->fd = mysqli_connect($this->hostname, $this->userid, $this->password, $this->database); + } + $error = mysqli_connect_errno(); + if($error) { + $this->setError($error); + return; + } + mysqli_set_charset($this->fd,'utf8'); + + // 접속체크 + $this->is_connected = true; + } + + /** + * @brief DB접속 해제 + **/ + function close() { + if(!$this->isConnected()) return; + mysqli_close($this->fd); + } + + /** + * @brief 쿼리에서 입력되는 문자열 변수들의 quotation 조절 + **/ + function addQuotes($string) { + if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $string = stripslashes(str_replace("\\","\\\\",$string)); + if(!is_numeric($string)) $string = mysqli_escape_string($this->fd,$string); + return $string; + } + + /** + * @brief 트랜잭션 시작 + **/ + function begin() { + } + + /** + * @brief 롤백 + **/ + function rollback() { + } + + /** + * @brief 커밋 + **/ + function commit() { + } + + /** + * @brief : 쿼리문의 실행 및 결과의 fetch 처리 + * + * query : query문 실행하고 result return\n + * fetch : reutrn 된 값이 없으면 NULL\n + * rows이면 array object\n + * row이면 object\n + * return\n + **/ + function _query($query) { + if(!$this->isConnected()) return; + + // 쿼리 시작을 알림 + $this->actStart($query); + + // 쿼리 문 실행 + $result = mysqli_query($this->fd,$query); + + // 오류 체크 + $error = mysqli_error($this->fd); + if($error) $this->setError(mysqli_errno($this->fd), $error); + + // 쿼리 실행 종료를 알림 + $this->actFinish(); + + // 결과 리턴 + return $result; + } + + /** + * @brief 결과를 fetch + **/ + function _fetch($result) { + if(!$this->isConnected() || $this->isError() || !$result) return; + while($tmp = mysqli_fetch_object($result)) { + $output[] = $tmp; + } + if(count($output)==1) return $output[0]; + return $output; + } + + /** + * @brief 1씩 증가되는 sequence값을 return (mysql의 auto_increment는 sequence테이블에서만 사용) + **/ + function getNextSequence() { + $query = sprintf("insert into `%ssequence` (seq) values ('0')", $this->prefix); + $this->_query($query); + $sequence = mysqli_insert_id($this->fd); + if($sequence % 10000 == 0) { + $query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence); + $this->_query($query); + } + + return $sequence; + } + + /** + * @brief mysql old password를 가져오는 함수 (mysql에서만 사용) + **/ + function isValidOldPassword($password, $saved_password) { + $query = sprintf("select password('%s') as password, old_password('%s') as old_password", $this->addQuotes($password), $this->addQuotes($password)); + $result = $this->_query($query); + $tmp = $this->_fetch($result); + if($tmp->password == $saved_password || $tmp->old_password == $saved_password) return true; + return false; + } + + /** + * @brief 테이블 기생성 여부 return + **/ + function isTableExists($target_name) { + $query = sprintf("show tables like '%s%s'", $this->prefix, $this->addQuotes($target_name)); + $result = $this->_query($query); + $tmp = $this->_fetch($result); + if(!$tmp) return false; + return true; + } + + /** + * @brief 특정 테이블에 특정 column 추가 + **/ + function addColumn($table_name, $column_name, $type='number', $size='', $default = '', $notnull=false) { + $type = $this->column_type[$type]; + if(strtoupper($type)=='INTEGER') $size = ''; + + $query = sprintf("alter table %s%s add %s ", $this->prefix, $table_name, $column_name); + if($size) $query .= sprintf(" %s(%s) ", $type, $size); + else $query .= sprintf(" %s ", $type); + if($default) $query .= sprintf(" default '%s' ", $default); + if($notnull) $query .= " not null "; + + $this->_query($query); + } + + /** + * @brief 특정 테이블에 특정 column 제거 + **/ + function dropColumn($table_name, $column_name) { + $query = sprintf("alter table %s%s drop %s ", $this->prefix, $table_name, $column_name); + $this->_query($query); + } + + /** + * @brief 특정 테이블의 column의 정보를 return + **/ + function isColumnExists($table_name, $column_name) { + $query = sprintf("show fields from %s%s", $this->prefix, $table_name); + $result = $this->_query($query); + if($this->isError()) return; + $output = $this->_fetch($result); + if($output) { + $column_name = strtolower($column_name); + foreach($output as $key => $val) { + $name = strtolower($val->Field); + if($column_name == $name) return true; + } + } + return false; + } + + /** + * @brief 특정 테이블에 특정 인덱스 추가 + * $target_columns = array(col1, col2) + * $is_unique? unique : none + **/ + function addIndex($table_name, $index_name, $target_columns, $is_unique = false) { + if(!is_array($target_columns)) $target_columns = array($target_columns); + + $query = sprintf("alter table %s%s add %s index %s (%s);", $this->prefix, $table_name, $is_unique?'unique':'', $index_name, implode(',',$target_columns)); + $this->_query($query); + } + + /** + * @brief 특정 테이블의 특정 인덱스 삭제 + **/ + function dropIndex($table_name, $index_name, $is_unique = false) { + $query = sprintf("alter table %s%s drop index %s;", $this->prefix, $table_name, $index_name); + $this->_query($query); + } + + + /** + * @brief 특정 테이블의 index 정보를 return + **/ + function isIndexExists($table_name, $index_name) { + //$query = sprintf("show indexes from %s%s where key_name = '%s' ", $this->prefix, $table_name, $index_name); + $query = sprintf("show indexes from %s%s", $this->prefix, $table_name); + $result = $this->_query($query); + if($this->isError()) return; + $output = $this->_fetch($result); + if(!$output) return; + if(!is_array($output)) $output = array($output); + + for($i=0;$iKey_name == $index_name) return true; + } + return false; + } + + /** + * @brief xml 을 받아서 테이블을 생성 + **/ + function createTableByXml($xml_doc) { + return $this->_createTable($xml_doc); + } + + /** + * @brief xml 을 받아서 테이블을 생성 + **/ + function createTableByXmlFile($file_name) { + if(!file_exists($file_name)) return; + // xml 파일을 읽음 + $buff = FileHandler::readFile($file_name); + return $this->_createTable($buff); + } + + /** + * @brief schema xml을 이용하여 create table query생성 + * + * type : number, varchar, text, char, date, \n + * opt : notnull, default, size\n + * index : primary key, index, unique\n + **/ + function _createTable($xml_doc) { + // xml parsing + $oXml = new XmlParser(); + $xml_obj = $oXml->parse($xml_doc); + + // 테이블 생성 schema 작성 + $table_name = $xml_obj->table->attrs->name; + if($this->isTableExists($table_name)) return; + $table_name = $this->prefix.$table_name; + + if(!is_array($xml_obj->table->column)) $columns[] = $xml_obj->table->column; + else $columns = $xml_obj->table->column; + + foreach($columns as $column) { + $name = $column->attrs->name; + $type = $column->attrs->type; + $size = $column->attrs->size; + $notnull = $column->attrs->notnull; + $primary_key = $column->attrs->primary_key; + $index = $column->attrs->index; + $unique = $column->attrs->unique; + $default = $column->attrs->default; + $auto_increment = $column->attrs->auto_increment; + + $column_schema[] = sprintf('`%s` %s%s %s %s %s', + $name, + $this->column_type[$type], + $size?'('.$size.')':'', + $default?"default '".$default."'":'', + $notnull?'not null':'', + $auto_increment?'auto_increment':'' + ); + + if($primary_key) $primary_list[] = $name; + else if($unique) $unique_list[$unique][] = $name; + else if($index) $index_list[$index][] = $name; + } + + if(count($primary_list)) { + $column_schema[] = sprintf("primary key (%s)", '`'.implode($primary_list,'`,`').'`'); + } + + if(count($unique_list)) { + foreach($unique_list as $key => $val) { + $column_schema[] = sprintf("unique %s (%s)", $key, '`'.implode($val,'`,`').'`'); + } + } + + if(count($index_list)) { + foreach($index_list as $key => $val) { + $column_schema[] = sprintf("index %s (%s)", $key, '`'.implode($val,'`,`').'`'); + } + } + + $schema = sprintf('create table `%s` (%s%s) %s;', $this->addQuotes($table_name), "\n", implode($column_schema,",\n"), "ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci"); + + $output = $this->_query($schema); + if(!$output) return false; + } + + /** + * @brief 조건문 작성하여 return + **/ + function getCondition($output) { + if(!$output->conditions) return; + $condition = $this->_getCondition($output->conditions,$output->column_type); + if($condition) $condition = ' where '.$condition; + return $condition; + } + + function getLeftCondition($conditions,$column_type){ + return $this->_getCondition($conditions,$column_type); + } + + + function _getCondition($conditions,$column_type) { + $condition = ''; + foreach($conditions as $val) { + $sub_condition = ''; + foreach($val['condition'] as $v) { + if(!isset($v['value'])) continue; + if($v['value'] === '') continue; + if(!in_array(gettype($v['value']), array('string', 'integer'))) continue; + + $name = $v['column']; + $operation = $v['operation']; + $value = $v['value']; + $type = $this->getColumnType($column_type,$name); + $pipe = $v['pipe']; + $value = $this->getConditionValue($name, $value, $operation, $type, $column_type); + if(!$value) $value = $v['value']; + $str = $this->getConditionPart($name, $value, $operation); + if($sub_condition) $sub_condition .= ' '.$pipe.' '; + $sub_condition .= $str; + } + if($sub_condition) { + if($condition && $val['pipe']) $condition .= ' '.$val['pipe'].' '; + $condition .= '('.$sub_condition.')'; + } + } + return $condition; + } + + /** + * @brief insertAct 처리 + **/ + function _executeInsertAct($output) { + // 테이블 정리 + foreach($output->tables as $key => $val) { + $table_list[] = '`'.$this->prefix.$val.'`'; + } + + // 컬럼 정리 + foreach($output->columns as $key => $val) { + $name = $val['name']; + $value = $val['value']; + + $value_list = array(); + if($output->column_type[$name]!='number') { + $value = "'".$this->addQuotes($value)."'"; + if(!$value) $value = 'null'; + } elseif(!$value || is_numeric($value)) $value = (int)$value; + + $column_list[] = '`'.$name.'`'; + $value_list[] = $value; + } + + $query = sprintf("insert into %s (%s) values (%s);", implode(',',$table_list), implode(',',$column_list), implode(',', $value_list)); + + return $this->_query($query); + } + + /** + * @brief updateAct 처리 + **/ + function _executeUpdateAct($output) { + // 테이블 정리 + foreach($output->tables as $key => $val) { + $table_list[] = '`'.$this->prefix.$val.'` as '.$key; + } + + // 컬럼 정리 + foreach($output->columns as $key => $val) { + if(!isset($val['value'])) continue; + $name = $val['name']; + $value = $val['value']; + if(strpos($name,'.')!==false&&strpos($value,'.')!==false) $column_list[] = $name.' = '.$value; + else { + if($output->column_type[$name]!='number') $value = "'".$this->addQuotes($value)."'"; + elseif(!$value || is_numeric($value)) $value = (int)$value; + + $column_list[] = sprintf("`%s` = %s", $name, $value); + } + } + + // 조건절 정리 + $condition = $this->getCondition($output); + + $query = sprintf("update %s set %s %s", implode(',',$table_list), implode(',',$column_list), $condition); + + return $this->_query($query); + } + + /** + * @brief deleteAct 처리 + **/ + function _executeDeleteAct($output) { + // 테이블 정리 + foreach($output->tables as $key => $val) { + $table_list[] = '`'.$this->prefix.$val.'`'; + } + + // 조건절 정리 + $condition = $this->getCondition($output); + + $query = sprintf("delete from %s %s", implode(',',$table_list), $condition); + + return $this->_query($query); + } + + /** + * @brief selectAct 처리 + * + * select의 경우 특정 페이지의 목록을 가져오는 것을 편하게 하기 위해\n + * navigation이라는 method를 제공 + **/ + function _executeSelectAct($output) { + // 테이블 정리 + $table_list = array(); + foreach($output->tables as $key => $val) { + $table_list[] = '`'.$this->prefix.$val.'` as '.$key; + } + + $left_join = array(); + // why??? + $left_tables= (array)$output->left_tables; + foreach($left_tables as $key => $val) { + $condition = $this->_getCondition($output->left_conditions[$key],$output->column_type); + if($condition){ + $left_join[] = $val . ' `'.$this->prefix.$output->_tables[$key].'` as '.$key . ' on (' . $condition . ')'; + } + } + + $click_count = array(); + if(!$output->columns) { + $columns = '*'; + } else { + $column_list = array(); + foreach($output->columns as $key => $val) { + $name = $val['name']; + $alias = $val['alias']; + if($val['click_count']) $click_count[] = $val['name']; + + if(substr($name,-1) == '*') { + $column_list[] = $name; + } elseif(strpos($name,'.')===false && strpos($name,'(')===false) { + if($alias) $column_list[] = sprintf('`%s` as `%s`', $name, $alias); + else $column_list[] = sprintf('`%s`',$name); + } else { + if($alias) $column_list[] = sprintf('%s as `%s`', $name, $alias); + else $column_list[] = sprintf('%s',$name); + } + } + $columns = implode(',',$column_list); + } + + $condition = $this->getCondition($output); + + if($output->list_count && $output->page) return $this->_getNavigationData($table_list, $columns, $left_join, $condition, $output); + + // list_order, update_order 로 정렬시에 인덱스 사용을 위해 condition에 쿼리 추가 + if($output->order) { + $conditions = $this->getConditionList($output); + if(!in_array('list_order', $conditions) && !in_array('update_order', $conditions)) { + foreach($output->order as $key => $val) { + $col = $val[0]; + if(!in_array($col, array('list_order','update_order'))) continue; + if($condition) $condition .= sprintf(' and %s < 2100000000 ', $col); + else $condition = sprintf(' where %s < 2100000000 ', $col); + } + } + } + + $query = sprintf("select %s from %s %s %s", $columns, implode(',',$table_list),implode(' ',$left_join), $condition); + + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + + if($output->order) { + foreach($output->order as $key => $val) { + $index_list[] = sprintf('%s %s', $val[0], $val[1]); + } + if(count($index_list)) $query .= ' order by '.implode(',',$index_list); + } + + // list_count를 사용할 경우 적용 + if($output->list_count['value']) $query = sprintf('%s limit %d', $query, $output->list_count['value']); + + $result = $this->_query($query); + if($this->isError()) return; + + if(count($click_count)>0 && count($output->conditions)>0){ + $_query = ''; + foreach($click_count as $k => $c) $_query .= sprintf(',%s=%s+1 ',$c,$c); + $_query = sprintf('update %s set %s %s',implode(',',$table_list), substr($_query,1), $condition); + $this->_query($_query); + } + + $data = $this->_fetch($result); + + $buff = new Object(); + $buff->data = $data; + return $buff; + } + + /** + * @brief query xml에 navigation 정보가 있을 경우 페이징 관련 작업을 처리한다 + * + * 그닥 좋지는 않은 구조이지만 편리하다.. -_-; + **/ + function _getNavigationData($table_list, $columns, $left_join, $condition, $output) { + require_once(_XE_PATH_.'classes/page/PageHandler.class.php'); + + // 전체 개수를 구함 + $count_condition = count($output->groups) ? sprintf('%s group by %s', $condition, implode(', ', $output->groups)) : $condition; + $total_count = $this->getCountCache($output->tables, $count_condition); + if($total_count === false) { + $count_query = sprintf("select count(*) as count from %s %s %s", implode(', ', $table_list), implode(' ', $left_join), $count_condition); + if (count($output->groups)) + $count_query = sprintf('select count(*) as count from (%s) xet', $count_query); + $result = $this->_query($count_query); + $count_output = $this->_fetch($result); + $total_count = (int)$count_output->count; + $this->putCountCache($output->tables, $count_condition, $total_count); + } + + $list_count = $output->list_count['value']; + if(!$list_count) $list_count = 20; + $page_count = $output->page_count['value']; + if(!$page_count) $page_count = 10; + $page = $output->page['value']; + if(!$page) $page = 1; + + // 전체 페이지를 구함 + if($total_count) $total_page = (int)( ($total_count-1) / $list_count) + 1; + else $total_page = 1; + + // 페이지 변수를 체크 + if($page > $total_page) $page = $total_page; + $start_count = ($page-1)*$list_count; + + // list_order, update_order 로 정렬시에 인덱스 사용을 위해 condition에 쿼리 추가 + if($output->order) { + $conditions = $this->getConditionList($output); + if(!in_array('list_order', $conditions) && !in_array('update_order', $conditions)) { + foreach($output->order as $key => $val) { + $col = $val[0]; + if(!in_array($col, array('list_order','update_order'))) continue; + if($condition) $condition .= sprintf(' and %s < 2100000000 ', $col); + else $condition = sprintf(' where %s < 2100000000 ', $col); + } + } + } + + $query = sprintf("select %s from %s %s %s", $columns, implode(',',$table_list), implode(' ',$left_join), $condition); + + if(count($output->groups)) $query .= sprintf(' group by %s', implode(',',$output->groups)); + + if(count($output->order)) { + foreach($output->order as $key => $val) { + $index_list[] = sprintf('%s %s', $val[0], $val[1]); + } + if(count($index_list)) $query .= ' order by '.implode(',',$index_list); + } + + $query = sprintf('%s limit %d, %d', $query, $start_count, $list_count); + $result = $this->_query($query); + if($this->isError()) { + $buff = new Object(); + $buff->total_count = 0; + $buff->total_page = 0; + $buff->page = 1; + $buff->data = array(); + + $buff->page_navigation = new PageHandler($total_count, $total_page, $page, $page_count); + return $buff; + } + + $virtual_no = $total_count - ($page-1)*$list_count; + while($tmp = mysqli_fetch_object($result)) { + $data[$virtual_no--] = $tmp; + } + + $buff = new Object(); + $buff->total_count = $total_count; + $buff->total_page = $total_page; + $buff->page = $page; + $buff->data = $data; + + $buff->page_navigation = new PageHandler($total_count, $total_page, $page, $page_count); + return $buff; + } + } +?> From babc377eb719c6ebd425cc372e49b096a63a6186 Mon Sep 17 00:00:00 2001 From: misol Date: Sat, 31 Oct 2009 07:18:23 +0000 Subject: [PATCH 43/72] If there is no mid list, or if mid list is not array, there was some errors to show admin controller. This rev. fix it. git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6904 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/editor.admin.view.php | 3 +- modules/editor/tpl/setup_component.html | 52 +++++++++++++------------ 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/modules/editor/editor.admin.view.php b/modules/editor/editor.admin.view.php index 0b437d7cb..3eba4369e 100644 --- a/modules/editor/editor.admin.view.php +++ b/modules/editor/editor.admin.view.php @@ -61,8 +61,9 @@ // 모듈 카테고리 목록을 구함 $module_categories = $oModuleModel->getModuleCategories(); + if(!is_array($mid_list)) $mid_list = array($mid_list); foreach($mid_list as $module_srl => $module) { - $module_categories[$module->module_category_srl]->list[$module_srl] = $module; + if($module) $module_categories[$module->module_category_srl]->list[$module_srl] = $module; } } else { $module_categories[0]->list = $mid_list; diff --git a/modules/editor/tpl/setup_component.html b/modules/editor/tpl/setup_component.html index 81bf322e2..e76908bce 100644 --- a/modules/editor/tpl/setup_component.html +++ b/modules/editor/tpl/setup_component.html @@ -51,34 +51,36 @@ -
- - + + - + + +
- {$lang->module} - -
-

{$lang->about_component_mid}

- -
- - - {$modules->title} - - {$lang->none_category} - -
+ +
+ {$lang->module} + +
+

{$lang->about_component_mid}

+ +
+ + + {$modules->title} + + {$lang->none_category} + +
-
- -
- mid_list))-->checked="checked" /> - +
+ +
+ mid_list))-->checked="checked" /> + +
+
-
- -
From d19d64792600563df14952b6facba36017d9e9dc Mon Sep 17 00:00:00 2001 From: misol Date: Sat, 31 Oct 2009 14:30:03 +0000 Subject: [PATCH 44/72] When encoding of error string is not UTF-8, there was a trouble to read. This revision fixes the encoding trouble and refines code related to error displaying on database class file. git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6905 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DB.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/db/DB.class.php b/classes/db/DB.class.php index 3640eee06..9ad440626 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -226,6 +226,7 @@ * @return object of error **/ function getError() { + $this->errstr = Context::convertEncodingStr($this->errstr); return new Object($this->errno, $this->errstr); } @@ -326,7 +327,7 @@ break; } - if($this->errno != 0 ) $output = new Object($this->errno, $this->errstr); + if($this->isError()) $output = $this->getError(); else if(!is_a($output, 'Object') && !is_subclass_of($output, 'Object')) $output = new Object(); $output->add('_query', $this->query); $output->add('_elapsed_time', sprintf("%0.5f", $this->elapsed_time)); From fde8e04aa9db5939fed358191a564c3270883eec Mon Sep 17 00:00:00 2001 From: taggon Date: Mon, 2 Nov 2009 08:03:13 +0000 Subject: [PATCH 45/72] =?UTF-8?q?#18409991=20:=20=ED=95=9C=20=EB=AC=B8?= =?UTF-8?q?=EB=8B=A8=EC=97=90=20=EB=A7=81=ED=81=AC=EA=B0=80=20=EC=97=AC?= =?UTF-8?q?=EB=9F=AC=EA=B0=9C=20=EC=9E=88=EC=9D=84=20=EA=B2=BD=EC=9A=B0,?= =?UTF-8?q?=20=EC=B2=AB=EB=B2=88=EC=A7=B8=20=EB=A7=81=ED=81=AC=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=EC=97=90=EB=A7=8C=20A=20=ED=83=9C=EA=B7=B8?= =?UTF-8?q?=EA=B0=80=20=EC=83=9D=EC=84=B1=EB=90=98=EB=8D=98=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6906 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/autolink.js | 14 +++++++++++++- addons/autolink/autolink.spec.html | 11 +++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/addons/autolink/autolink.js b/addons/autolink/autolink.js index 1dc836e4e..8880e12f4 100644 --- a/addons/autolink/autolink.js +++ b/addons/autolink/autolink.js @@ -1,5 +1,13 @@ (function($){ - var url_regex = /((http|https|ftp|news|telnet|irc):\/\/(([0-9a-z\-._~!$&'\(\)*+,;=:]|(%[0-9a-f]{2}))*\@)?((\[(((([0-9a-f]{1,4}:){6}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(::([0-9a-f]{1,4}:){5}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(([0-9a-f]{1,4})?::([0-9a-f]{1,4}:){4}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){2}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4})|((([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::))|(v[0-9a-f]+.[0-9a-z\-._~!$&'\(\)*+,;=:]+))\])|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))|(([0-9a-z\-._~!$&'\(\)*+,;=]|(%[0-9a-f]{2}))+))(:[0-9]*)?(\/([0-9a-z\-._~!$&'\(\)*+,;=:@]|(%[0-9a-f]{2}))*)*(\?([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?(#([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?)/i; + var protocol_re = '(https?|ftp|news|telnet|irc)://'; + var domain_re = '(?:[\\w\\-]+\\.)+(?:[a-z]+)'; + var max_255_re = '(?:1[0-9]{2}|2[0-4][0-9]|25[0-5])'; + var ip_re = '(?:'+max_255_re+'\\.){3}'+max_255_re; + var port_re = '(?::([0-9]+))?'; + var path_re = '((?:/[\\w!"$-/:-@]+)*)'; + var hash_re = '(?:#([\\w!-@]+))?'; + + var url_regex = new RegExp('('+protocol_re+'('+domain_re+'|'+ip_re+')'+port_re+path_re+hash_re+')', 'ig'); var AutoLink = xe.createPlugin("autolink", { targets : [], @@ -35,10 +43,14 @@ $(obj) .contents() .each(function(){ + // FIXED: When this meanless code wasn't executed, url_regex do not run correctly. why? + url_regex.exec(''); + if (!$(this).is('a,pre,xml,code,script,style,:input')) { if (this.nodeType == 3 && url_regex.test(this.nodeValue)) { // text node thisPlugin.targets.push(this); } else { + thisPlugin.extractTargets(this); } } diff --git a/addons/autolink/autolink.spec.html b/addons/autolink/autolink.spec.html index da7908e4e..aa025f35d 100644 --- a/addons/autolink/autolink.spec.html +++ b/addons/autolink/autolink.spec.html @@ -51,14 +51,15 @@ describe('AutoLink functionality', { value_of( $('#test5').contents().length ).should_be(3); }, "#test6 - complex example" : function() { - value_of( $('#test6 a').length ).should_be(3); + value_of( $('#test6 a').length ).should_be(4); value_of( $('#test6 a').eq(0).attr('href') ).should_be($('#test6 a').eq(0).text()); - value_of( $('#test6 a').eq(1).parent().is('b') ).should_be_true(); + value_of( $('#test6 a').eq(2).parent().is('b') ).should_be_true(); value_of( $('#test6 > textarea > a').length ).should_be(0); value_of( $('#test6 > div > a').attr("target") ).should_be("_self"); } }); + describe('Autolink trigger', { "#test7 - ignored" : function() { value_of( $('#test7 > a').length ).should_be(0); @@ -68,6 +69,7 @@ describe('Autolink trigger', { } }); + }); // ]]> @@ -79,8 +81,9 @@ describe('Autolink trigger', {
http://www.abc.com/some_program?hello=world&encoded=%ED%C2%C1
Before text. http://www.abc.com/some_program?hello=world&encoded=%ED%C2%C1 After Text
- This is text. http://www.abc.com/some_program?hello=world&encoded=%ED%C2%C1 Text Text - Bold text and http://mail.abc.com/path/to/some_program?hello=world#hash_text Bold text end + This is text. http://www.abc.com/some_program?hello=world&encoded=%ED%C2%C1 Text Text. + Another URL : http://www.decccccf12312.co.uk/path/to/program?mymy=lovelove. XE! + Bold text and http://mail.abc.com/path/to/one_cgi.cgi?hello=world#hash_text Bold text end
Hello~ From 670545cdf66022251e8101e068d6cbcba278e97d Mon Sep 17 00:00:00 2001 From: taggon Date: Mon, 2 Nov 2009 08:45:09 +0000 Subject: [PATCH 46/72] =?UTF-8?q?#18400572=20:=20Firefox=EC=99=80=20Opera?= =?UTF-8?q?=20=EB=B8=8C=EB=9D=BC=EC=9A=B0=EC=A0=80=EC=97=90=EC=84=9C=20Win?= =?UTF-8?q?dow=20Media=20Player=20=ED=8C=8C=EC=9D=BC=EC=9D=98=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=20=EC=8B=A4=ED=96=89=20=EC=98=B5=EC=85=98=EC=9D=B4=20?= =?UTF-8?q?=EC=A0=95=EC=83=81=EC=A0=81=EC=9C=BC=EB=A1=9C=20=EB=B0=98?= =?UTF-8?q?=EC=98=81=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8D=98=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6907 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index e5f128d1e..5c950bc35 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -450,8 +450,14 @@ function _displayMultimedia(src, width, height, options) { }; var params = jQuery.extend(defaults, options || {}); - var autostart = (params.autostart && params.autostart != 'false') ? 'true' : 'false'; - delete(params.autostart); + var autostart; + if (jQuery.browser.mozilla || jQuery.browser.opera) { + // firefox and opera uses 0 or 1 for autostart parameter. + autostart = (params.autostart && params.autostart != 'false') ? '1' : '0'; + } else { + autostart = (params.autostart && params.autostart != 'false') ? 'true' : 'false'; + } + delete(params.autostart); var clsid = ""; var codebase = ""; From 0be93134f965867ec4f0832076f7017aeb29ed03 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 3 Nov 2009 05:11:23 +0000 Subject: [PATCH 47/72] =?UTF-8?q?r6853=20=EC=97=90=EC=84=9C=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=EB=90=98=EC=A7=80=20=EC=95=8A=EC=9D=80=20FirePHP=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20PHP=20=EB=B2=84=EC=A0=84=EC=B2=B4=ED=81=AC?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6908 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/display/DisplayHandler.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 2a2adde92..1f0f12928 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -272,7 +272,7 @@ $end = getMicroTime(); // Firebug 콘솔 출력 - if(__DEBUG_OUTPUT__ == 2 && version_compare(PHP_VERSION, '5.2.0', '>=')) { + if(__DEBUG_OUTPUT__ == 2 && version_compare(PHP_VERSION, '6.0.0') === -1) { static $firephp; if(!isset($firephp)) $firephp = FirePHP::getInstance(true); From 27c622bdfc513cb2e67d480e4c84b50f0302f5c2 Mon Sep 17 00:00:00 2001 From: taggon Date: Tue, 3 Nov 2009 09:16:48 +0000 Subject: [PATCH 48/72] add/modify comments git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6909 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/autolink.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/autolink/autolink.js b/addons/autolink/autolink.js index 8880e12f4..5d32aadb2 100644 --- a/addons/autolink/autolink.js +++ b/addons/autolink/autolink.js @@ -1,3 +1,8 @@ +/** + * @file autolink.js + * @brief javascript code for autolink addon + * @author taggon (gonom9@gmail.com) + */ (function($){ var protocol_re = '(https?|ftp|news|telnet|irc)://'; var domain_re = '(?:[\\w\\-]+\\.)+(?:[a-z]+)'; @@ -43,7 +48,7 @@ $(obj) .contents() .each(function(){ - // FIXED: When this meanless code wasn't executed, url_regex do not run correctly. why? + // FIX ME : When this meanless code wasn't executed, url_regex do not run correctly. why? url_regex.exec(''); if (!$(this).is('a,pre,xml,code,script,style,:input')) { From 7a557ee42f8f4c834170a333a4693a8fa8a847b9 Mon Sep 17 00:00:00 2001 From: taggon Date: Thu, 5 Nov 2009 05:20:00 +0000 Subject: [PATCH 49/72] =?UTF-8?q?#18418490=20FLV=EA=B0=80=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=EC=97=90=20=EA=B4=80=EA=B3=84=EC=97=86=EC=9D=B4=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=EC=9C=BC=EB=A1=9C=20=EC=8B=A4=ED=96=89?= =?UTF-8?q?=EB=90=98=EB=8D=98=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6910 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index 5c950bc35..5f79bbbc0 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -450,13 +450,7 @@ function _displayMultimedia(src, width, height, options) { }; var params = jQuery.extend(defaults, options || {}); - var autostart; - if (jQuery.browser.mozilla || jQuery.browser.opera) { - // firefox and opera uses 0 or 1 for autostart parameter. - autostart = (params.autostart && params.autostart != 'false') ? '1' : '0'; - } else { - autostart = (params.autostart && params.autostart != 'false') ? 'true' : 'false'; - } + var autostart = (params.autostart && params.autostart != 'false') ? 'true' : 'false'; delete(params.autostart); var clsid = ""; @@ -483,6 +477,11 @@ function _displayMultimedia(src, width, height, options) { + '' + '
'; } else { + if (jQuery.browser.mozilla || jQuery.browser.opera) { + // firefox and opera uses 0 or 1 for autostart parameter. + autostart = (params.autostart && params.autostart != 'false') ? '1' : '0'; + } + html = ' Date: Fri, 6 Nov 2009 06:44:22 +0000 Subject: [PATCH 50/72] #18416078 fix receive blogapi when useing vid git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6911 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/blogapi/blogapi.addon.php | 13 +------------ classes/context/Context.class.php | 3 +-- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/addons/blogapi/blogapi.addon.php b/addons/blogapi/blogapi.addon.php index 5688cc9b1..b7b933c0a 100644 --- a/addons/blogapi/blogapi.addon.php +++ b/addons/blogapi/blogapi.addon.php @@ -22,16 +22,6 @@ // act가 api가 아니면 그냥 리턴~ if($_REQUEST['act']!='api') return; - /** - * blogapi의 경우 GET argument와 XML Content가 같이 오기에 XE의 경우 XML Content가 오면 이것만 처리하기에 - * GET argument중에 mid값을 강제 설정해야 모듈을 정상적으로 찾는다 - **/ - if($called_position == 'before_module_init') { - $mid = $_REQUEST['mid']; - Context::set('mid', $mid, true); - $this->mid = $mid; - } - // 관련 func 파일 읽음 require_once('./addons/blogapi/blogapi.func.php'); @@ -88,7 +78,7 @@ switch($method_name) { // 블로그 정보 case 'blogger.getUsersBlogs' : - $obj->url = Context::getRequestUri().$this->mid; + $obj->url = getFullSiteUrl(''); $obj->blogid = $this->mid; $obj->blogName = $this->module_info->browser_title; $blog_list = array($obj); @@ -277,7 +267,6 @@ $content = getXmlRpcResponse($document_srl); } FileHandler::removeDir($tmp_uploaded_path); - debugPrint($content); printContent($content); break; diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index a16fafdb6..075199de2 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -647,11 +647,10 @@ * @brief GET/POST방식일 경우 처리 **/ function _setRequestArgument() { - if($this->_getRequestMethod() == 'XMLRPC' || $this->_getRequestMethod() == 'JSON') return; if(!count($_REQUEST)) return; foreach($_REQUEST as $key => $val) { - if($val === "") continue; + if($val === "" || Context::get($key)) continue; $val = $this->_filterRequestVar($key, $val); if($this->_getRequestMethod()=='GET'&&isset($_GET[$key])) $set_to_vars = true; elseif($this->_getRequestMethod()=='POST'&&isset($_POST[$key])) $set_to_vars = true; From 8733312eb9b73ed09221038564e2b714530d330e Mon Sep 17 00:00:00 2001 From: ngleader Date: Mon, 9 Nov 2009 02:57:22 +0000 Subject: [PATCH 51/72] =?UTF-8?q?#18424575=20blogAPI=20=EC=88=98=EC=8B=A0?= =?UTF-8?q?=EC=8B=9C=20=EC=B2=A8=EB=B6=80=ED=8C=8C=EC=9D=BC=EA=B2=BD?= =?UTF-8?q?=EB=A1=9C=20=EB=AC=B8=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6912 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/blogapi/blogapi.addon.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/blogapi/blogapi.addon.php b/addons/blogapi/blogapi.addon.php index b7b933c0a..57fa31277 100644 --- a/addons/blogapi/blogapi.addon.php +++ b/addons/blogapi/blogapi.addon.php @@ -253,7 +253,7 @@ } } - $obj->content = str_replace($uploaded_target_path,sprintf('./files/attach/images/%s/%s%s', $this->module_srl, getNumberingPath($document_srl,3), $filename), $obj->content); + $obj->content = str_replace($uploaded_target_path,sprintf('/files/attach/images/%s/%s%s', $this->module_srl, getNumberingPath($document_srl,3), $filename), $obj->content); $oDocumentController = &getController('document'); $obj->allow_comment = 'Y'; @@ -353,7 +353,8 @@ $obj->uploaded_count += $file_count; } } - $obj->content = str_replace($uploaded_target_path,sprintf('./files/attach/images/%s/%s%s', $this->module_srl, getNumberingPath($document_srl,3), $filename), $obj->content); + + $obj->content = str_replace($uploaded_target_path,sprintf('/files/attach/images/%s/%s%s', $this->module_srl, getNumberingPath($document_srl,3), $filename), $obj->content); $oDocumentController = &getController('document'); $output = $oDocumentController->updateDocument($oDocument,$obj); From 86bf23b74ea49c328d949c2a9ad9ce374c9c78a6 Mon Sep 17 00:00:00 2001 From: taggon Date: Mon, 9 Nov 2009 07:09:22 +0000 Subject: [PATCH 52/72] =?UTF-8?q?autolink=20:=20=EA=B4=84=ED=98=B8?= =?UTF-8?q?=EB=A5=BC=20=ED=8F=AC=ED=95=A8=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BC=80=EC=9D=B4?= =?UTF-8?q?=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6913 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/autolink.spec.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/autolink/autolink.spec.html b/addons/autolink/autolink.spec.html index aa025f35d..f9fe19b16 100644 --- a/addons/autolink/autolink.spec.html +++ b/addons/autolink/autolink.spec.html @@ -56,6 +56,10 @@ describe('AutoLink functionality', { value_of( $('#test6 a').eq(2).parent().is('b') ).should_be_true(); value_of( $('#test6 > textarea > a').length ).should_be(0); value_of( $('#test6 > div > a').attr("target") ).should_be("_self"); + }, + "#test9 - don't include parenthesis" : function() { + value_of( $('#test9 a').length ).should_be(1); + value_of( $('#test9 a').attr('href') ).should_be('http://www.naver.com'); } }); @@ -93,6 +97,7 @@ describe('Autolink trigger', {
http://mygony.com
Go to http://mygony.com
+
Naver(http://www.naver.com)
\ No newline at end of file From 82d01adc2d40b4ba83983da68c8196545a68d6df Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 10 Nov 2009 08:56:07 +0000 Subject: [PATCH 53/72] =?UTF-8?q?=ED=86=B5=ED=95=A9=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EC=8A=A4=ED=82=A8=20=EC=A0=81=EC=9A=A9=20=EC=95=88=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6914 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/integration_search/integration_search.view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/integration_search/integration_search.view.php b/modules/integration_search/integration_search.view.php index 72c7e725f..5f7b44994 100644 --- a/modules/integration_search/integration_search.view.php +++ b/modules/integration_search/integration_search.view.php @@ -32,7 +32,7 @@ $config = $oModuleModel->getModuleConfig('integration_search'); if(!$config->skin) $config->skin = 'default'; Context::set('module_info', unserialize($config->skin_vars)); - $this->setTemplatePath($this->module_path."/skins/".$this->skin."/"); + $this->setTemplatePath($this->module_path."/skins/".$config->skin."/"); $target = $config->target; if(!$target) $target = 'include'; From d5c98490ad92504c74542b093dfadc446a7746a7 Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 10 Nov 2009 13:21:36 +0000 Subject: [PATCH 54/72] #18427049 : add autoinstall module git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6915 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../autoinstall.admin.controller.php | 292 ++++++++++++++++++ .../autoinstall/autoinstall.admin.view.php | 222 +++++++++++++ modules/autoinstall/autoinstall.class.php | 64 ++++ .../autoinstall/autoinstall.controller.php | 18 ++ modules/autoinstall/autoinstall.model.php | 117 +++++++ modules/autoinstall/autoinstall.view.php | 26 ++ modules/autoinstall/conf/info.xml | 24 ++ modules/autoinstall/conf/module.xml | 12 + modules/autoinstall/lang/ko.lang.php | 21 ++ .../autoinstall/queries/deleteCategory.xml | 7 + .../queries/deleteInstalledPackage.xml | 8 + modules/autoinstall/queries/getCategories.xml | 8 + modules/autoinstall/queries/getCategory.xml | 11 + .../queries/getInstalledPackage.xml | 11 + .../queries/getInstalledPackages.xml | 11 + .../autoinstall/queries/getLatestPackage.xml | 16 + modules/autoinstall/queries/getPackage.xml | 11 + .../autoinstall/queries/getPackageCount.xml | 11 + modules/autoinstall/queries/getPackages.xml | 8 + .../autoinstall/queries/insertCategory.xml | 10 + .../queries/insertInstalledPackage.xml | 11 + modules/autoinstall/queries/insertPackage.xml | 13 + .../autoinstall/queries/updateCategory.xml | 12 + .../queries/updateInstalledPackage.xml | 13 + modules/autoinstall/queries/updatePackage.xml | 15 + .../autoinstall_installed_packages.xml | 6 + .../schemas/autoinstall_packages.xml | 9 + .../schemas/autoinstall_remote_categories.xml | 5 + modules/autoinstall/tpl/config.html | 37 +++ modules/autoinstall/tpl/css/autoinstall.css | 47 +++ .../autoinstall/tpl/filter/insert_config.xml | 9 + modules/autoinstall/tpl/header.html | 8 + modules/autoinstall/tpl/img/arrDown.gif | Bin 0 -> 60 bytes modules/autoinstall/tpl/img/arrUp.gif | Bin 0 -> 60 bytes .../autoinstall/tpl/img/arrowPagination.gif | Bin 0 -> 98 bytes modules/autoinstall/tpl/img/btn_search.gif | Bin 0 -> 605 bytes modules/autoinstall/tpl/img/hrE1.gif | Bin 0 -> 43 bytes modules/autoinstall/tpl/img/starOff.gif | Bin 0 -> 97 bytes modules/autoinstall/tpl/img/starOn.gif | Bin 0 -> 127 bytes modules/autoinstall/tpl/index.html | 22 ++ modules/autoinstall/tpl/install.html | 35 +++ modules/autoinstall/tpl/js/autoinstall.js | 26 ++ modules/autoinstall/tpl/leftBox.html | 47 +++ modules/autoinstall/tpl/list.html | 94 ++++++ 44 files changed, 1317 insertions(+) create mode 100644 modules/autoinstall/autoinstall.admin.controller.php create mode 100644 modules/autoinstall/autoinstall.admin.view.php create mode 100644 modules/autoinstall/autoinstall.class.php create mode 100644 modules/autoinstall/autoinstall.controller.php create mode 100644 modules/autoinstall/autoinstall.model.php create mode 100644 modules/autoinstall/autoinstall.view.php create mode 100644 modules/autoinstall/conf/info.xml create mode 100644 modules/autoinstall/conf/module.xml create mode 100644 modules/autoinstall/lang/ko.lang.php create mode 100644 modules/autoinstall/queries/deleteCategory.xml create mode 100644 modules/autoinstall/queries/deleteInstalledPackage.xml create mode 100644 modules/autoinstall/queries/getCategories.xml create mode 100644 modules/autoinstall/queries/getCategory.xml create mode 100644 modules/autoinstall/queries/getInstalledPackage.xml create mode 100644 modules/autoinstall/queries/getInstalledPackages.xml create mode 100644 modules/autoinstall/queries/getLatestPackage.xml create mode 100644 modules/autoinstall/queries/getPackage.xml create mode 100644 modules/autoinstall/queries/getPackageCount.xml create mode 100644 modules/autoinstall/queries/getPackages.xml create mode 100644 modules/autoinstall/queries/insertCategory.xml create mode 100644 modules/autoinstall/queries/insertInstalledPackage.xml create mode 100644 modules/autoinstall/queries/insertPackage.xml create mode 100644 modules/autoinstall/queries/updateCategory.xml create mode 100644 modules/autoinstall/queries/updateInstalledPackage.xml create mode 100644 modules/autoinstall/queries/updatePackage.xml create mode 100644 modules/autoinstall/schemas/autoinstall_installed_packages.xml create mode 100644 modules/autoinstall/schemas/autoinstall_packages.xml create mode 100644 modules/autoinstall/schemas/autoinstall_remote_categories.xml create mode 100644 modules/autoinstall/tpl/config.html create mode 100644 modules/autoinstall/tpl/css/autoinstall.css create mode 100644 modules/autoinstall/tpl/filter/insert_config.xml create mode 100644 modules/autoinstall/tpl/header.html create mode 100644 modules/autoinstall/tpl/img/arrDown.gif create mode 100644 modules/autoinstall/tpl/img/arrUp.gif create mode 100644 modules/autoinstall/tpl/img/arrowPagination.gif create mode 100644 modules/autoinstall/tpl/img/btn_search.gif create mode 100644 modules/autoinstall/tpl/img/hrE1.gif create mode 100644 modules/autoinstall/tpl/img/starOff.gif create mode 100644 modules/autoinstall/tpl/img/starOn.gif create mode 100644 modules/autoinstall/tpl/index.html create mode 100644 modules/autoinstall/tpl/install.html create mode 100644 modules/autoinstall/tpl/js/autoinstall.js create mode 100644 modules/autoinstall/tpl/leftBox.html create mode 100644 modules/autoinstall/tpl/list.html diff --git a/modules/autoinstall/autoinstall.admin.controller.php b/modules/autoinstall/autoinstall.admin.controller.php new file mode 100644 index 000000000..452f35c54 --- /dev/null +++ b/modules/autoinstall/autoinstall.admin.controller.php @@ -0,0 +1,292 @@ +package =& $package; + } + + function _download() + { + if($this->package->path == ".") + { + $this->download_file = $this->temp_dir."xe.tar"; + $this->target_path = ""; + $this->download_path = $this->temp_dir; + } + else + { + $subpath = substr($this->package->path,2); + $this->download_file = $this->temp_dir.$subpath.".tar"; + $subpatharr = explode("/", $subpath); + array_pop($subpatharr); + $this->download_path = $this->temp_dir.implode("/", $subpatharr); + $this->target_path = implode("/", $subpatharr); + } + + $postdata = array(); + $postdata["path"] = $this->package->path; + $postdata["module"] = "resourceapi"; + $postdata["act"] = "procResourceapiDownload"; + $buff = FileHandler::getRemoteResource($this->base_url, null, 3, "POST", "application/x-www-form-urlencoded; charset=utf-8", array(), array(), $postdata); + FileHandler::writeFile($this->download_file, $buff); + } + + function install() + { + $this->_download(); + $file_list = $this->_unPack(); + $this->_copyDir($file_list); + + return; + } + + function _unPack(){ + require_once(_XE_PATH_.'libs/tar.class.php'); + + $oTar = new tar(); + $oTar->openTAR($this->download_file); + + $_files = $oTar->files; + $file_list = array(); + foreach($_files as $key => $info) { + FileHandler::writeFile($this->download_path."/".$info['name'], $info['file']); + $file_list[] = $info['name']; + } + return $file_list; + } + + function _copyDir(&$file_list){ + $ftp_info = Context::getFTPInfo(); + if(!$ftp_info->ftp_user || !$ftp_info->ftp_password) return new Object(-1,'msg_ftp_invalid_auth_info'); + + require_once(_XE_PATH_.'libs/ftp.class.php'); + + $oFtp = new ftp(); + if(!$oFtp->ftp_connect('localhost', $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); + if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $oFtp->ftp_quit(); + return new Object(-1,'msg_ftp_invalid_auth_info'); + } + + $oModuleModel = &getModel('module'); + $config = $oModuleModel->getModuleConfig('autoinstall'); + + $target_dir = $config->ftp_root_path.$this->target_path; + + foreach($file_list as $k => $file){ + $org_file = $file; + if($this->package->path == ".") + { + $file = substr($file,3); + } + $path = FileHandler::getRealPath("./".$this->target_path."/".$file); + $path_list = explode('/', dirname($this->target_path."/".$file)); + + $real_path = "./"; + $ftp_path = $config->ftp_root_path; + + for($i=0;$iftp_mkdir($ftp_path); + $oFtp->ftp_site("CHMOD 755 ".$path); + } + } + $oFtp->ftp_put($target_dir .'/'. $file, FileHandler::getRealPath($this->download_path."/".$org_file)); + } + $oFtp->ftp_quit(); + + return new Object(); + } + + } + + class autoinstallAdminController extends autoinstall { + + /** + * @brief 초기화 + **/ + function init() { + } + + function procAutoinstallAdminInsertConfig(){ + $oModuleController = &getController('module'); + + $config->ftp_root_path = Context::get('ftp_root_path'); + $output = $oModuleController->insertModuleConfig('autoinstall',$config); + return $output; + } + + + function checkFileCheckSum($file, $checksum){ + $local_checksum = md5_file(FileHandler::getRealPath($file)); + return ($local_checksum === $checksum); + } + + function _cleanDownloaded($obj){ + FileHandler::removeDir($obj->download_path); + } + + function procAutoinstallAdminUpdateinfo() + { + $oModel = &getModel('autoinstall'); + $item = $oModel->getLatestPackage(); + if($item) + { + $params["updatedate"] = $item->updatedate; + } + + $params["act"] = "getResourceapiUpdate"; + $body = XmlGenerater::generate($params); + $buff = FileHandler::getRemoteResource($this->uri, $body, 3, "POST", "application/xml"); + $xml = new XmlParser(); + $xmlDoc = $xml->parse($buff); + $this->updateCategory($xmlDoc); + $this->updatePackages($xmlDoc); + $this->checkInstalled(); + + $this->setMessage("success_updated"); + } + + function checkInstalled() + { + executeQuery("autoinstall.deleteInstalledPackage"); + $oModel =& getModel('autoinstall'); + $packages = $oModel->getPackages(); + foreach($packages as $package) + { + $real_path = FileHandler::getRealPath($package->path); + if(!file_exists($real_path)) { + continue; + } + + if($package->path == ".") + { + $type = "core"; + $version = __ZBXE_VERSION__; + } + else + { + $path_array = explode("/", $package->path); + $target_name = array_pop($path_array); + $type = substr(array_pop($path_array), 0, -1); + switch($type) + { + case "module": + case "addon": + case "layout": + case "widget": + $config_file = "/conf/info.xml"; + break; + case "component": + $config_file = "/info.xml"; + break; + case "skin": + case "widgetstyle": + $config_file = "/skin.xml"; + break; + + default: + continue; + } + $xml = new XmlParser(); + $xmlDoc = $xml->loadXmlFile($real_path.$config_file); + if(!$xmlDoc) continue; + $version = $xmlDoc->{$type}->version->body; + } + + $args = null; + $args->package_srl = $package->package_srl; + $args->version = $package->version; + $args->current_version = $version; + if(version_compare($args->version, $args->current_version, ">")) + { + $args->need_update="Y"; + } + else + { + $args->need_update="N"; + } + + $output = executeQuery("autoinstall.insertInstalledPackage", $args); + } + } + + function procAutoinstallAdminPackageinstall() + { + $package_srls = Context::get('package_srl'); + $oModel =& getModel('autoinstall'); + $packages = explode(',', $package_srls); + foreach($packages as $package_srl) + { + $package = $oModel->getPackage($package_srl); + $oModuleInstaller = new ModuleInstaller($package); + $oModuleInstaller->install(); + } + $this->setMessage('success_installed'); + } + + function updatePackages(&$xmlDoc) + { + $oModel =& getModel('autoinstall'); + if(!$xmlDoc->response->packages->item) return; + if(!is_array($xmlDoc->response->packages->item)) + { + $xmlDoc->response->packages->item = array($xmlDoc->response->packages->item); + } + $targets = array('package_srl', 'updatedate', 'latest_item_srl', 'path', 'version', 'category_srl'); + foreach($xmlDoc->response->packages->item as $item) + { + $args = null; + foreach($targets as $target) + { + $args->{$target} = $item->{$target}->body; + } + if($oModel->getPackage($args->package_srl)) + { + executeQuery("autoinstall.updatePackage", $args); + } + else + { + executeQuery("autoinstall.insertPackage", $args); + } + } + } + + function updateCategory(&$xmlDoc) + { + executeQuery("autoinstall.deleteCategory", $args); + $oModel =& getModel('autoinstall'); + if(!is_array($xmlDoc->response->categorylist->item)) + { + $xmlDoc->response->categorylist->item = array($xmlDoc->response->categorylist->item); + } + foreach($xmlDoc->response->categorylist->item as $item) + { + $args = null; + $args->category_srl = $item->category_srl->body; + $args->parent_srl = $item->parent_srl->body; + $args->title = $item->title->body; + executeQuery("autoinstall.insertCategory", $args); + } + } + } +?> diff --git a/modules/autoinstall/autoinstall.admin.view.php b/modules/autoinstall/autoinstall.admin.view.php new file mode 100644 index 000000000..c4116a1bb --- /dev/null +++ b/modules/autoinstall/autoinstall.admin.view.php @@ -0,0 +1,222 @@ +module_path); + Context::set('original_site', $this->original_site); + Context::set('uri', $this->uri); + $this->setTemplatePath($template_path); + } + + function rearrange(&$item, &$targets) + { + $ret = null; + foreach($targets as $target) + { + $ret->{$target} = $item->{$target}->body; + } + return $ret; + } + + function rearranges($items) + { + if(!is_array($items)) $items = array($items); + $item_list = array(); + $targets = array('category_srl', 'package_srl', 'item_screenshot_url', 'package_voted', 'package_voter', 'package_description', 'package_downloaded', 'item_regdate', 'title', 'item_version', 'package_star'); + $targetpackages = array(); + foreach($items as $item) + { + $targetpackages[$item->package_srl->body] = 0; + } + $oModel = &getModel('autoinstall'); + $packages = $oModel->getInstalledPackages(array_keys($targetpackages)); + + foreach($items as $item) + { + $v = $this->rearrange($item, $targets); + if($packages[$v->package_srl]) + { + $v->current_version = $packages[$v->package_srl]->current_version; + $v->need_update = $packages[$v->package_srl]->need_update; + } + $item_list[$v->package_srl] = $v; + } + + return $item_list; + } + + function dispAutoinstallAdminInstall() { + $package_srl = Context::get('package_srl'); + if(!$package_srl) return $this->dispAutoinstallAdminIndex(); + + $params["act"] = "getResourceapiInstallInfo"; + $params["package_srl"] = $package_srl; + $xmlDoc = XmlGenerater::getXmlDoc($params); + $oModel = &getModel('autoinstall'); + + $targetpackages = array(); + if($xmlDoc) + { + $xmlPackage =& $xmlDoc->response->package; + $package->package_srl = $xmlPackage->package_srl->body; + $package->title = $xmlPackage->title->body; + $package->package_description = $xmlPackage->package_description->body; + $package->version = $xmlPackage->version->body; + if($xmlPackage->depends) + { + if(!is_array($xmlPackage->depends->item)) $xmlPackage->depends->item = array($xmlPackage->depends->item); + $package->depends = array(); + foreach($xmlPackage->depends->item as $item) + { + $dep_item = null; + $dep_item->package_srl = $item->package_srl->body; + $dep_item->title = $item->title->body; + $dep_item->version = $item->version->body; + $package->depends[] = $dep_item; + $targetpackages[$dep_item->package_srl] = 1; + } + $packages = $oModel->getInstalledPackages(array_keys($targetpackages)); + $package->deplist = ""; + foreach($package->depends as $key => $dep) + { + if(!$packages[$dep->package_srl]) { + $package->depends[$key]->installed = false; + $package->package_srl .= ",". $dep->package_srl; + } + else { + $package->depends[$key]->installed = true; + $package->depends[$key]->cur_version = $packages[$dep->package_srl]->version; + if(version_compare($dep->version, $packages[$dep->package_srl]->version, ">")) + { + $package->need_update = true; + $package->package_srl .= ",". $dep->package_srl; + } + else + { + $package->need_update = false; + } + } + } + } + $installedPackage = $oModel->getInstalledPackage($package_srl); + if($installedPackage) { + $package->installed = true; + $package->cur_version = $installedPackage->current_version; + $package->need_update = version_compare($package->version, $installedPackage->current_version, ">"); + } + + Context::set("package", $package); + } + $this->setTemplateFile('install'); + } + + function dispAutoinstallAdminIndex() { + $oModuleModel = &getModel('module'); + $config = $oModuleModel->getModuleConfig('autoinstall'); + if(!$config || !$config->ftp_root_path) Context::set('show_ftp_note', true); + + $this->setTemplateFile('index'); + + $params = array(); + $params["act"] = "getResourceapiLastupdate"; + $body = XmlGenerater::generate($params); + $buff = FileHandler::getRemoteResource($this->uri, $body, 3, "POST", "application/xml"); + $xml_lUpdate = new XmlParser(); + $lUpdateDoc = $xml_lUpdate->parse($buff); + $updateDate = $lUpdateDoc->response->updatedate->body; + + $oModel = &getModel('autoinstall'); + $item = $oModel->getLatestPackage(); + if(!$item || $item->updatedate < $updateDate ) + { + Context::set('need_update', true); + return; + } + + + $page = Context::get('page'); + if(!$page) $page = 1; + Context::set('page', $page); + + $order_type = Context::get('order_type'); + if(!in_array($order_type, array('asc', 'desc'))) $order_type = 'desc'; + Context::set('order_type', $order_type); + + $order_target = Context::get('order_target'); + if(!in_array($order_target, array('newest', 'download', 'popular'))) $order_target = 'newest'; + Context::set('order_target', $order_target); + + $search_keyword = Context::get('search_keyword'); + + $childrenList = Context::get('childrenList'); + $category_srl = Context::get('category_srl'); + if($childrenList) $params["category_srl"] = $childrenList; + else if($category_srl) $params["category_srl"] = $category_srl; + + $params["act"] = "getResourceapiPackagelist"; + $params["order_target"] = $order_target; + $params["order_type"] = $order_type; + $params["page"] = $page; + if($search_keyword) + { + $params["search_keyword"] = $search_keyword; + } + $xmlDoc = XmlGenerater::getXmlDoc($params); + if($xmlDoc && $xmlDoc->response->packagelist->item) + { + $item_list = $this->rearranges($xmlDoc->response->packagelist->item); + Context::set('item_list', $item_list); + $array = array('total_count', 'total_page', 'cur_page', 'page_count', 'first_page', 'last_page'); + $page_nav = $this->rearrange($xmlDoc->response->page_navigation, $array); + $page_navigation = new PageHandler($page_nav->total_count, $page_nav->total_page, $page_nav->cur_page, $page_nav->page_count); + Context::set('page_navigation', $page_navigation); + } + + $oModel = &getModel('autoinstall'); + $categories = &$oModel->getCategoryList(); + Context::set('categories', $categories); + Context::set('tCount', $oModel->getPackageCount(null)); + } + + + function dispAutoinstallAdminConfig(){ + $pwd = Context::get('pwd'); + if(!$pwd) $pwd = '/'; + Context::set('pwd',$pwd); + require_once(_XE_PATH_.'libs/ftp.class.php'); + + $ftp_info = Context::getFTPInfo(); + $oFtp = new ftp(); + if(!$oFtp->ftp_connect('localhost', $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); + if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $oFtp->ftp_quit(); + return new Object(-1,'msg_ftp_invalid_auth_info'); + } + + $_list = $oFtp->ftp_rawlist($pwd); + $oFtp->ftp_quit(); + $list = array(); + if($_list){ + foreach($_list as $k => $v){ + if(strpos($v,'d') === 0) $list[] = substr(strrchr($v,' '),1) . '/'; + } + } + + Context::set('list',$list); + + $oModuleModel = &getModel('module'); + $config = $oModuleModel->getModuleConfig('autoinstall'); + Context::set('config',$config); + + $this->setTemplateFile('config'); + } + } +?> diff --git a/modules/autoinstall/autoinstall.class.php b/modules/autoinstall/autoinstall.class.php new file mode 100644 index 000000000..7b4ec4760 --- /dev/null +++ b/modules/autoinstall/autoinstall.class.php @@ -0,0 +1,64 @@ +'; + if(!is_array($params)) return null; + $params["module"] = "resourceapi"; + foreach($params as $key => $val) + { + $xmlDoc .= sprintf("<%s>", $key, $val, $key); + } + $xmlDoc .= ""; + return $xmlDoc; + } + + function getXmlDoc(&$params) + { + $body = XmlGenerater::generate($params); + $buff = FileHandler::getRemoteResource($this->uri, $body, 3, "POST", "application/xml"); + if(!$buff) return; + $xml = new XmlParser(); + $xmlDoc = $xml->parse($buff); + return $xmlDoc; + } + } + + class autoinstall extends ModuleObject { + var $uri = "http://resource.xpressengine.com/"; + var $original_site = "http://www.xpressengine.com/"; + var $tmp_dir = './files/cache/autoinstall/'; + + /** + * @brief 설치시 추가 작업이 필요할시 구현 + **/ + function moduleInstall() { + } + + /** + * @brief 설치가 이상이 없는지 체크하는 method + **/ + function checkUpdate() { + return false; + } + + /** + * @brief 업데이트 실행 + **/ + function moduleUpdate() { + return new Object(0, 'success_updated'); + } + + /** + * @brief 캐시 파일 재생성 + **/ + function recompileCache() { + } + } +?> diff --git a/modules/autoinstall/autoinstall.controller.php b/modules/autoinstall/autoinstall.controller.php new file mode 100644 index 000000000..bc2ecc08c --- /dev/null +++ b/modules/autoinstall/autoinstall.controller.php @@ -0,0 +1,18 @@ + diff --git a/modules/autoinstall/autoinstall.model.php b/modules/autoinstall/autoinstall.model.php new file mode 100644 index 000000000..cb874a53d --- /dev/null +++ b/modules/autoinstall/autoinstall.model.php @@ -0,0 +1,117 @@ +category_srl = $category_srl; + $output = executeQueryArray("autoinstall.getCategory", $args); + if(!$output->data) return null; + return array_shift($output->data); + } + + function getPackages() + { + $output = executeQueryArray("autoinstall.getPackages"); + if(!$output->data) return array(); + return $output->data; + } + + function getInstalledPackage($package_srl) + { + $args->package_srl = $package_srl; + $output = executeQueryArray("autoinstall.getInstalledPackage", $args); + if(!$output->data) return null; + return array_shift($output->data); + } + + function getPackage($package_srl) + { + $args->package_srl = $package_srl; + $output = executeQueryArray("autoinstall.getPackage", $args); + if(!$output->data) return null; + return array_shift($output->data); + } + + function getCategoryList() + { + $output = executeQueryArray("autoinstall.getCategories"); + if(!$output->toBool() || !$output->data) return array(); + + $categoryList = array(); + foreach($output->data as $category) + { + $category->children = array(); + $categoryList[$category->category_srl] = $category; + } + + $depth0 = array(); + foreach($categoryList as $key => $category) + { + if($category->parent_srl) + { + $categoryList[$category->parent_srl]->children[] =& $categoryList[$key]; + } + else + { + $depth0[] = $key; + } + } + $resultList = array(); + foreach($depth0 as $category_srl) + { + $this->setDepth($categoryList[$category_srl], 0, $categoryList, $resultList); + } + return $resultList; + } + + function getPackageCount($category_srl) + { + $args->category_srl = $category_srl; + $output = executeQuery("autoinstall.getPackageCount", $args); + if(!$output->data) return 0; + return $output->data->count; + } + + function setDepth(&$item, $depth, &$list, &$resultList) + { + $resultList[] =& $item; + $item->depth = $depth; + $siblingList = $item->category_srl; + foreach($item->children as $child) + { + $siblingList .= ",".$this->setDepth($list[$child->category_srl], $depth+1, $list, $resultList); + } + if(count($item->children) < 1) + { + $item->nPackages = $this->getPackageCount($item->category_srl); + } + $item->childrenList = $siblingList; + return $siblingList; + } + + function getLatestPackage() { + $output = executeQueryArray("autoinstall.getLatestPackage"); + if(!$output->data) return null; + return array_shift($output->data); + } + + function getInstalledPackages(&$package_list) { + $args->package_list = &$package_list; + $output = executeQueryArray("autoinstall.getInstalledPackages", $args); + $result = array(); + if(!$output->data) return $result; + foreach($output->data as $value) + { + $result[$value->package_srl] = $value; + } + return $result; + } + + } +?> diff --git a/modules/autoinstall/autoinstall.view.php b/modules/autoinstall/autoinstall.view.php new file mode 100644 index 000000000..6de79151b --- /dev/null +++ b/modules/autoinstall/autoinstall.view.php @@ -0,0 +1,26 @@ +install($file, $checksum); + return $output; + } + } +?> diff --git a/modules/autoinstall/conf/info.xml b/modules/autoinstall/conf/info.xml new file mode 100644 index 000000000..6b7a412e0 --- /dev/null +++ b/modules/autoinstall/conf/info.xml @@ -0,0 +1,24 @@ + + + 자동설치 모듈 + Auto Installation Module + 관리자 모드에서 클릭으로 모듈/스킨/레이아웃/위젯/위젯스타일 등을 설치하는 모듈입니다. + Package management, automatic installation. + 0.1 + 2009-10-30 + system + + haneul + haneul + haneul + haneul + haneul + haneul + haneul + + + sol + sol + sol + + diff --git a/modules/autoinstall/conf/module.xml b/modules/autoinstall/conf/module.xml new file mode 100644 index 000000000..2cc9462c9 --- /dev/null +++ b/modules/autoinstall/conf/module.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/modules/autoinstall/lang/ko.lang.php b/modules/autoinstall/lang/ko.lang.php new file mode 100644 index 000000000..35633c0c5 --- /dev/null +++ b/modules/autoinstall/lang/ko.lang.php @@ -0,0 +1,21 @@ +autoinstall = 'Autoinstall'; + $lang->about_autoinstall = 'Autoinstall은 XpressEngine의 자동설치 모듈입니다.'; + $lang->package_update = '최근 업데이트'; + $lang->package_downloaded_count = '전체 다운로드'; + $lang->need_update = "업데이트가 필요합니다."; + + $lang->order_newest = "신규 등록"; + $lang->order_popular = "인기"; + $lang->order_download = "다운로드"; + $lang->success_installed = "설치가 성공하였습니다."; + $lang->view_all_package = "전체 보기"; + $lang->description_ftp_note = "FTP 설정이 안되어있으면 설치가 진행되지 않습니다. FTP설정을 해주세요"; + $lang->description_update = "새로 설치한 모듈의 버전 정보등은 업데이트를 눌러주시면 반영됩니다."; +?> diff --git a/modules/autoinstall/queries/deleteCategory.xml b/modules/autoinstall/queries/deleteCategory.xml new file mode 100644 index 000000000..f0cbea6d6 --- /dev/null +++ b/modules/autoinstall/queries/deleteCategory.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/modules/autoinstall/queries/deleteInstalledPackage.xml b/modules/autoinstall/queries/deleteInstalledPackage.xml new file mode 100644 index 000000000..feb3cc3df --- /dev/null +++ b/modules/autoinstall/queries/deleteInstalledPackage.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/autoinstall/queries/getCategories.xml b/modules/autoinstall/queries/getCategories.xml new file mode 100644 index 000000000..be66b8c1e --- /dev/null +++ b/modules/autoinstall/queries/getCategories.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/autoinstall/queries/getCategory.xml b/modules/autoinstall/queries/getCategory.xml new file mode 100644 index 000000000..99d8e7275 --- /dev/null +++ b/modules/autoinstall/queries/getCategory.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/autoinstall/queries/getInstalledPackage.xml b/modules/autoinstall/queries/getInstalledPackage.xml new file mode 100644 index 000000000..4c2680c49 --- /dev/null +++ b/modules/autoinstall/queries/getInstalledPackage.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/autoinstall/queries/getInstalledPackages.xml b/modules/autoinstall/queries/getInstalledPackages.xml new file mode 100644 index 000000000..f0d8afe07 --- /dev/null +++ b/modules/autoinstall/queries/getInstalledPackages.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/autoinstall/queries/getLatestPackage.xml b/modules/autoinstall/queries/getLatestPackage.xml new file mode 100644 index 000000000..9ce02710d --- /dev/null +++ b/modules/autoinstall/queries/getLatestPackage.xml @@ -0,0 +1,16 @@ + + +
+ + + + + + + + + + + + + diff --git a/modules/autoinstall/queries/getPackage.xml b/modules/autoinstall/queries/getPackage.xml new file mode 100644 index 000000000..ff00dd252 --- /dev/null +++ b/modules/autoinstall/queries/getPackage.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/autoinstall/queries/getPackageCount.xml b/modules/autoinstall/queries/getPackageCount.xml new file mode 100644 index 000000000..f1f3e05d0 --- /dev/null +++ b/modules/autoinstall/queries/getPackageCount.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/autoinstall/queries/getPackages.xml b/modules/autoinstall/queries/getPackages.xml new file mode 100644 index 000000000..e85b91ce6 --- /dev/null +++ b/modules/autoinstall/queries/getPackages.xml @@ -0,0 +1,8 @@ + + +
+ + + + + diff --git a/modules/autoinstall/queries/insertCategory.xml b/modules/autoinstall/queries/insertCategory.xml new file mode 100644 index 000000000..87e240d6f --- /dev/null +++ b/modules/autoinstall/queries/insertCategory.xml @@ -0,0 +1,10 @@ + + +
+ + + + + + + diff --git a/modules/autoinstall/queries/insertInstalledPackage.xml b/modules/autoinstall/queries/insertInstalledPackage.xml new file mode 100644 index 000000000..b05ddacc9 --- /dev/null +++ b/modules/autoinstall/queries/insertInstalledPackage.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/autoinstall/queries/insertPackage.xml b/modules/autoinstall/queries/insertPackage.xml new file mode 100644 index 000000000..4b0148c0f --- /dev/null +++ b/modules/autoinstall/queries/insertPackage.xml @@ -0,0 +1,13 @@ + + +
+ + + + + + + + + + diff --git a/modules/autoinstall/queries/updateCategory.xml b/modules/autoinstall/queries/updateCategory.xml new file mode 100644 index 000000000..ec2bbcf28 --- /dev/null +++ b/modules/autoinstall/queries/updateCategory.xml @@ -0,0 +1,12 @@ + + +
+ + + + + + + + + diff --git a/modules/autoinstall/queries/updateInstalledPackage.xml b/modules/autoinstall/queries/updateInstalledPackage.xml new file mode 100644 index 000000000..26f9c5926 --- /dev/null +++ b/modules/autoinstall/queries/updateInstalledPackage.xml @@ -0,0 +1,13 @@ + + +
+ + + + + + + + + + diff --git a/modules/autoinstall/queries/updatePackage.xml b/modules/autoinstall/queries/updatePackage.xml new file mode 100644 index 000000000..7ae6aefd0 --- /dev/null +++ b/modules/autoinstall/queries/updatePackage.xml @@ -0,0 +1,15 @@ + + +
+ + + + + + + + + + + + diff --git a/modules/autoinstall/schemas/autoinstall_installed_packages.xml b/modules/autoinstall/schemas/autoinstall_installed_packages.xml new file mode 100644 index 000000000..84b2ef4d0 --- /dev/null +++ b/modules/autoinstall/schemas/autoinstall_installed_packages.xml @@ -0,0 +1,6 @@ +
+ + + + +
diff --git a/modules/autoinstall/schemas/autoinstall_packages.xml b/modules/autoinstall/schemas/autoinstall_packages.xml new file mode 100644 index 000000000..cf1e102a9 --- /dev/null +++ b/modules/autoinstall/schemas/autoinstall_packages.xml @@ -0,0 +1,9 @@ + + + + + + + +
+ diff --git a/modules/autoinstall/schemas/autoinstall_remote_categories.xml b/modules/autoinstall/schemas/autoinstall_remote_categories.xml new file mode 100644 index 000000000..6e25f12b9 --- /dev/null +++ b/modules/autoinstall/schemas/autoinstall_remote_categories.xml @@ -0,0 +1,5 @@ + + + + +
diff --git a/modules/autoinstall/tpl/config.html b/modules/autoinstall/tpl/config.html new file mode 100644 index 000000000..1edb85f3e --- /dev/null +++ b/modules/autoinstall/tpl/config.html @@ -0,0 +1,37 @@ + + + +
+ + + + + + + + + + + + + + + + +
설치된 XE의 절대경로
{_XE_PATH_} +
설치된 XE의 FTP 절대경로 설정
+ +
+ + + +
+ +
+
diff --git a/modules/autoinstall/tpl/css/autoinstall.css b/modules/autoinstall/tpl/css/autoinstall.css new file mode 100644 index 000000000..619b42657 --- /dev/null +++ b/modules/autoinstall/tpl/css/autoinstall.css @@ -0,0 +1,47 @@ + +.leftBox { width:180px; float:left; margin-right:30px; padding-bottom:30px; } + +.leftBox .categoryBox { background-color:#F8F8F8; padding:10px; width:160px; overflow:hidden; } +.leftBox .categoryBox h3 { padding:0 0 10px 0; margin:0 0 10px 0; white-space:nowrap; overflow:hidden; color:#48494E; font-size:11px; font-weight:normal; background:transparent url(../img/hrE1.gif) repeat-x scroll left bottom;} +.leftBox .categoryBox h3 a { color:#48494E; font-size:12px; font-weight:bold; text-decoration:none; } +.leftBox .categoryBox ul.category { margin:10px 0 0 0; padding:0; list-style:none; } +.leftBox .categoryBox ul.category li { margin:0 0 10px 10px; } +.leftBox .categoryBox ul.category li a.selected { font-weight:bold; color:#2893BB; } +.leftBox .categoryBox ul.category li a { text-decoration:none; color:#7B7575; } +.leftBox .categoryBox ul.category li span { font-family:verdana; font-size:10px; color:#999; } + +.leftBox .categoryBox ul.resourceManage { margin:0; padding:10px 0 0 0; list-style:none; background:transparent url(../img/hrE1.gif) repeat-x scroll left top; } +.leftBox .categoryBox ul.resourceManage li { background:url(../img/btnManage.gif) no-repeat 2px 2px; padding-left:14px; white-space:nowrap; overflow:hidden; margin-bottom:10px; } +.leftBox .categoryBox ul.resourceManage li a { text-decoration:none; color:#747474; } +.leftBox .categoryBox ul.resourceManage li a.selected { font-weight:bold; } + +.leftBox .searchBox { padding:10px 0; text-align:center; background:transparent url(../img/hrE1.gif) repeat-x scroll left top;} +.leftBox .searchBox input.input { border:1px solid #ddd; width:120px; height:16px;} +.leftBox .searchBox input.submit { vertical-align:middle; } + +.resourceContent { position:relative; *zoom:1; overflow:hidden; } + +table.packageList {width:100%; height:100px; table-layout:fixed; border-bottom:1px solid #ddd; } +table td { vertical-align:top; } +table td.thumbnail { text-align:center; padding:10px 0; } +table td.thumbnail img { border:1px solid #ccc; padding:2px; overflow:hidden; *zoom:1; } +table td.title { height:18px; padding:10px 0 0 0;} +table td.title h3 { padding:0; margin:0; } +table td.title a {text-decoration:none; color:#000; } +table td.description { padding:5px 0 0 0; color:#777; height:44px; white-space:normal; overflow:hidden; } +table td.info { height:18px; } +table td.info ul { list-style:none; padding:0; margin:0; } +table td.info ul li { float:left; margin-right:20px; white-space:nowrap; } +table td.info ul li.category a { text-decoration:none; color:#888; font-weight:bold; } +table td.info ul li.voted { color:#666; font-family:tahoma; font-size:10px;} +table td.info ul li.downloaded { background:url(../img/iconFile.gif) no-repeat left 2px; padding-left:16px; color:#666; font-family:tahoma; font-size:10px;} +table td.info ul li.info { color:#aaa; font-family:tahoma; font-size:11px;} +table td.info ul li.info a { text-decoration:none; color:#aaa; } +table td.info ul li.author a { text-decoration:none; color:#444; } + +ul.listOrder { margin:10px 0 0 0; padding:0 0 10px 0; text-align:left; background:transparent url(../img/hrE1.gif) repeat-x scroll left bottom;} +ul.listOrder.asc li.arrow { background:url(../img/arrUp.gif) no-repeat right 2px; padding-right:10px; } +ul.listOrder.desc li.arrow { background:url(../img/arrDown.gif) no-repeat right 2px; padding-right:10px; } +ul.listOrder li { display:inline; margin-left:10px; } +ul.listOrder li.arrow a { text-decoration:none; font-weight:bold; color:#2893BB; } +ul.listOrder li a { text-decoration:none; color:#7B7575; } diff --git a/modules/autoinstall/tpl/filter/insert_config.xml b/modules/autoinstall/tpl/filter/insert_config.xml new file mode 100644 index 000000000..08b866eca --- /dev/null +++ b/modules/autoinstall/tpl/filter/insert_config.xml @@ -0,0 +1,9 @@ + +
+ + + + + + +
diff --git a/modules/autoinstall/tpl/header.html b/modules/autoinstall/tpl/header.html new file mode 100644 index 000000000..9c5655dfb --- /dev/null +++ b/modules/autoinstall/tpl/header.html @@ -0,0 +1,8 @@ +

autoinstall module {$lang->cmd_management}

+ +
+ +
diff --git a/modules/autoinstall/tpl/img/arrDown.gif b/modules/autoinstall/tpl/img/arrDown.gif new file mode 100644 index 0000000000000000000000000000000000000000..f99fafc0529f9e9800dc50ed81a53db8346bab3c GIT binary patch literal 60 zcmZ?wbhEHbe#7av{EO#oxz)XX zQNnZnwnrY*?v_k@b!ywXDRv*duYc>UI@k04U;d?&Ee95Tyz#)XI|MaiB8VErB}U^0ao-iwt07PdCl6k{df;G$ zQf4~sbUI_{lqoGD6e}%-QbD>`Y-tBdVVL;@{{Y|N_YUv)Dyu3=N^2#M1PVY94*<_E z(}`-9+UF1OfJd}Cc5zXM6ME9n4y##q0l{=?OpogDQ1~}(vCJ?th#F%UhN5U=x7lPi zvn&e$=W@9LznGkzwSBi!v^klY>mMBKP-}d?fKmk~=TbOnm`%<(oG#DL@sY8y&ng(j z@GevL59cs~>S(hCBT3q7)#BtlyD;hXD-kp{ofvg{dMv%nOft?eN?45zef_=P22u<2 z2`1t92LTVlk*R1b8jnx6!H9|O!3dJ$ff7cdv3R=*`C_E3U;8vTiD1}(%@z!Yd5-sb z{h`Pdsv`i;c_t?G2FmRj?^J7}(+SV`Bt{tiL}TsBP5=P(-{jAW{_RD}E`I{0>FZ?; zjq)Z%bBki@wJR$do^BE}OUn1HTeGe5odCKeU$G-EZCC!Gtf~j;GDsv(-??h{rL(7w zzr1m$?R{fGMfLs7GErg1_JcCP2KnKeN5zeopC5biP*Iw3`^brgS9N8ttxX3??qzO# z^JwqgCy$#?=A5tDzok}~z2`!UNP6+KaCK4kxlh$%NSgQTZEK;iRg@<^Q(Pb&5-D=C lu4jsK*4B7G<_hWRR6%-udHK~y@%lQmm;O+kCKfCMz{Q{g5(b&Uz@ii2X}N5w#zJdh-B Tp(?CL)+aFL7%+IUFjxZsw%0A7 literal 0 HcmV?d00001 diff --git a/modules/autoinstall/tpl/index.html b/modules/autoinstall/tpl/index.html new file mode 100644 index 000000000..4fc2f2f99 --- /dev/null +++ b/modules/autoinstall/tpl/index.html @@ -0,0 +1,22 @@ + + + +
+ +{$lang->description_ftp_note} + + +

+{$lang->need_update}

+ +

{$lang->description_update}

+ +Update +
+
+ + + + + + diff --git a/modules/autoinstall/tpl/install.html b/modules/autoinstall/tpl/install.html new file mode 100644 index 000000000..ae1bc4e75 --- /dev/null +++ b/modules/autoinstall/tpl/install.html @@ -0,0 +1,35 @@ + + + +
+ + + + + + + + + + + + + + + + +
+

+ {$package->title} ver. {$package->version} ( 현재버전: {$package->cur_version} (업데이트가 필요합니다.) 인스톨이 필요합니다. ) +

+
의존하고 있는 프로그램 + + {$dep->title} ver. {$dep->version} - + 현재버전: {$dep->cur_version} (업데이트가 필요합니다.) 인스톨이 필요합니다. +
+ +
+ 설치를 진행하면 의존성이 있는 모든 프로그램을 함께 설치합니다. 설치하기 +
+ +
diff --git a/modules/autoinstall/tpl/js/autoinstall.js b/modules/autoinstall/tpl/js/autoinstall.js new file mode 100644 index 000000000..4e65fd53f --- /dev/null +++ b/modules/autoinstall/tpl/js/autoinstall.js @@ -0,0 +1,26 @@ +function completeUpdate(ret_obj) { + alert(ret_obj['message']); + location.reload(); +} + +function doUpdate() { + var params = new Array(); + exec_xml('autoinstall', 'procAutoinstallAdminUpdateinfo', params, completeUpdate); +} + +function doInstallPackage(package_srl) { + var params = new Array(); + params['package_srl'] = package_srl; + exec_xml('autoinstall', 'procAutoinstallAdminPackageinstall', params, completeInstall); +} + +function completeUpdateNoMsg(ret_obj) { + location.reload(); +} + +function completeInstall(ret_obj) { + alert(ret_obj['message']); + var params = new Array(); + exec_xml('autoinstall', 'procAutoinstallAdminUpdateinfo', params, completeUpdateNoMsg); +} + diff --git a/modules/autoinstall/tpl/leftBox.html b/modules/autoinstall/tpl/leftBox.html new file mode 100644 index 000000000..a89bdac5b --- /dev/null +++ b/modules/autoinstall/tpl/leftBox.html @@ -0,0 +1,47 @@ +
+
+

{$lang->view_all_package} ({$tCount})

+ {@ $_pDepth = 0;} + +
    + + + +
+ + + {@ $_pDepth = $val->depth} + +
  • + + category_srl == $category_srl)--> class="selected">{$val->title} + + category_srl == $category_srl)--> class="selected">{$val->title} + + + ({$val->nPackages}) + + + {@$_pDepth++} +
      + + + + + +
    + +
  • + + +
    + +
    diff --git a/modules/autoinstall/tpl/list.html b/modules/autoinstall/tpl/list.html new file mode 100644 index 000000000..f8752c1ba --- /dev/null +++ b/modules/autoinstall/tpl/list.html @@ -0,0 +1,94 @@ +
    +
      + + {@$_order_type = 'asc'}{@$_order_type = 'desc'} + + {@$_order_type = 'desc'} + +
    • class="arrow">{$lang->order_newest}
    • + + {@$_order_type = 'asc'}{@$_order_type = 'desc'} + + {@$_order_type = 'desc'} + +
    • class="arrow">{$lang->order_download}
    • + + {@$_order_type = 'asc'}{@$_order_type = 'desc'} + + {@$_order_type = 'desc'} + +
    • class="arrow">{$lang->order_popular}
    • +
    + + + + + + + + {@ $target_url = $original_site."?mid=download&package_srl=".$val->package_srl; } + + + + + + + + + + + + + + + + +
    +

    + {htmlspecialchars($val->title)} ver. {htmlspecialchars($val->item_version)} +

    +
    +
    {cut_str(htmlspecialchars($val->package_description),200)}
    +
      +
    • + {$lang->package_update} {zdate($val->item_regdate, "Y-m-d H:i")} + / {$lang->package_downloaded_count} : {number_format($val->package_downloaded)} + + +
    • +
    +
    + +
    + + + +
    From 89a1f948982fa5614c6f9ce42ab786f943c7bb86 Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 10 Nov 2009 13:34:36 +0000 Subject: [PATCH 55/72] url changed git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6916 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/autoinstall/autoinstall.admin.controller.php | 2 +- modules/autoinstall/autoinstall.class.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/autoinstall/autoinstall.admin.controller.php b/modules/autoinstall/autoinstall.admin.controller.php index 452f35c54..32ed4378b 100644 --- a/modules/autoinstall/autoinstall.admin.controller.php +++ b/modules/autoinstall/autoinstall.admin.controller.php @@ -7,7 +7,7 @@ class ModuleInstaller { var $package = null; - var $base_url = 'http://resource.xpressengine.com/'; + var $base_url = 'http://download.xpressengine.com/'; var $temp_dir = './files/cache/autoinstall/'; var $target_path; var $download_file; diff --git a/modules/autoinstall/autoinstall.class.php b/modules/autoinstall/autoinstall.class.php index 7b4ec4760..221de96b9 100644 --- a/modules/autoinstall/autoinstall.class.php +++ b/modules/autoinstall/autoinstall.class.php @@ -31,7 +31,7 @@ } class autoinstall extends ModuleObject { - var $uri = "http://resource.xpressengine.com/"; + var $uri = "http://download.xpressengine.com/"; var $original_site = "http://www.xpressengine.com/"; var $tmp_dir = './files/cache/autoinstall/'; From c59adbb7d387a12347337778189e6d142f8137f6 Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 11 Nov 2009 01:47:05 +0000 Subject: [PATCH 56/72] =?UTF-8?q?#18427758=20DB=20=EC=A0=91=EC=86=8D?= =?UTF-8?q?=ED=9B=84=20password=20=EC=95=94=ED=98=B8=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6917 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DBCubrid.class.php | 1 + classes/db/DBFirebird.class.php | 1 + classes/db/DBMssql.class.php | 1 + classes/db/DBMysql.class.php | 1 + classes/db/DBMysql_innodb.class.php | 1 + classes/db/DBMysqli.class.php | 1 + classes/db/DBPostgresql.class.php | 2 +- classes/db/DBSqlite2.class.php | 1 + classes/db/DBSqlite3_pdo.class.php | 1 + 9 files changed, 9 insertions(+), 1 deletion(-) diff --git a/classes/db/DBCubrid.class.php b/classes/db/DBCubrid.class.php index 46b0939dd..803f7195c 100644 --- a/classes/db/DBCubrid.class.php +++ b/classes/db/DBCubrid.class.php @@ -87,6 +87,7 @@ } $this->is_connected = true; + $this->password = md5($this->password); } /** diff --git a/classes/db/DBFirebird.class.php b/classes/db/DBFirebird.class.php index 462ec175b..7f8a475b7 100644 --- a/classes/db/DBFirebird.class.php +++ b/classes/db/DBFirebird.class.php @@ -112,6 +112,7 @@ // 접속체크 $this->is_connected = true; + $this->password = md5($this->password); } /** diff --git a/classes/db/DBMssql.class.php b/classes/db/DBMssql.class.php index c42078980..17a442686 100644 --- a/classes/db/DBMssql.class.php +++ b/classes/db/DBMssql.class.php @@ -83,6 +83,7 @@ // 접속체크 if($this->conn){ $this->is_connected = true; + $this->password = md5($this->password); }else{ $this->is_connected = false; } diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index 572cdc024..394001050 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -97,6 +97,7 @@ // 접속체크 $this->is_connected = true; + $this->password = md5($this->password); // mysql의 경우 utf8임을 지정 $this->_query("set names 'utf8'"); diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php index 62ef273d3..dcef02b3b 100644 --- a/classes/db/DBMysql_innodb.class.php +++ b/classes/db/DBMysql_innodb.class.php @@ -97,6 +97,7 @@ // 접속체크 $this->is_connected = true; + $this->password = md5($this->password); // mysql의 경우 utf8임을 지정 $this->_query("set names 'utf8'"); diff --git a/classes/db/DBMysqli.class.php b/classes/db/DBMysqli.class.php index 99faa0e0e..826ddd103 100644 --- a/classes/db/DBMysqli.class.php +++ b/classes/db/DBMysqli.class.php @@ -88,6 +88,7 @@ // 접속체크 $this->is_connected = true; + $this->password = md5($this->password); } /** diff --git a/classes/db/DBPostgresql.class.php b/classes/db/DBPostgresql.class.php index 9b164b047..08414f076 100644 --- a/classes/db/DBPostgresql.class.php +++ b/classes/db/DBPostgresql.class.php @@ -104,7 +104,7 @@ class DBPostgresql extends DB // 접속체크 $this->is_connected = true; - + $this->password = md5($this->password); // utf8임을 지정 //$this ->_query('set client_encoding to uhc'); } diff --git a/classes/db/DBSqlite2.class.php b/classes/db/DBSqlite2.class.php index e1d0b4bd6..d7d11a2aa 100644 --- a/classes/db/DBSqlite2.class.php +++ b/classes/db/DBSqlite2.class.php @@ -76,6 +76,7 @@ // 접속체크 $this->is_connected = true; + $this->password = md5($this->password); } /** diff --git a/classes/db/DBSqlite3_pdo.class.php b/classes/db/DBSqlite3_pdo.class.php index 3c97682a9..6df2050e2 100644 --- a/classes/db/DBSqlite3_pdo.class.php +++ b/classes/db/DBSqlite3_pdo.class.php @@ -84,6 +84,7 @@ // 접속체크 $this->is_connected = true; + $this->password = md5($this->password); } /** From ee2a8913bd57620b5f256f63d66fd8e417b06fa1 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 11 Nov 2009 04:40:22 +0000 Subject: [PATCH 57/72] #18427049 : remove cache after installation git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6918 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/autoinstall/autoinstall.admin.controller.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/autoinstall/autoinstall.admin.controller.php b/modules/autoinstall/autoinstall.admin.controller.php index 32ed4378b..d1fdabce9 100644 --- a/modules/autoinstall/autoinstall.admin.controller.php +++ b/modules/autoinstall/autoinstall.admin.controller.php @@ -51,6 +51,7 @@ $file_list = $this->_unPack(); $this->_copyDir($file_list); + FileHandler::removeDir($this->temp_dir); return; } From 0a25ab09b5661f7320af8c8437816f0d1851f990 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 11 Nov 2009 04:48:06 +0000 Subject: [PATCH 58/72] #18291306 : check if debugPrint buff is empty before printing git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6919 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/display/DisplayHandler.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 1f0f12928..d18c3373b 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -379,7 +379,7 @@ } // HTML 주석으로 출력 - if(__DEBUG_OUTPUT__ == 1 && Context::getResponseMethod() == 'HTML') { + if($buff && __DEBUG_OUTPUT__ == 1 && Context::getResponseMethod() == 'HTML') { $buff = sprintf("[%s %s:%d]\n%s\n", date('Y-m-d H:i:s'), $file_name, $line_num, print_r($buff, true)); if(__DEBUG_PROTECT__ == 1 && __DEBUG_PROTECT_IP__ != $_SERVER['REMOTE_ADDR']) { @@ -390,7 +390,7 @@ } // 파일에 출력 - if(__DEBUG_OUTPUT__ == 0) { + if($buff && __DEBUG_OUTPUT__ == 0) { $debug_file = _XE_PATH_.'files/_debug_message.php'; $buff = sprintf("[%s %s:%d]\n%s\n", date('Y-m-d H:i:s'), $file_name, $line_num, print_r($buff, true)); From 0a2c1409f5a470da1fdc34c5bbab3651a5e25300 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 11 Nov 2009 06:00:14 +0000 Subject: [PATCH 59/72] #17242660 : add a feature sorting member list with last_login git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6920 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/member/member.admin.model.php | 10 ++++++++-- modules/member/queries/getMemberList.xml | 2 +- modules/member/queries/getMemberListWithinGroup.xml | 2 +- modules/member/tpl/member_list.html | 6 +++--- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/modules/member/member.admin.model.php b/modules/member/member.admin.model.php index 9066376d7..fcf1147f8 100644 --- a/modules/member/member.admin.model.php +++ b/modules/member/member.admin.model.php @@ -75,13 +75,19 @@ } // selected_group_srl이 있으면 query id를 변경 (table join때문에) + $sort_index = Context::get('sort_index'); + if($sort_index != 'last_login') $sort_index = "member_srl"; if($args->selected_group_srl) { $query_id = 'member.getMemberListWithinGroup'; - $args->sort_index = "member.member_srl"; + $args->sort_index = "member.".$sort_index; } else { $query_id = 'member.getMemberList'; - $args->sort_index = "member_srl"; + $args->sort_index = $sort_index; } + $sort_order = Context::get('sort_order'); + if($sort_order != "asc") $sort_order = "desc"; + $args->sort_order = $sort_order; + Context::set('sort_order', $sort_order); // 기타 변수들 정리 $args->page = Context::get('page'); diff --git a/modules/member/queries/getMemberList.xml b/modules/member/queries/getMemberList.xml index 95bf6961d..a532ef84a 100644 --- a/modules/member/queries/getMemberList.xml +++ b/modules/member/queries/getMemberList.xml @@ -23,7 +23,7 @@ - + diff --git a/modules/member/queries/getMemberListWithinGroup.xml b/modules/member/queries/getMemberListWithinGroup.xml index e80affa2f..355865943 100644 --- a/modules/member/queries/getMemberListWithinGroup.xml +++ b/modules/member/queries/getMemberListWithinGroup.xml @@ -26,7 +26,7 @@ - + diff --git a/modules/member/tpl/member_list.html b/modules/member/tpl/member_list.html index f021161e7..1556aa84f 100644 --- a/modules/member/tpl/member_list.html +++ b/modules/member/tpl/member_list.html @@ -40,13 +40,13 @@ Total {number_format($total_count)}, Page {number_format($page)}/{number_format($total_page)} -
    {$lang->no}
    +
    {$lang->user_id}
    {$lang->user_name}
    {$lang->nick_name}
    -
    {$lang->signup_date}
    -
    {$lang->last_login}
    + +
     
    From cb6e5687f78bf40b0ab851036c9261c0b02a3407 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 11 Nov 2009 06:55:03 +0000 Subject: [PATCH 60/72] #18427049 : support cafe24 git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6921 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/autoinstall/autoinstall.admin.controller.php | 11 +++++++++++ modules/autoinstall/autoinstall.admin.view.php | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/modules/autoinstall/autoinstall.admin.controller.php b/modules/autoinstall/autoinstall.admin.controller.php index d1fdabce9..8dc7f80a0 100644 --- a/modules/autoinstall/autoinstall.admin.controller.php +++ b/modules/autoinstall/autoinstall.admin.controller.php @@ -83,6 +83,17 @@ return new Object(-1,'msg_ftp_invalid_auth_info'); } + $_list = $oFtp->ftp_rawlist($config->ftp_root_path); + if(count($_list) == 0 || !$_list[0]) { + $oFtp->ftp_quit(); + $oFtp = new ftp(); + if(!$oFtp->ftp_connect($_SERVER['SERVER_NAME'], $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); + if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $oFtp->ftp_quit(); + return new Object(-1,'msg_ftp_invalid_auth_info'); + } + } + $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('autoinstall'); diff --git a/modules/autoinstall/autoinstall.admin.view.php b/modules/autoinstall/autoinstall.admin.view.php index c4116a1bb..7bda6575f 100644 --- a/modules/autoinstall/autoinstall.admin.view.php +++ b/modules/autoinstall/autoinstall.admin.view.php @@ -204,6 +204,17 @@ $_list = $oFtp->ftp_rawlist($pwd); $oFtp->ftp_quit(); $list = array(); + if(count($_list) == 0 || !$_list[0]) { + $oFtp = new ftp(); + if(!$oFtp->ftp_connect($_SERVER['SERVER_NAME'], $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); + if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $oFtp->ftp_quit(); + return new Object(-1,'msg_ftp_invalid_auth_info'); + } + + $_list = $oFtp->ftp_rawlist($pwd); + $oFtp->ftp_quit(); + } if($_list){ foreach($_list as $k => $v){ if(strpos($v,'d') === 0) $list[] = substr(strrchr($v,' '),1) . '/'; From eb4499f16b71b02f95f0e3ac77930b5d62f2255f Mon Sep 17 00:00:00 2001 From: c2joy Date: Wed, 11 Nov 2009 06:55:11 +0000 Subject: [PATCH 61/72] =?UTF-8?q?=EC=A4=91=EA=B5=AD=EC=96=B4=20-=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=EC=84=A4=EC=B9=98=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EB=B2=88=EC=97=AD=20=EC=A4=91=EA=B5=AD=EC=96=B4=20-=20?= =?UTF-8?q?=EC=9D=BC=EB=B6=80=20=EA=B8=B0=EC=A1=B4=20=EB=B2=88=EC=97=AD=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6922 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/captcha/conf/info.xml | 106 ++--- addons/mobile/conf/info.xml | 2 +- addons/smartphone/conf/info.xml | 11 +- common/lang/zh-CN.lang.php | 45 +- layouts/xe_official/conf/info.xml | 30 +- modules/addon/lang/zh-CN.lang.php | 2 +- modules/admin/lang/zh-CN.lang.php | 13 +- modules/autoinstall/conf/info.xml | 9 +- modules/autoinstall/lang/zh-CN.lang.php | 21 + modules/comment/lang/zh-CN.lang.php | 2 +- modules/document/lang/zh-CN.lang.php | 37 +- .../components/multimedia_link/info.xml | 4 +- modules/editor/lang/zh-CN.lang.php | 448 +++++++++--------- modules/editor/skins/xpresseditor/skin.xml | 20 +- modules/editor/styles/default/skin.xml | 17 +- modules/editor/styles/xeStyle/skin.xml | 6 + modules/editor/styles/xeStyleBlack/skin.xml | 6 + modules/file/lang/zh-CN.lang.php | 8 +- .../integration_search/lang/zh-CN.lang.php | 6 +- modules/layout/lang/zh-CN.lang.php | 2 +- modules/member/lang/zh-CN.lang.php | 8 +- modules/module/lang/zh-CN.lang.php | 17 +- modules/page/lang/zh-CN.lang.php | 2 +- modules/point/lang/zh-CN.lang.php | 12 +- modules/poll/lang/zh-CN.lang.php | 2 +- modules/rss/lang/zh-CN.lang.php | 2 +- modules/spamfilter/lang/zh-CN.lang.php | 4 +- widgets/content/conf/info.xml | 53 ++- widgets/counter_status/conf/info.xml | 6 +- widgetstyles/simple/skin.xml | 34 +- 30 files changed, 511 insertions(+), 424 deletions(-) create mode 100644 modules/autoinstall/lang/zh-CN.lang.php diff --git a/addons/captcha/conf/info.xml b/addons/captcha/conf/info.xml index 181f46bdb..3ece27bcf 100644 --- a/addons/captcha/conf/info.xml +++ b/addons/captcha/conf/info.xml @@ -2,7 +2,7 @@ Captcha 애드온 CAPTCHA addon - Captcha Addon + Captcha Addon 验证码插件 Captchaアドオン 圖形驗證 @@ -20,7 +20,7 @@
    为了解决互联网垃圾而开发的验证码机制。 - 非登录用户发布话题或评论时将会弹出验证图片选择框,选择正确的图片才可以正常发布(适用于版面/issueTracker)。 + 非登录用户发布话题或评论时将会弹出验证图片选择框,选择正确的图片才可以正常发布(适用于版面/issueTracker)。 ボット(bot)がプログラムによるスパム行為を防ぐために、掲示板/issueTrackerで書き込み・コメントを登録する際、ランダムな文字や数字の列を画面に表示し、表示されたものと一致した情報を入力した時、登録が出来るようにするアドオンです。 @@ -34,132 +34,132 @@ zero - zero - zero + zero + zero zero - zero + zero zero Captcha 표시 대상 + 应用对象 + Captchaを表示する対象 + 選擇目標 Captcha Target Mục tiêu Captcha hiển thị - 应用对象 - Captchaを表示する対象 - 選擇目標 글/댓글 등록시 captcha가 동작할 대상을 정할 수 있습니다. 관리자는 무조건 제외됩니다 + 可以指定验证码应用对象(管理员除外)。 + 管理者を除き、書き込み・コメントを入力する際にcaptchaイメージを見せる対象を設定します。 + 除了管理員,在發表主題或評論時,設定圖形驗證應用的對象。 You may specify targets CAPTCHA work. It's not applied when administrator writes. Khi gửi bài, bình luận, Capcha sẽ hiển thị để xác nhận hành động của người sử dụng. Chức năng này không hoạt động với người quản lý. - 可以指定验证码应用对象(管理员除外)。 - 管理者を除き、書き込み・コメントを入力する際にcaptchaイメージを見せる対象を設定します。 - 除了管理員,在發表主題或評論時,設定圖形驗證應用的對象。 로그인하지 않은 사용자 + 非登录用户 + ログインしてないユーザー + 非用戶 Not logged-in users Người dùng chưa đăng nhập - 非登录用户 - ログインしてないユーザー - 非用戶 모든 사용자 + 所有用户 + すべてのユーザー + 所有用戶 All users Tất cả mọi người - 所有用户 - すべてのユーザー - 所有用戶 동작 방식 + 验证方式 + 動作方式 + 行為模式 How it works Sử dụng - 验证方式 - 動作方式 - 行為模式 "1번만 동작"을 선택하시면 1번만 동작후 상태를 저장해서 다음부터 물어보지 않고 그렇지 않으면 매번 물어보게 됩니다 + "一次"就是每个IP只出现一次验证。 + 「1回だけ表示」を選択すると、最初だけ動作した後、その情報を記憶して次回からはCaptchaを見せないようにします。また、もう一つのオプションは毎回Captchaを表示します。 + 選擇"單次",產生第一次動作後,下次不會再顯示;選擇"每次"則會一直顯示。 If you choose "Once", CAPTCHA works only once for the user by storing status. Otherwise, this addon would show an image every time the user writes. Nếu chọn "Chỉ một lần" thì sau lần hiển thị đó Capcha sẽ không hiển thị với người sử dụng đó nữa. - "一次"就是每个IP只出现一次验证。 - 「1回だけ表示」を選択すると、最初だけ動作した後、その情報を記憶して次回からはCaptchaを見せないようにします。また、もう一つのオプションは毎回Captchaを表示します。 - 選擇"單次",產生第一次動作後,下次不會再顯示;選擇"每次"則會一直顯示。 1번만 동작 + 一次 + 1回だけ表示 + 單次 Chỉ một lần once - 一次 - 1回だけ表示 - 單次 매번 동작 + 每次 + 毎回表示 + 每次 every time Luôn sử dụng - 每次 - 毎回表示 - 每次 비밀번호 찾기 적용 + 应用到查找密码功能 + 비밀번호 찾기 적용 + 비밀번호 찾기 적용 applying to an action finding account Khi lấy lại mật khẩu - 비밀번호 찾기 적용 - 비밀번호 찾기 적용 - 비밀번호 찾기 적용 적용으로 하시면 비밀번호 찾기 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. + 启用此项功能可以有效地拦截以查找密码名义发送的垃圾邮件。 + 적용으로 하시면 비밀번호찾기 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. + 적용으로 하시면 비밀번호찾기 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. If you set this option as apply, CAPTCHA will work for finding account action, too. Nếu áp dụng, khi thành viên cần lấy lại mật khẩu khi lỡ quên, Capcha sẽ hiện thị để xác nhận việc này. - 적용으로 하시면 비밀번호 찾기 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. - 적용으로 하시면 비밀번호 찾기 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. - 적용으로 하시면 비밀번호찾기 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. 적용하지 않음 + 不启用 + 적용하지 않음 + 적용하지 않음 Not apply Không áp dụng - 적용하지 않음 - 적용하지 않음 - 적용하지 않음 적용 + 启用 + 적용 + 적용 Apply Áp dụng - 적용 - 적용 - 적용 인증 메일 재발송 적용 + 应用到认证邮件重新发送功能 + 인증 메일 재발송 적용 + 인증 메일 재발송 적용 apply to an action resending authmail Khi lấy lại mã kích hoạt - 인증 메일 재발송 적용 - 인증 메일 재발송 적용 - 인증 메일 재발송 적용 적용으로 하시면 인증 메일 재발송 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. + 启用此项功能可以有效地拦截以重新发送认证邮件名义发送的垃圾邮件。 + 적용으로 하시면 인증 메일 재발송 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. + 적용으로 하시면 인증 메일 재발송 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. If you set this option as apply, CAPTCHA will work for resending authmail action, too. Nếu áp dụng, khi thành viên cần lấy lại mã kích hoạt thành viên, Capcha sẽ hiện thị để xác nhận việc này. - 적용으로 하시면 인증 메일 재발송 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. - 적용으로 하시면 인증 메일 재발송 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. - 적용으로 하시면 인증 메일 재발송 기능에도 적용되어 악의적인 봇(또는 프로그램)에 의한 메일 발송을 막을 수 있습니다. 적용하지 않음 + 不启用 + 적용하지 않음 + 적용하지 않음 Not apply Không áp dụng - 적용하지 않음 - 적용하지 않음 - 적용하지 않음 적용 + 启用 + 적용 + 적용 Apply Áp dụng - 적용 - 적용 - 적용 diff --git a/addons/mobile/conf/info.xml b/addons/mobile/conf/info.xml index d97cbe787..ac7b1bb37 100644 --- a/addons/mobile/conf/info.xml +++ b/addons/mobile/conf/info.xml @@ -45,7 +45,7 @@ misol - misol + misol misol misol misol diff --git a/addons/smartphone/conf/info.xml b/addons/smartphone/conf/info.xml index 5825baba0..3c16e2adf 100644 --- a/addons/smartphone/conf/info.xml +++ b/addons/smartphone/conf/info.xml @@ -1,16 +1,20 @@ SmartPhone XE 애드온 - SmartPhone XE + SmartPhone XE + 智能手机XE插件 SmartPhone XE SmartPhone XE SmartPhone XE アドオン IPhone (touch) 등, smartphone 에서 접속시 최적화된 화면을 보여줍니다. - + This addon displays the best screen for users who use smartphones like IPhone (touch). + + 用于IPhone(touch)等智能手机访问时的界面优化。 + Addon này sẽ hiển thị Website trên màn hình iPhone một cách tốt nhất khi người dùng sử dụng SmartPhone để truy cập (iPhone cảm ứng) @@ -24,7 +28,8 @@ 2009-04-20 haneul - haneul + haneul + haneul haneul haneul haneul diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php index 9d9b04c54..0c3015f89 100644 --- a/common/lang/zh-CN.lang.php +++ b/common/lang/zh-CN.lang.php @@ -2,7 +2,7 @@ /** * @file common/lang/zh-CN.lang.php * @author zero (zero@nzeo.com) - * @brief 简体中文语言包 (只收录基本内容) + * @brief 简体中文语言包 **/ // 基本使用的 action 语言 @@ -24,16 +24,16 @@ $lang->cmd_load = '导入'; $lang->cmd_input = '输入'; $lang->cmd_search = '搜索'; - $lang->cmd_find = '찾기'; - $lang->cmd_replace = '바꾸기'; - $lang->cmd_confirm = '확인'; + $lang->cmd_find = '查找'; + $lang->cmd_replace = '替换'; + $lang->cmd_confirm = '确认'; $lang->cmd_cancel = '取消'; $lang->cmd_back = '返回'; $lang->cmd_vote = '推荐'; $lang->cmd_vote_down = '反对'; $lang->cmd_declare = '举报'; $lang->cmd_cancel_declare = '取消举报'; - $lang->cmd_declared_list = '举报目录'; + $lang->cmd_declared_list = '举报列表'; $lang->cmd_copy = '复制'; $lang->cmd_move = '移动'; $lang->cmd_move_up = '向上'; @@ -124,7 +124,7 @@ $lang->file = '文件'; $lang->mid = '模块名称'; - $lang->sid = 'Site Name'; + $lang->sid = '站点名称'; $lang->layout = '布局'; $lang->widget = '控件 '; $lang->module = '模块'; @@ -209,7 +209,7 @@ $lang->about_layout = '布局是布置模块的外观,在上端布局菜里单可以进行管理'; // 信息 - $lang->msg_call_server = '系统正在链接服务器,请稍后。'; + $lang->msg_call_server = '系统正在连接服务器,请稍后…'; $lang->msg_db_not_setted = '还没有设定 DB'; $lang->msg_dbconnect_failed = "连接DB时发生错误。\n请重新确认DB信息。"; $lang->msg_invalid_queryid = 'Query ID值指定错误'; @@ -221,18 +221,19 @@ $lang->msg_error_occured = '发生错误'; $lang->msg_not_founded = '没有找到相关内容'; $lang->msg_no_result = '找不到和您查询的相符结果'; - $lang->msg_fail_to_request_open = 'Fail to open your request'; - $lang->msg_invalid_format = 'Invalid Format'; + $lang->msg_fail_to_request_open = '连接失败!'; + $lang->msg_invalid_format = '错误的格式!'; $lang->msg_not_permitted_act = '没有权限执行 action命令'; - $lang->msg_module_is_not_exists = "요청하신 모듈을 찾을 수 없습니다.\n사이트 관리자에게 모듈 점검 요청 바랍니다"; + $lang->msg_module_is_not_exists = "没有找到该模块!\n请联系网站管理员进行模块维护。"; $lang->msg_module_is_not_standalone = '您请求的模块不能单独执行'; - $lang->msg_default_url_is_not_defined = '기본 URL이 정해지지 않아서 동작을 중지합니다'; + $lang->msg_default_url_is_not_defined = '请设置XE通行证!'; $lang->success_registed = '提交成功!'; $lang->success_declared = '举报成功!'; $lang->success_updated = '修改成功!'; $lang->success_deleted = '删除成功!'; + $lang->success_restore = '复原成功!'; $lang->success_voted = '推荐成功!'; $lang->success_blamed = '反对成功!'; $lang->success_moved = '移动成功!'; @@ -253,28 +254,29 @@ $lang->confirm_logout = '确定要退出吗?'; $lang->confirm_vote = '确定要推荐吗?'; $lang->confirm_delete = '确定要删除吗?'; + $lang->confirm_restore = '确定要复原吗?'; $lang->confirm_move = '确定要移动吗?'; $lang->confirm_reset = '确定要初始化吗?'; $lang->confirm_leave = '确定要注销吗?'; $lang->column_type = '格式'; $lang->column_type_list['text'] = '单行文本输入区(text)'; - $lang->column_type_list['homepage'] = '网址格式 (url)'; - $lang->column_type_list['email_address'] = '邮件格式 (email)'; - $lang->column_type_list['tel'] = '电话号码格式 (phone)'; - $lang->column_type_list['textarea'] = '多行文本框 (textarea)'; - $lang->column_type_list['checkbox'] = '复选框 (checkbox)'; - $lang->column_type_list['select'] = '下拉列表框 (select)'; - $lang->column_type_list['radio'] = '单选框 (radio)'; + $lang->column_type_list['homepage'] = '网址格式(url)'; + $lang->column_type_list['email_address'] = '邮件格式(email)'; + $lang->column_type_list['tel'] = '电话号码格式(phone)'; + $lang->column_type_list['textarea'] = '多行文本框(textarea)'; + $lang->column_type_list['checkbox'] = '复选框(checkbox)'; + $lang->column_type_list['select'] = '下拉列表框(select)'; + $lang->column_type_list['radio'] = '单选框(radio)'; $lang->column_type_list['kr_zip'] = '韩国邮编(zip)'; - $lang->column_type_list['date'] = '日期 (年月日)'; - //$lang->column_type_list['jp_zip'] = '日本地址 (zip)'; + $lang->column_type_list['date'] = '日期(年月日)'; + //$lang->column_type_list['jp_zip'] = '日本地址(zip)'; $lang->column_name = '项目名'; $lang->column_title = '项目标题'; $lang->default_value = '缺省值'; $lang->is_active = '激活'; $lang->is_required = '必填'; - $lang->eid = '확장변수 이름'; + $lang->eid = '扩展变量名'; // ftp 相关 $lang->ftp_form_title = '设置FTP信息'; @@ -296,7 +298,6 @@ $lang->msg_ftp_chmod_fail = "修改文件夹属性失败。请确认 FTP服务器设置。"; $lang->msg_ftp_connect_success = "FTP连接成功。"; - // 在xml filter使用的 javascript用 alert msg $lang->filter->isnull = '请输入%s'; $lang->filter->outofrange = '请确认%s字数'; diff --git a/layouts/xe_official/conf/info.xml b/layouts/xe_official/conf/info.xml index fc30de24a..aa8a647f8 100644 --- a/layouts/xe_official/conf/info.xml +++ b/layouts/xe_official/conf/info.xml @@ -8,7 +8,7 @@ Diseño oficial de la página web de XE XE 官方网站布局 XE 官方網站版面 - Giao diện chính thức của XE + Giao diện chính thức của XE XE 공식 사이트 레이아웃입니다. 디자인 : 이소라 @@ -76,7 +76,7 @@ zero zero zero - zero + zero @@ -89,7 +89,7 @@ Colorset Colorset Set de colores - Màu sắc + Màu sắc 원하시는 컬러셋을 선택해주세요. 希望するカラーセットを選択して下さい。 请选择颜色。 @@ -98,7 +98,7 @@ Bitte wählen Sie ein colorset Sie wollen. Выберите colorset хотите. Seleccione set de colores que desea. - Hãy chọn màu sắc bạn muốn. + Hãy chọn màu sắc bạn muốn. 기본 デフォルト @@ -108,7 +108,7 @@ Básico 默认 預設 - Cơ bản + Cơ bản 검은색 @@ -119,7 +119,7 @@ Negro 黑色 黑色 - Black + Black 하얀색 @@ -130,7 +130,7 @@ Blanco 白色 白色 - White + White @@ -142,7 +142,7 @@ Logobildes Изображения логотипа Imagen del logotipo - Hình Logo + Hình Logo 레이아웃의 상단에 표시될 로고이미지를 입력하세요. (세로길이가 23px인 투명이미지가 가장 어울립니다) レイアウトの上段に表示されるロゴイメージを入力して下さい。 (縦幅が23pxである透明イメージをお勧めします。。) 请输入显示在布局顶部的LOGO图片(高度为23px的透明图片为适)。 @@ -151,7 +151,7 @@ Bitte geben Sie ein Logo das Bild wird auf dem oberen Layout. (Transparent Bild mit einer Höhe von 23px wird empfohlen). Введите логотип изображение, которое будет отображаться в верхней части формы. (Прозрачный изображение с высотой 23px рекомендуется.) Ingresar una imagen para logotipo. ( Se recomienda una imagen de fondo transparente con una altura de 23px. - Hãy chọn Logo hiển thị phía trên cùng của giao diện. (Đề nghị: Hình ảnh có nền trong suốt và kích thước 23px.) + Hãy chọn Logo hiển thị phía trên cùng của giao diện. (Đề nghị: Hình ảnh có nền trong suốt và kích thước 23px.) 홈 페이지 URL @@ -162,7 +162,7 @@ Homepage URL Домашняя страница URL URL de la página web - URL Trang chủ + URL Trang chủ 로고를 클릭시에 이동할 홈 페이지 URL을 입력해 주세요. ロゴをクリックした時に移動するホームページのURLを入力して下さい。 点击网站LOGO时要移动的页面URL。 @@ -171,7 +171,7 @@ Bitte geben Sie die URL umzuleiten, wenn Benutzer klickt das Logo Пожалуйста, введите URL для перенаправления, когда пользователь нажимает логотип Ingresar el URL de la página web para redireccionar al pulsar el logotipo - Hãy nhập địa chỉ bạn muốn chuyển đến khi bấm vào Logo + Hãy nhập địa chỉ bạn muốn chuyển đến khi bấm vào Logo 배경 이미지 @@ -182,7 +182,7 @@ Hintergrundbild Фоновое изображение Imagen de fondo - Hình nền + Hình nền 배경 이미지를 사용하시려면 등록해주세요. 背景イメージを使う場合は、登録して下さい。 要想使用背景图片请在这里上传。 @@ -191,7 +191,7 @@ Bitte geben Sie, wenn Sie verwenden wollen Hintergrundbild. Введите, если вы хотите использовать фоновое изображение. Ingresar imagen de fondo si desea usar. - Hãy nhập hình nền nếu bạn muốn sử dụng. + Hãy nhập hình nền nếu bạn muốn sử dụng. @@ -205,7 +205,7 @@ Top Menü Верхнее меню Menú Principal - Menu trên + Menu trên 하단 메뉴 @@ -216,7 +216,7 @@ Bottom-Menü Внизу меню Menú Inferior - Menu dưới + Menu dưới diff --git a/modules/addon/lang/zh-CN.lang.php b/modules/addon/lang/zh-CN.lang.php index d73c19dc1..76404e10c 100644 --- a/modules/addon/lang/zh-CN.lang.php +++ b/modules/addon/lang/zh-CN.lang.php @@ -13,5 +13,5 @@ $lang->addon_history = '更新纪录 '; $lang->about_addon_mid = "可以指定使用插件的对象。
    (全部解除表示可用在所有对象。)"; - $lang->about_addon = '插件是加载扩展功能的动作,而不是输出结果组件。
    启用/禁用插件,为网站提供强大的功能。'; + $lang->about_addon = '插件就是对动作(Action)的有效控制来给核心程序提供扩展功能的一种组件。
    只需启用/禁用操作,即可为网站提供强大的扩展功能。'; ?> diff --git a/modules/admin/lang/zh-CN.lang.php b/modules/admin/lang/zh-CN.lang.php index 522e25bc2..5e97abaa3 100644 --- a/modules/admin/lang/zh-CN.lang.php +++ b/modules/admin/lang/zh-CN.lang.php @@ -8,8 +8,8 @@ $lang->admin_info = '管理员信息'; $lang->admin_index = '管理首页'; $lang->control_panel = '控制面板'; - $lang->start_module = '启动模块'; - $lang->about_start_module = '您可以指定默认的启动模块。'; + $lang->start_module = '首页模块'; + $lang->about_start_module = '可指定用户访问网站时的默认首页模块。'; $lang->module_category_title = array( 'service' => '应用管理', @@ -30,11 +30,12 @@ $lang->default_url = "XE通行证"; $lang->about_default_url = "请输入默认站点的XE安装地址(ex: http://域名/xe)。
    说明:简单的说,就是绑定帐号系统。只需要登录一次,就可以在用站点模块生成的多个子站点中随意漫游。"; + $lang->env_information = "系统信息"; $lang->current_version = "安装版本"; $lang->current_path = "安装路径"; $lang->released_version = "最新版本"; - $lang->about_download_link = "官方网站已发布新版本。\n请点击download链接下载最新版本。"; + $lang->about_download_link = "官方网站已发布最新版本XE。\n请点击[下载]链接下载最新版本。"; $lang->item_module = "模块目录"; $lang->item_addon = "插件目录"; @@ -55,10 +56,8 @@ $lang->msg_default_act_is_null = '没有指定默认管理员的动作,是不能添加到快捷菜单的。'; $lang->welcome_to_xe = 'XE 管理页面'; - $lang->about_admin_page = "后台管理页面未完成"; $lang->about_lang_env = "可以设置显示给首次访问者的同一语言环境。修改语言环境后请点击 [保存] 按钮进行保存。"; - $lang->xe_license = 'XE遵循 GPL协议'; $lang->about_shortcut = '可以删除添加到常用模块中的快捷菜单。'; @@ -77,6 +76,6 @@ $lang->about_use_ssl = "选择性使用选项应用于新用户注册/修改用户信息等已指定的action当中,使用选项应用于所有服务。"; $lang->server_ports = "指定服务器端口"; $lang->about_server_ports = "使用除HTTP(80), HTTPS(443)以外的端口时,必须得指定该服务器端口号。"; - $lang->use_db_session = '使用DB session认证'; - $lang->about_db_session = '使用DBsession认证时系统会把PHPsession保存到数据库。
    不使用这个功能会提高服务器应答速度,但读取不了在线人数。'; + $lang->use_db_session = 'DB储存认证会话'; + $lang->about_db_session = '用DB储存认证时的PHP会话。
    服务器使用率较少的网站建议不要勾选此项(可提高网站访问速度)。
    只是无法统计在线会员。'; ?> diff --git a/modules/autoinstall/conf/info.xml b/modules/autoinstall/conf/info.xml index 6b7a412e0..5ba90756c 100644 --- a/modules/autoinstall/conf/info.xml +++ b/modules/autoinstall/conf/info.xml @@ -2,23 +2,26 @@ 자동설치 모듈 Auto Installation Module + 在线安装 관리자 모드에서 클릭으로 모듈/스킨/레이아웃/위젯/위젯스타일 등을 설치하는 모듈입니다. Package management, automatic installation. + 很方便的在管理页面一键安装XE相关模块(模块/皮肤/布局/控件/控件样式等)。 0.1 2009-10-30 system haneul - haneul + haneul haneul haneul - haneul - haneul + haneul + haneul haneul sol sol + sol sol diff --git a/modules/autoinstall/lang/zh-CN.lang.php b/modules/autoinstall/lang/zh-CN.lang.php new file mode 100644 index 000000000..b6e8a7d06 --- /dev/null +++ b/modules/autoinstall/lang/zh-CN.lang.php @@ -0,0 +1,21 @@ +autoinstall = 'Autoinstall'; + $lang->about_autoinstall = 'Autoinstall是XpressEngine的自动安装模块。'; + $lang->package_update = '最新更新'; + $lang->package_downloaded_count = '总下载'; + $lang->need_update = "有新的更新。"; + + $lang->order_newest = "最新发布"; + $lang->order_popular = "热门"; + $lang->order_download = "下载"; + $lang->success_installed = "安装成功!"; + $lang->view_all_package = "查看全部"; + $lang->description_ftp_note = "请务必完成FTP设置,否则将无法在线安装(更新)相关模块。"; + $lang->description_update = "新安装(更新)模块的版本信息,点击Update按钮后才能正常显示。"; +?> diff --git a/modules/comment/lang/zh-CN.lang.php b/modules/comment/lang/zh-CN.lang.php index 122bb6016..cc2782b50 100644 --- a/modules/comment/lang/zh-CN.lang.php +++ b/modules/comment/lang/zh-CN.lang.php @@ -7,7 +7,7 @@ $lang->cmd_comment_do = '将把此评论..'; - $lang->comment_list = '评论目录'; + $lang->comment_list = '评论列表'; $lang->cmd_toggle_checked_comment = '反选'; $lang->cmd_delete_checked_comment = '删除所选'; diff --git a/modules/document/lang/zh-CN.lang.php b/modules/document/lang/zh-CN.lang.php index b1664b8d3..66aaec20a 100644 --- a/modules/document/lang/zh-CN.lang.php +++ b/modules/document/lang/zh-CN.lang.php @@ -5,12 +5,11 @@ * @brief 文章(document)模块语言包 **/ - $lang->document_list = '主题目录'; + $lang->document_list = '主题列表'; $lang->thumbnail_type = '缩略图生成方式'; - $lang->thumbnail_crop = '裁减'; - $lang->thumbnail_ratio = '比例'; + $lang->thumbnail_crop = '裁减(按指定大小裁剪图片)'; + $lang->thumbnail_ratio = '比例(按原图比例缩略处理)'; $lang->cmd_delete_all_thumbnail = '删除全部缩略图'; - $lang->move_target_module = "移动目标模块"; $lang->title_bold = '粗标题'; $lang->title_color = '标题颜色'; $lang->new_document_count = '新帖'; @@ -20,8 +19,10 @@ $lang->category_color = '分类颜色'; $lang->expand = '展开'; $lang->category_group_srls = '用户组'; + $lang->cmd_make_child = '添加下级分类'; $lang->cmd_enable_move_category = "分类顺序(勾选后用鼠标拖动分类项)"; + $lang->about_category_title = '请输入分类名。'; $lang->about_expand = '选择此项将维持展开状态。'; $lang->about_category_group_srls = '所选用户组才可以查看此分类。'; @@ -40,6 +41,8 @@ $lang->msg_is_secret = '这是密帖!'; $lang->msg_checked_document_is_deleted = '删除了%d个文章。'; + $lang->move_target_module = '目标模块'; + // 管理页面查找的对象 $lang->search_target_list = array( 'title' => '标题', @@ -62,8 +65,34 @@ 'last_update' => '最近更新日期', 'ipaddress' => 'IP 地址', ); + $lang->alias = "Alias"; $lang->history = "编辑记录"; $lang->about_use_history = "设置启用编辑记录与否。启用将记录修改主题版本,并可以复原。"; $lang->trace_only = "只留痕迹"; + + $lang->cmd_trash = "回收箱"; + $lang->cmd_restore = "复原"; + $lang->cmd_restore_all = "全部复原"; + + $lang->in_trash = "回收箱"; + $lang->trash_nick_name = "操作人昵称"; + $lang->trash_date = "删除日期"; + $lang->trash_description = "说明"; + + // 管理页面回收箱搜索对象 + $lang->search_target_trash_list = array( + 'title' => '标题', + 'content' => '内容', + 'user_id' => '用户名', + 'member_srl' => '会员编号', + 'user_name' => '姓名', + 'nick_name' => '昵称', + 'trash_member_srl' => '操作人会员编号', + 'trash_user_name' => '操作人用户名', + 'trash_nick_name' => '操作人昵称', + 'trash_date' => '删除日期', + 'trash_ipaddress' => '操作人IP地址', + ); + ?> diff --git a/modules/editor/components/multimedia_link/info.xml b/modules/editor/components/multimedia_link/info.xml index 6b7781497..7242345ee 100644 --- a/modules/editor/components/multimedia_link/info.xml +++ b/modules/editor/components/multimedia_link/info.xml @@ -12,7 +12,7 @@ エディターに拡張子が「wmv,avi,flv」などのマルチメディアコンテンツを追加、または属性の修正ができます。 插入wmv,avi,flv等多媒体文件或修改其相应属性 。 It can add multimedia data like wmv,avi,flv to editor or change the attribution of multimedia data. - Se pueden agregar datos multimedia como wmv, avi, flv al editor o cambiar la atribución de datos multimedia. + Se pueden agregar datos multimedia como wmv, avi, flv al editor o cambiar la atribución de datos multimedia. Это может добавить мультимедиа данные как wmv,avi,flv в редактор или изменить параметры данных мультимедиа. 可新增 wmv、avi,flv等多媒體檔案或修改其相關屬性。 Chèn Media dạng '.wmv,.avi,.flv,.mp3,.wma' vào bài viết. @@ -20,7 +20,7 @@ 2007-02-28 - zero + zero zero zero zero diff --git a/modules/editor/lang/zh-CN.lang.php b/modules/editor/lang/zh-CN.lang.php index f87412f3f..0724d4ea2 100644 --- a/modules/editor/lang/zh-CN.lang.php +++ b/modules/editor/lang/zh-CN.lang.php @@ -1,231 +1,231 @@ - - * @brief 网页编辑器(editor) 模块语言包 - **/ - - $lang->editor = '网页编辑器'; - $lang->component_name = '组件'; - $lang->component_version = '版本'; - $lang->component_author = '作者'; - $lang->component_link = '链接'; - $lang->component_date = '编写日期'; - $lang->component_license = '版权'; - $lang->component_history = '更新日志'; - $lang->component_description = '说明'; - $lang->component_extra_vars = '变数设置'; - $lang->component_grant = '权限设置'; - $lang->content_style = 'Content Style'; - $lang->content_font = 'Content Font'; - $lang->content_font_size = '문서 폰트 크기'; - - $lang->about_component = '组件简介'; - $lang->about_component_grant = '可以设置除默认组件外的扩展组件使用权限
    (全部解除时任何用户都可以使用)。'; - $lang->about_component_mid = '可以指定使用编辑器组件的对象。
    (全部解除时任何用户都可以使用)。'; - - $lang->msg_component_is_not_founded = '找不到%s 组件说明!'; - $lang->msg_component_is_inserted = '您选择的组件已插入!'; - $lang->msg_component_is_first_order = '您选择的组件已到最上端位置!'; - $lang->msg_component_is_last_order = '您选择的组件已到最下端位置!'; - $lang->msg_load_saved_doc = "有自动保存的内容, 确定要恢复吗?\n发布主题后,自动保存的文本将会被删除。"; - $lang->msg_auto_saved = '已自动保存!'; - - $lang->cmd_disable = '非激活'; - $lang->cmd_enable = '激活'; - - $lang->editor_skin = '编辑器皮肤'; - $lang->upload_file_grant = '文件上传权限'; - $lang->enable_default_component_grant = '默认组件使用权限'; - $lang->enable_component_grant = '组件使用权限'; - $lang->enable_html_grant = 'HTML编辑权限'; - $lang->enable_autosave = '内容自动保存'; - $lang->height_resizable = '高度调整'; - $lang->editor_height = '编辑器高度'; - - $lang->about_editor_skin = '可以选择编辑器皮肤。'; - $lang->about_content_style = '문서 편집 및 내용 출력시 원하는 서식을 지정할 수 있습니다'; - $lang->about_content_font = '문서 편집 및 내용 출력시 원하는 폰트를 지정할 수 있습니다.
    지정하지 않으면 사용자 설정에 따르게 됩니다
    ,(콤마)로 여러 폰트를 지정할 수 있습니다.'; - $lang->about_content_font_size = '문서 편집 및 내용 출력시 원하는 폰트의 크기를 지정할 수 있습니다.
    12px, 1em등 단위까지 포함해서 입력해주세요.'; - $lang->about_upload_file_grant = '可以设置上传文件的权限(全部解除为无限制)。'; - $lang->about_default_component_grant = '可以设置编辑器默认组件的使用权限(全部解除为无限制)。'; - $lang->about_editor_height = '可以指定编辑器的默认高度。'; - $lang->about_editor_height_resizable = '允许用户拖动编辑器高度。'; - $lang->about_enable_html_grant = 'HTML代码编辑权限设置。'; - $lang->about_enable_autosave = '发表主题时激活内容自动保存功能。'; - - $lang->edit->fontname = '字体'; - $lang->edit->fontsize = '大小'; - $lang->edit->use_paragraph = '段落功能'; - $lang->edit->fontlist = array( - '宋体'=>'宋体', - '黑体'=>'黑体', - '楷体_GB2312'=>'楷体', - '仿宋_GB2312'=>'仿宋', - '隶书'=>'隶书', - '幼圆'=>'幼圆', - 'Arial'=>'Arial', - 'Arial Black'=>'Arial Black', - 'Tahoma'=>'Tahoma', - 'Verdana'=>'Verdana', - 'Sans-serif'=>'Sans-serif', - 'Serif'=>'Serif', - 'Monospace'=>'Monospace', - 'Cursive'=>'Cursive', - 'Fantasy'=>'Fantasy', - ); - - $lang->edit->header = '样式'; - $lang->edit->header_list = array( - 'h1' => '标题 1', - 'h2' => '标题 2', - 'h3' => '标题 3', - 'h4' => '标题 4', - 'h5' => '标题 5', - 'h6' => '标题 6', - ); - - $lang->edit->submit = '确认'; - - $lang->edit->fontcolor = '文本颜色'; - $lang->edit->fontbgcolor = '背景颜色'; - $lang->edit->bold = '粗体'; - $lang->edit->italic = '斜体'; - $lang->edit->underline = '下划线'; - $lang->edit->strike = '取消线'; - $lang->edit->sup = '上标'; - $lang->edit->sub = '下标'; - $lang->edit->redo = '恢复'; - $lang->edit->undo = '撤销'; - $lang->edit->align_left = '左对齐'; - $lang->edit->align_center = '居中对齐'; - $lang->edit->align_right = '右对齐'; - $lang->edit->align_justify = '两端对齐'; - $lang->edit->add_indent = '增加缩进'; - $lang->edit->remove_indent = '减少缩进'; - $lang->edit->list_number = '有序列表'; - $lang->edit->list_bullet = '无序列表'; - $lang->edit->remove_format = '删除文字格式'; - - $lang->edit->help_fontcolor = '文本颜色'; - $lang->edit->help_fontbgcolor = '背景颜色'; - $lang->edit->help_bold = '粗体'; - $lang->edit->help_italic = '斜体'; - $lang->edit->help_underline = '下划线'; - $lang->edit->help_strike = '取消线'; - $lang->edit->help_sup = '上标'; - $lang->edit->help_sub = '下标'; - $lang->edit->help_redo = '恢复'; - $lang->edit->help_undo = '撤销'; - $lang->edit->help_align_left = '左对齐'; - $lang->edit->help_align_center = '居中对齐'; - $lang->edit->help_align_right = '右对齐'; - $lang->edit->help_align_justify = 'Align justity'; - $lang->edit->help_add_indent = '增加缩进'; - $lang->edit->help_remove_indent = '减少缩进'; - $lang->edit->help_list_number = '有序列表'; - $lang->edit->help_list_bullet = '无序列表'; - $lang->edit->help_use_paragraph = '分段请按 ctrl+回车. (发表主题快捷键:alt+S)'; - - $lang->edit->url = '插入链接'; - $lang->edit->blockquote = '插入注释框'; - $lang->edit->table = '表格'; - $lang->edit->image = '图片'; - $lang->edit->multimedia = '视频'; - $lang->edit->emoticon = '表情图标'; - - $lang->edit->upload = '上传'; - $lang->edit->upload_file = '上传附件'; - $lang->edit->link_file = '插入附件'; - $lang->edit->delete_selected = '删除所选'; - - $lang->edit->icon_align_article = '占一个段落'; - $lang->edit->icon_align_left = '文本左侧'; - $lang->edit->icon_align_middle = '居中对齐'; - $lang->edit->icon_align_right = '文本右侧'; - - $lang->about_dblclick_in_editor = '双击背景, 文本, 图片, 引用即可对其相关组件进行详细设置。'; - - - $lang->edit->rich_editor = '所见即所得编辑器'; - $lang->edit->html_editor = 'HTML 编辑器'; - $lang->edit->extension ='扩展组建'; - $lang->edit->help = '帮助'; - $lang->edit->help_command = '快捷键说明'; + + * @brief 网页编辑器(editor) 模块语言包 + **/ + + $lang->editor = '网页编辑器'; + $lang->component_name = '组件'; + $lang->component_version = '版本'; + $lang->component_author = '作者'; + $lang->component_link = '链接'; + $lang->component_date = '编写日期'; + $lang->component_license = '版权'; + $lang->component_history = '更新日志'; + $lang->component_description = '说明'; + $lang->component_extra_vars = '变数设置'; + $lang->component_grant = '权限设置'; + $lang->content_style = '文档样式'; + $lang->content_font = '文档字体'; + $lang->content_font_size = '字体大小'; + + $lang->about_component = '组件简介'; + $lang->about_component_grant = '可以设置除默认组件外的扩展组件使用权限
    (全部解除时任何用户都可以使用)。'; + $lang->about_component_mid = '可以指定使用编辑器组件的对象。
    (全部解除时任何用户都可以使用)。'; + + $lang->msg_component_is_not_founded = '找不到%s 组件说明!'; + $lang->msg_component_is_inserted = '您选择的组件已插入!'; + $lang->msg_component_is_first_order = '您选择的组件已到最上端位置!'; + $lang->msg_component_is_last_order = '您选择的组件已到最下端位置!'; + $lang->msg_load_saved_doc = "有自动保存的内容, 确定要恢复吗?\n发布主题后,自动保存的文本将会被删除。"; + $lang->msg_auto_saved = '已自动保存!'; + + $lang->cmd_disable = '非激活'; + $lang->cmd_enable = '激活'; + + $lang->editor_skin = '编辑器皮肤'; + $lang->upload_file_grant = '文件上传权限'; + $lang->enable_default_component_grant = '默认组件使用权限'; + $lang->enable_component_grant = '组件使用权限'; + $lang->enable_html_grant = 'HTML编辑权限'; + $lang->enable_autosave = '内容自动保存'; + $lang->height_resizable = '高度调整'; + $lang->editor_height = '编辑器高度'; + + $lang->about_editor_skin = '可以选择编辑器皮肤。'; + $lang->about_content_style = '可以指定编辑或打印文档时的文档样式。'; + $lang->about_content_font = '可以指定编辑或打印文档时的文档字体,不指定随用户设置。
    多个字体可以用逗号(,)区分输入。'; + $lang->about_content_font_size = '可以指定编辑或打印文档时的文档字体大小。
    指定时请包含字体单位(如12px, 1em)。'; + $lang->about_upload_file_grant = '可以设置上传文件的权限(全部解除为无限制)。'; + $lang->about_default_component_grant = '可以设置编辑器默认组件的使用权限(全部解除为无限制)。'; + $lang->about_editor_height = '可以指定编辑器的默认高度。'; + $lang->about_editor_height_resizable = '允许用户拖动编辑器高度。'; + $lang->about_enable_html_grant = 'HTML代码编辑权限设置。'; + $lang->about_enable_autosave = '发表主题时激活内容自动保存功能。'; + + $lang->edit->fontname = '字体'; + $lang->edit->fontsize = '大小'; + $lang->edit->use_paragraph = '段落功能'; + $lang->edit->fontlist = array( + '宋体'=>'宋体', + '黑体'=>'黑体', + '楷体_GB2312'=>'楷体', + 'Arial'=>'Arial', + 'Arial Black'=>'Arial Black', + 'Tahoma'=>'Tahoma', + 'Verdana'=>'Verdana', + 'Sans-serif'=>'Sans-serif', + 'Serif'=>'Serif', + 'Monospace'=>'Monospace', + 'Cursive'=>'Cursive', + 'Fantasy'=>'Fantasy', + ); + + $lang->edit->header = '样式'; + $lang->edit->header_list = array( + 'h1' => '标题 1', + 'h2' => '标题 2', + 'h3' => '标题 3', + 'h4' => '标题 4', + 'h5' => '标题 5', + 'h6' => '标题 6', + ); + + $lang->edit->submit = '确认'; + + $lang->edit->fontcolor = '文本颜色'; + $lang->edit->fontbgcolor = '背景颜色'; + $lang->edit->bold = '粗体'; + $lang->edit->italic = '斜体'; + $lang->edit->underline = '下划线'; + $lang->edit->strike = '取消线'; + $lang->edit->sup = '上标'; + $lang->edit->sub = '下标'; + $lang->edit->redo = '恢复'; + $lang->edit->undo = '撤销'; + $lang->edit->align_left = '左对齐'; + $lang->edit->align_center = '居中对齐'; + $lang->edit->align_right = '右对齐'; + $lang->edit->align_justify = '两端对齐'; + $lang->edit->add_indent = '增加缩进'; + $lang->edit->remove_indent = '减少缩进'; + $lang->edit->list_number = '有序列表'; + $lang->edit->list_bullet = '无序列表'; + $lang->edit->remove_format = '删除文字格式'; + + $lang->edit->help_remove_format = '清除格式。'; + $lang->edit->help_strike_through = '取消线。'; + $lang->edit->help_align_full = '两端对齐。'; + + $lang->edit->help_fontcolor = '文本颜色。'; + $lang->edit->help_fontbgcolor = '背景颜色。'; + $lang->edit->help_bold = '粗体'; + $lang->edit->help_italic = '斜体'; + $lang->edit->help_underline = '下划线'; + $lang->edit->help_strike = '取消线'; + $lang->edit->help_sup = '上标'; + $lang->edit->help_sub = '下标'; + $lang->edit->help_redo = '恢复'; + $lang->edit->help_undo = '撤销'; + $lang->edit->help_align_left = '左对齐'; + $lang->edit->help_align_center = '居中对齐'; + $lang->edit->help_align_right = '右对齐'; + $lang->edit->help_align_justify = '两端对齐'; + $lang->edit->help_add_indent = '增加缩进'; + $lang->edit->help_remove_indent = '减少缩进'; + $lang->edit->help_list_number = '有序列表'; + $lang->edit->help_list_bullet = '无序列表'; + $lang->edit->help_use_paragraph = '分段请按 Ctrl+回车. (发表主题快捷键:Alt+S)'; + + $lang->edit->url = '链接'; + $lang->edit->blockquote = '注释框'; + $lang->edit->table = '表格'; + $lang->edit->image = '图片'; + $lang->edit->multimedia = '视频'; + $lang->edit->emoticon = '表情图标'; + + $lang->edit->upload = '上传'; + $lang->edit->upload_file = '上传附件'; + $lang->edit->link_file = '插入附件'; + $lang->edit->delete_selected = '删除所选'; + + $lang->edit->icon_align_article = '占一个段落'; + $lang->edit->icon_align_left = '文本左侧'; + $lang->edit->icon_align_middle = '居中对齐'; + $lang->edit->icon_align_right = '文本右侧'; + + $lang->about_dblclick_in_editor = '双击背景, 文本, 图片, 引用即可对其相关组件进行详细设置。'; + + $lang->edit->rich_editor = '常规'; + $lang->edit->html_editor = 'HTML'; + $lang->edit->extension ='扩展组件'; + $lang->edit->help = '帮助'; + $lang->edit->help_command = '快捷键说明'; + + $lang->edit->lineheight = '行间距'; + $lang->edit->fontbgsampletext = '我爱中华!'; + + $lang->edit->hyperlink = '链接'; + $lang->edit->target_blank = '新窗口'; + + $lang->edit->quotestyle1 = '左侧实线'; + $lang->edit->quotestyle2 = '引用符号'; + $lang->edit->quotestyle3 = '实线'; + $lang->edit->quotestyle4 = '实线 + 背景'; + $lang->edit->quotestyle5 = '粗实线'; + $lang->edit->quotestyle6 = '虚线'; + $lang->edit->quotestyle7 = '虚线 + 背景'; + $lang->edit->quotestyle8 = '取消应用'; + + + $lang->edit->jumptoedit = '跳转'; + $lang->edit->set_sel = '表格大小'; + $lang->edit->row = '行'; + $lang->edit->col = '列'; + $lang->edit->add_one_row = '添加1行'; + $lang->edit->del_one_row = '删除1行'; + $lang->edit->add_one_col = '添加1列'; + $lang->edit->del_one_col = '删除1列'; + + $lang->edit->table_config = '表格属性'; + $lang->edit->border_width = '表格边框'; + $lang->edit->border_color = '边框颜色'; + $lang->edit->add = '加'; + $lang->edit->del = '减'; + $lang->edit->search_color = '修改颜色'; + $lang->edit->table_backgroundcolor = '背景颜色'; + $lang->edit->special_character = '特殊字符'; + $lang->edit->insert_special_character = '插入特殊字符'; + $lang->edit->close_special_character = '关闭'; + $lang->edit->symbol = '基本符号'; + $lang->edit->number_unit = '数字/单位'; + $lang->edit->circle_bracket = '数字序号'; + $lang->edit->korean = '韩文'; + $lang->edit->greece = '希腊'; + $lang->edit->Latin = '拉丁'; + $lang->edit->japan = '日文'; + $lang->edit->selected_symbol = '被选字符'; + + $lang->edit->search_replace = '查找/替换'; + $lang->edit->close_search_replace = '关闭'; + $lang->edit->replace_all = '全部替换'; + $lang->edit->search_words = '查找内容'; + $lang->edit->replace_words = '替换为'; + $lang->edit->next_search_words = '查找下一个'; + $lang->edit->edit_height_control = '调整输入框大小'; + + $lang->edit->merge_cells = '合并单元格'; + $lang->edit->split_row = '跨行'; + $lang->edit->split_col = '跨列'; - $lang->edit->lineheight = '줄간격'; - $lang->edit->fontbgsampletext = '가나다'; - - $lang->edit->hyperlink = '하이퍼링크'; - $lang->edit->target_blank = '새창으로'; - - $lang->edit->quotestyle1 = '왼쪽 실선'; - $lang->edit->quotestyle2 = '인용 부호'; - $lang->edit->quotestyle3 = '실선'; - $lang->edit->quotestyle4 = '실선 + 배경'; - $lang->edit->quotestyle5 = '굵은 실선'; - $lang->edit->quotestyle6 = '점선'; - $lang->edit->quotestyle7 = '점선 + 배경'; - $lang->edit->quotestyle8 = '적용 취소'; - - - $lang->edit->jumptoedit = '편집 도구모음 건너뛰기'; - $lang->edit->set_sel = '칸 수 지정'; - $lang->edit->row = '행'; - $lang->edit->col = '열'; - $lang->edit->add_one_row = '1행추가'; - $lang->edit->del_one_row = '1행삭제'; - $lang->edit->add_one_col = '1열추가'; - $lang->edit->del_one_col = '1열삭제'; - - $lang->edit->table_config = '표 속성 지정'; - $lang->edit->border_width = '테두리 굵기'; - $lang->edit->border_color = '테두리 색'; - $lang->edit->add = '더하기'; - $lang->edit->del = '빼기'; - $lang->edit->search_color = '색상찾기'; - $lang->edit->table_backgroundcolor = '표 배경색'; - $lang->edit->special_character = '특수문자'; - $lang->edit->insert_special_character = '특수문자 삽입'; - $lang->edit->close_special_character = '특수문자 레이어 닫기'; - $lang->edit->symbol = '일반기호'; - $lang->edit->number_unit = '숫자와 단위'; - $lang->edit->circle_bracket = '원,괄호'; - $lang->edit->korean = '한글'; - $lang->edit->greece = '그리스'; - $lang->edit->Latin = '라틴어'; - $lang->edit->japan = '일본어'; - $lang->edit->selected_symbol = '선택한 기호'; - - $lang->edit->search_replace = '찾기/바꾸기'; - $lang->edit->close_search_replace = '찾기/바꾸기 레이어 닫기'; - $lang->edit->replace_all = '모두바꾸기'; - $lang->edit->search_words = '찾을단어'; - $lang->edit->replace_words = '바꿀단어'; - $lang->edit->next_search_words = '다음찾기'; - $lang->edit->edit_height_control = '입력창 크기 조절'; - - $lang->edit->merge_cells = '셀 병합'; - $lang->edit->split_row = '행 분할'; - $lang->edit->split_col = '열 분할'; + $lang->edit->toggle_list = '展开/折叠列表'; + $lang->edit->minimize_list = '最小化'; - $lang->edit->toggle_list = '목록 접기/펼치기'; - $lang->edit->minimize_list = '최소화'; + $lang->edit->move = '移动'; + $lang->edit->refresh = '刷新'; + $lang->edit->materials = '素材库'; + $lang->edit->temporary_savings = '临时保存列表'; - $lang->edit->move = '이동'; - $lang->edit->refresh = 'Refresh'; - $lang->edit->materials = '글감보관함'; - $lang->edit->temporary_savings = '임시저장목록'; - - $lang->edit->drag_here = '아래의 단락추가 툴바에서 원하는 유형의 단락을 추가해 글 쓰기를 시작하세요.
    글감 보관함에 글이 있으면 이곳으로 끌어 넣기 할 수 있습니다.'; + $lang->edit->drag_here = '请点击编辑器工具栏中的相应按钮开始撰写日志。
    素材库中的素材可以直接拖放到编辑区。'; - $lang->edit->paging_prev = '이전'; - $lang->edit->paging_next = '다음'; - $lang->edit->paging_prev_help = '이전 페이지로 이동합니다.'; - $lang->edit->paging_next_help = '다음 페이지로 이동합니다.'; + $lang->edit->paging_prev = '上一个'; + $lang->edit->paging_next = '下一个'; + $lang->edit->paging_prev_help = '上一页。'; + $lang->edit->paging_next_help = '下一页。'; - $lang->edit->toc = '목차'; - $lang->edit->close_help = '도움말 닫기'; + $lang->edit->toc = '列表'; + $lang->edit->close_help = '关闭帮助'; - $lang->edit->confirm_submit_without_saving = '저장하지 않은 단락이 있습니다.\\n그냥 전송하시겠습니까?'; + $lang->edit->confirm_submit_without_saving = '尚有未保存的段落。\\n确定要提交吗?'; ?> diff --git a/modules/editor/skins/xpresseditor/skin.xml b/modules/editor/skins/xpresseditor/skin.xml index 82590cde8..53a8e5d73 100644 --- a/modules/editor/skins/xpresseditor/skin.xml +++ b/modules/editor/skins/xpresseditor/skin.xml @@ -32,18 +32,18 @@ 2009-03-22 행복한고니 - gony - gony + gony + gony gony gony - gony + gony gony 하얀색(기본) 白(デフォルト) - 白色(基本) + 白色(默认) White (default) White (Mặc định) Blanco (por defecto) @@ -66,7 +66,7 @@ White Text Editor(Dòng tự động mở) White Text Editor(Auto Line Break) Editor de texto en blanco (Auto de línea) - 白色文本编辑器(自动换行) + 白色文本编辑器(使用HTML,自动换行) 白色文字編輯器(Auto Line Break) @@ -76,7 +76,7 @@ Black Text Editor(Dòng tự động mở) Black Text Editor(Auto Line Break) Editor de texto negro (salto de línea automático) - 黑色文本编辑器(自动换行) + 黑色文本编辑器(使用HTML,自动换行) 黑色文字編輯器(Auto Line Break) @@ -86,7 +86,7 @@ White Text Editor(Sử dụng HTML) White Text Editor(Use HTML) Editor de texto en blanco (Uso de HTML) - 白色文本编辑器(使用HTML) + 白色文本编辑器(使用HTML,不自动换行) 白色文字編輯器(Use HTML) @@ -96,7 +96,7 @@ Black Text Editor(Sử dụng HTML) Black Text Editor(Use HTML) Editor de texto negro (Uso de HTML) - 黑色文本编辑器(使用HTML) + 黑色文本编辑器(使用HTML,不自动换行) 黑色文字編輯器(Use HTML) @@ -106,7 +106,7 @@ White Text Editor(Không có HTML) White Text Editor(No HTML) Editor de texto en blanco (no HTML) - 白色文本编辑器(不使用HTML) + 白色文本编辑器(不使用HTML,自动换行) 白色文字編輯器(No HTML) @@ -116,7 +116,7 @@ Black Text Editor(Không có HTML) Black Text Editor(No HTML) Editor de texto negro (no HTML) - 黑色文本编辑器(不使用HTML) + 黑色文本编辑器(不使用HTML,自动换行) 黑色文字編輯器(No HTML) diff --git a/modules/editor/styles/default/skin.xml b/modules/editor/styles/default/skin.xml index 661e924dc..2ec500816 100644 --- a/modules/editor/styles/default/skin.xml +++ b/modules/editor/styles/default/skin.xml @@ -1,7 +1,8 @@ XE 기본 서식 - XE 기본 서식 + XE默认样式 + XE 기본 서식 XE Mặc định XEデフォルトスタイル XE預設樣式 @@ -9,6 +10,13 @@ XE 기본 문서 서식입니다. 있는 그대로 표시가 될 뿐 편집/ 출력시 아무런 영향을 끼치지 않습니다.
    + + XE默认样式。 + 主题显示及编辑不会受到任何影响,即原样输出。 + + + XEの基本ドキュメント書式です。 + そのまま表示されるだけで、編集・出力には影響しません。 XE default document style. It displays as it is, and affect nothing to editing / printing. @@ -17,16 +25,13 @@ Trang mẫu mặc định của XE. Nó sẽ hiển thị trong phần sửa đổi bài viết và không ảnh hưởng đến bất cứ chức năng nào cả. - - XEのデフォルト書式です。 - そのまま表示され、編集/出力時何の影響はありません。 - 0.0.1 2009-05-23 정찬명 + Chan-Myung Jeong + Chan-Myung Jeong Chan-Myung Jeong Chan-Myung Jeong - Chan-Myung Jeong
    diff --git a/modules/editor/styles/xeStyle/skin.xml b/modules/editor/styles/xeStyle/skin.xml index a1ca36766..6112df29e 100644 --- a/modules/editor/styles/xeStyle/skin.xml +++ b/modules/editor/styles/xeStyle/skin.xml @@ -1,6 +1,7 @@ XE 기본 서식 (하얀 배경) + XE默认样式(白色背景) XE Mặc định (Nền sáng) XEデフォルトスタイル(白色背景) XE預設樣式(白色背景) @@ -8,6 +9,10 @@ XE 기본 문서 서식입니다. 문서 수정중에는 각 요소들이 구분되어 보입니다. + + XE默认样式。 + 在编辑文档时,可清晰地区分各标签区域。 + Trang mẫu mặc định của XE. Nó sẽ hiển thị trong phần sửa đổi bài viết. @@ -24,6 +29,7 @@ 2009-04-17 정찬명 + Chan-Myung Jeong Chan-Myung Jeong Chan-Myung Jeong Chan-Myung Jeong diff --git a/modules/editor/styles/xeStyleBlack/skin.xml b/modules/editor/styles/xeStyleBlack/skin.xml index dc20ede2a..22aea761c 100644 --- a/modules/editor/styles/xeStyleBlack/skin.xml +++ b/modules/editor/styles/xeStyleBlack/skin.xml @@ -1,6 +1,7 @@ XE 기본 서식 (검은 배경) + XE默认格式(黑色背景) XE Mặc định (Nền tối) XEデフォルトスタイル(黒色背景) XE預設樣式(黑色背景) @@ -8,6 +9,10 @@ XE 기본 문서 서식입니다. 문서 수정중에는 각 요소들이 구분되어 보입니다. + + XE默认格式。 + 在编辑文档时,可清晰地区分各标签区域。 + Mẫu mặc định của XE. Nó sẽ hiển thị trong phần sửa đổi bài viết. @@ -24,6 +29,7 @@ 2009-04-17 정찬명 + Chan-Myung Jeong Chan-Myung Jeong Chan-Myung Jeong Chan-Myung Jeong diff --git a/modules/file/lang/zh-CN.lang.php b/modules/file/lang/zh-CN.lang.php index 0d6587fa2..7f2fa43ab 100644 --- a/modules/file/lang/zh-CN.lang.php +++ b/modules/file/lang/zh-CN.lang.php @@ -12,7 +12,7 @@ $lang->status = '状态'; $lang->is_valid = '有效'; $lang->is_stand_by = '等待'; - $lang->file_list = '附件目录'; + $lang->file_list = '附件列表'; $lang->allow_outlink = '防盗链'; $lang->allow_outlink_site = '允许外链站点'; $lang->allowed_filesize = '文件大小限制'; @@ -34,14 +34,14 @@ $lang->msg_cart_is_null = ' 请选择要删除的文件。'; $lang->msg_checked_file_is_deleted = '已删除%d个文件!'; $lang->msg_exceeds_limit_size = '已超过系统指定的上传文件大小!'; - $lang->msg_file_not_found = '요청하신 파일을 찾을 수 없습니다.'; + $lang->msg_file_not_found = '无法找到该文件。'; $lang->file_search_target_list = array( 'filename' => '文件名', 'filesize_more' => '文件大小 (byte, 以上)', 'filesize_mega_more' => '文件大小 (Mb, 以上)', - 'filesize_less' => '파일크기 (byte, 이하)', - 'filesize_mega_less' => '파일크기 (Mb, 이하)', + 'filesize_less' => '文件大小 (byte, 以下)', + 'filesize_mega_less' => '文件大小 (Mb, 以下)', 'download_count' => '下载次数 (以上)', 'user_id' => '用户名', 'user_name' => '姓名', diff --git a/modules/integration_search/lang/zh-CN.lang.php b/modules/integration_search/lang/zh-CN.lang.php index 2682c4926..4847e7ca3 100644 --- a/modules/integration_search/lang/zh-CN.lang.php +++ b/modules/integration_search/lang/zh-CN.lang.php @@ -10,12 +10,14 @@ $lang->sample_code = "代码"; $lang->about_target_module = "所选模块作为搜索对象。请注意权限设置。"; $lang->about_sample_code = "可把上述代码插入到相应布局当中即可实现搜索功能。"; + $lang->msg_no_keyword = '请输入搜索关键词。'; + $lang->msg_document_more_search = '利用\'继续搜索\'按钮可以进一步搜索。'; $lang->is_result_text = "符合'%s'的搜索结果约有%d项"; $lang->multimedia = "图片/视频"; - $lang->include_search_target = '只有在选定的目标'; - $lang->exclude_search_target = '搜索选定目的地从'; + $lang->include_search_target = '只搜索所选对象'; + $lang->exclude_search_target = '所选对象从搜索中排除'; $lang->is_search_option = array( 'document' => array( diff --git a/modules/layout/lang/zh-CN.lang.php b/modules/layout/lang/zh-CN.lang.php index acbe36481..92251592f 100644 --- a/modules/layout/lang/zh-CN.lang.php +++ b/modules/layout/lang/zh-CN.lang.php @@ -13,7 +13,7 @@ $lang->layout_license = '版权'; $lang->layout_history = "更新记录 "; $lang->layout_info = "布局信息"; - $lang->layout_list = '布局目录'; + $lang->layout_list = '布局列表'; $lang->menu_count = '菜单数'; $lang->downloaded_list = '下载目录'; $lang->layout_preview_content = '显示内容的部分。'; diff --git a/modules/member/lang/zh-CN.lang.php b/modules/member/lang/zh-CN.lang.php index 63dfb7d67..b553310bd 100644 --- a/modules/member/lang/zh-CN.lang.php +++ b/modules/member/lang/zh-CN.lang.php @@ -96,7 +96,7 @@ $lang->cmd_view_member_info = '个人资料'; $lang->cmd_leave = '注销'; $lang->cmd_find_member_account = '查找用户名/密码'; - $lang->cmd_resend_auth_mail = '인증 메일 재발송'; + $lang->cmd_resend_auth_mail = '重新发送认证邮件'; $lang->cmd_member_list = '会员目录'; $lang->cmd_module_config = '常规选项'; @@ -104,8 +104,8 @@ $lang->cmd_send_mail = '发送邮件'; $lang->cmd_manage_id = '禁止用户名'; $lang->cmd_manage_form = '扩展注册表单'; - $lang->cmd_view_own_document = '我的话题'; - $lang->cmd_manage_member_info = 'Manage Member Info'; + $lang->cmd_view_own_document = '会员话题'; + $lang->cmd_manage_member_info = '管理会员信息'; $lang->cmd_trace_document = '主题追踪'; $lang->cmd_trace_comment = '评论追踪'; $lang->cmd_view_scrapped_document = '我的收藏'; @@ -206,5 +206,5 @@ $lang->about_member = "可以添加/修改/删除会员及管理用户组或注册表单的会员管理模块。\n此模块不仅可以生成缺省用户组以外的其他用户组来管理会员,并且通过注册表单的管理获得除会员基本信息以外的扩展信息。"; - $lang->about_resend_auth_mail = '인증 메일을 받지 못하신 경우 다시 받으실 수 있습니다.'; + $lang->about_resend_auth_mail = '没有收到认证邮件时,可以在此重新发送认证邮件。'; ?> diff --git a/modules/module/lang/zh-CN.lang.php b/modules/module/lang/zh-CN.lang.php index a2b94fd6e..18410dc61 100644 --- a/modules/module/lang/zh-CN.lang.php +++ b/modules/module/lang/zh-CN.lang.php @@ -7,7 +7,7 @@ $lang->virtual_site = "站点"; $lang->module_list = "模块目录"; - $lang->module_index = "模块目录"; + $lang->module_index = "模块列表"; $lang->module_category = "模块分类"; $lang->module_info = "模块信息"; $lang->add_shortcut = "添加到快捷菜单"; @@ -34,12 +34,12 @@ $lang->lang_code = "语言变量"; $lang->filebox = "文件管理"; - $lang->access_type = '접속 방법'; - $lang->access_domain = 'Domain 접속'; - $lang->access_vid = 'Site ID 접속'; + $lang->access_type = '访问方式'; + $lang->access_domain = '域名'; + $lang->access_vid = '站点ID'; $lang->about_domain = "要创建一个站点必须有一个专用域名。
    一级域名或二级域名皆可。输入的时候请把XE安装路径也一起输入。
    ex) www.xpressengine.com/xe"; - $lang->about_vid = '별도의 도메인이 아닌 http://XE주소/ID 로 접속할 수 있습니다. 모듈명(mid)와 중복될 수 없습니다.
    첫글자는 영문으로 시작해야 하고 영문과 숫자 그리고 _ 만 사용할 수 있습니다'; - $lang->msg_already_registed_vid = '이미 등록된 사이트 ID 입니다. 게시판등의 mid와도 중복이 되지 않습니다. 다른 ID를 입력해주세요.'; + $lang->about_vid = '直接以http://XE安装地址/ID的方式访问。
    模块名(mid)不能重复。
    模块名要以英文字母开头,且只允许使用英文字母,数字及"_"。'; + $lang->msg_already_registed_vid = '重复的站点ID,请重新输入(注:站点ID不能重复,而且也不能与版面mid重复)。'; $lang->msg_already_registed_domain = "对不起!已有相同的域名。请重新输入。"; $lang->header_script = "文件头部脚本"; @@ -72,10 +72,10 @@ $lang->msg_move_failed = '移动失败!'; $lang->msg_cannot_delete_for_child = '不能删除有下级分类的分类!'; $lang->msg_limit_mid ="模块名称只允许英文字母+[英文字母+数字]。"; - $lang->msg_extra_name_exists = '이미 존재하는 확장변수 이름입니다. 다른 이름을 입력해주세요.'; + $lang->msg_extra_name_exists = '已有的扩展变量名称,请重新输入!'; $lang->about_browser_title = "显示在浏览器窗口的标题值。 在RSS/Trackback也可以使用。"; - $lang->about_mid = "模块名称只允许使用英文,数字和下划线。 The maximum length is 40."; + $lang->about_mid = "模块名称只允许使用英文,数字和下划线(最多不能超过40字节)。"; $lang->about_default = "用没有mid值的网址访问网站时,将会显示默认。"; $lang->about_module_category = "可以分类管理模块。 模块分类可以在 模块管理 > 模块分类 中进行管理。"; $lang->about_description= '管理用使用说明。'; @@ -93,6 +93,7 @@ $lang->about_module = "除基本library以外XE全部由模块组成。\n模块管理中列出所有已安装的模块,因此易于管理。"; $lang->about_extra_vars_default_value = '复选/单选缺省值需要多个时,用,(逗号)来分隔。'; $lang->about_search_virtual_site = "请输入子站点域名后再进行搜索。
    子站点以外的模块可以留空搜索。(输入时http://除外)。"; + $lang->about_extra_vars_eid_value = '请输入扩展变量名称(只允许英文字母+[英文字母+数字+_])。'; $lang->about_langcode = "要想实现多国语言切换请点击[选择语言变量]按钮。"; $lang->about_file_extension= "只允许%s文件。"; ?> diff --git a/modules/page/lang/zh-CN.lang.php b/modules/page/lang/zh-CN.lang.php index 4ad956c79..0da7a2372 100644 --- a/modules/page/lang/zh-CN.lang.php +++ b/modules/page/lang/zh-CN.lang.php @@ -9,5 +9,5 @@ $lang->about_page = "可制作完整页面的模块。\n利用最新主题列表或其他控件可以生成动态的页面,且通过网页编辑器做出形式多样的页面。\n连接页面URL同其他模块链接相同。即:mid=模块名称。选择默认选项此页面将变为首页。"; $lang->cmd_page_modify = "页面编辑"; $lang->page_caching_interval = "缓冲时间设置"; - $lang->about_page_caching_interval = "单位为分。缓冲时间内页面将输出临时储存的数据。
    输出外部服务器信息或数据时,如消耗资源很大,尽量把缓冲时间设置为大一点的相应值。
    0 表示无缓冲。"; + $lang->about_page_caching_interval = "单位为分。缓冲时间间隔内页面将输出临时储存的数据。
    显示外链服务器信息或数据时,如消耗资源很大,尽量把缓冲时间设置为大一点的相应值。
    0 表示无缓冲。"; ?> diff --git a/modules/point/lang/zh-CN.lang.php b/modules/point/lang/zh-CN.lang.php index 3bbe703a1..fa946487f 100644 --- a/modules/point/lang/zh-CN.lang.php +++ b/modules/point/lang/zh-CN.lang.php @@ -8,7 +8,7 @@ $lang->point = "积分"; $lang->level = "级别"; - $lang->about_point_module = "积分系统可以在发表/删除新帖,发表/删除评论,上传/下载/删除/文件等动作时,付与其相应的积分。"; + $lang->about_point_module = "积分系统可以在发表新帖及评论,上传/下载文件等动作时,付与其相应的积分的模块。"; $lang->about_act_config = "版面,博客等模块都有发表/删除新帖,发表/删除评论等动作。
    要想与版面/博客之外的模块关联积分功能时,添加与其各模块功能相适合的act值即可。"; $lang->max_level = '最高级别'; @@ -25,8 +25,8 @@ $lang->disable_download = '禁止下载'; $lang->about_disable_download = '没有积分时,将禁止下载。 (图片除外)'; - $lang->disable_read_document = '글 열람 금지'; - $lang->about_disable_read_document = '포인트가 없을 경우 글 열람을 금지하게 됩니다'; + $lang->disable_read_document = '禁止查看主题'; + $lang->about_disable_read_document = '没有积分时,将禁止查看主题。'; $lang->level_point_calc = '计算级别积分'; $lang->expression = '使用级别变数"i"输入JS数学函数。例: Math.pow(i, 2) * 90'; @@ -37,8 +37,8 @@ $lang->about_cmd_point_recal = '积分初始化。即只保留文章/评论/附件/新会员注册的相关积分项。
    其中,初始化后的新会员注册积分项,将在会员有相关动作(发表主题/评论等)时,才付与其相应的积分。
    此项功能请务必慎用!此项功能只能在数据转移或真的需要初始化所有积分时才可以使用。'; $lang->point_link_group = '用户组绑定'; - $lang->point_group_reset_and_add = '설정된 그룹 초기화 후 새 그룹 부여'; - $lang->point_group_add_only = '새 그룹만 부여'; + $lang->point_group_reset_and_add = '初始化已有用户组重新设置'; + $lang->point_group_add_only = '只应用到新用户组'; $lang->about_point_link_group = '即级别绑定用户组。当级别达到指定级别时,会员所属用户组将自动更新为与其相对应的用户组。'; $lang->about_module_point = '可以分别对各模块进行积分设置,没有被设置的模块将使用默认值。
    所有积分在相反动作下恢复原始值。即:发表新帖后再删除得到的积分为0分。'; @@ -61,7 +61,7 @@ $lang->cmd_point_member_list = '会员积分目录'; $lang->msg_cannot_download = '积分不足无法下载!'; - $lang->msg_disallow_by_point = "포인트가 부족하여 글을 읽을 수 없습니다 (필요포인트 : %d, 현재포인트 : %d)"; + $lang->msg_disallow_by_point = "积分不够,无法查看主题。(所需积分 : %d, 当前积分 : %d)"; $lang->point_recal_message = '计算并应用中(%d / %d)。'; $lang->point_recal_finished = '积分重新计算并应用完毕。'; diff --git a/modules/poll/lang/zh-CN.lang.php b/modules/poll/lang/zh-CN.lang.php index fef3ad4c9..e793fbe77 100644 --- a/modules/poll/lang/zh-CN.lang.php +++ b/modules/poll/lang/zh-CN.lang.php @@ -10,7 +10,7 @@ $lang->poll_join_count = "投票者"; $lang->poll_checkcount = "必选项目数"; - $lang->cmd_poll_list = '查看目录'; + $lang->cmd_poll_list = '投票列表'; $lang->cmd_delete_checked_poll = '删除所选项目'; $lang->cmd_apply_poll = '参与投票'; $lang->cmd_view_result = '查看结果'; diff --git a/modules/rss/lang/zh-CN.lang.php b/modules/rss/lang/zh-CN.lang.php index 040040d00..e45a70c23 100644 --- a/modules/rss/lang/zh-CN.lang.php +++ b/modules/rss/lang/zh-CN.lang.php @@ -12,7 +12,7 @@ $lang->feed_copyright = '版权'; $lang->feed_document_count = '每页主题数'; $lang->feed_image = 'RSS图片'; - $lang->rss_type = "将显示的RSS形式"; + $lang->rss_type = "RSS Feed显示样式"; $lang->open_rss = 'RSS公开'; $lang->open_rss_types = array( 'Y' => '公开全文', diff --git a/modules/spamfilter/lang/zh-CN.lang.php b/modules/spamfilter/lang/zh-CN.lang.php index 7d64fc102..88d5cef5e 100644 --- a/modules/spamfilter/lang/zh-CN.lang.php +++ b/modules/spamfilter/lang/zh-CN.lang.php @@ -6,8 +6,8 @@ **/ // action 相关 - $lang->cmd_denied_ip = "禁止IP目录"; - $lang->cmd_denied_word = "敏感词目录"; + $lang->cmd_denied_ip = "禁止IP列表"; + $lang->cmd_denied_word = "敏感词列表"; // 一般用语 $lang->spamfilter = "垃圾过滤"; diff --git a/widgets/content/conf/info.xml b/widgets/content/conf/info.xml index 124b0132c..a709da03b 100644 --- a/widgets/content/conf/info.xml +++ b/widgets/content/conf/info.xml @@ -41,7 +41,7 @@ Article Bài viết 主题 - 主題 + 主題 書き込み @@ -50,7 +50,7 @@ Comment Bình luận 评论 - 評論 + 評論 コメント @@ -59,7 +59,7 @@ Attached Image Hình đính kèm 图片 - 圖片 + 圖片 添付イメージ @@ -68,7 +68,7 @@ Trackback Liên kết Web 引用 - 引用 + 引用 トラックバック @@ -77,7 +77,7 @@ Feed (RSS/ATOM) Feed (RSS/ATOM) Feed (RSS/ATOM) - Feed (RSS/ATOM) + Feed (RSS/ATOM) Feed (RSS/ATOM) @@ -556,43 +556,48 @@ select 페이지수 - Page + Page + 分页 + 頁數 + Page Trang - 分页 - 頁數 ページ数 1 1 - 1 + 1 + 1 + 1 + 1 1 - 1 - 1 1 2 2 - 2 + 2 + 2 + 2 + 2 2 - 2 - 2 2 3 3 - 3 + 3 + 3 + 3 + 3 3 - 3 - 3 3 페이지수 2이상일 경우 이전/다음 버튼이 나타납니다. - Prev/Next buttons will appear when there are more than 2 pages. + Prev/Next buttons will appear when there are more than 2 pages. + 分页数在2以上时,将会出现上一页/下一页按钮。 + 頁數在2以上時,會出現上一頁/下一頁按鈕。 + Prev/Next buttons will appear when there are more than 2 pages. Nút bấm "Trang trước/Trang sau" sẽ xuất hiện khi có từ 2 trang trở lên. - 分页数在2以上时,将会出现上一页/下一页按钮。 - 頁數在2以上時,會出現上一頁/下一頁按鈕。 ページ数が2枚以上の場合、前へ/次へのボタンが現れます。 @@ -634,11 +639,11 @@ text 내용 글자수 - Content Length + Content Length Độ dài nội dung 内容の文字数 - 内容摘要字数 - 內容字數 + 内容摘要字数 + 內容字數 module_srl_list @@ -670,6 +675,8 @@ Feed(RSS/ATOM) URL 피드 주소는 타입이 지원하는 문서 형식일 경우에만 등록 됩니다. (지원 문서 형식 : RSS 2.0, RSS 1.0, ATOM 1.0) + 请输入RSS格式地址。 + (支持文档格式 : RSS 2.0, RSS 1.0, ATOM 1.0) Chỉ hỗ trợ những định dạng được dăng kí. (RSS 2.0 RSS 1.0 ATOM 1.0). RSS URLはタイプが RSSの時だけ登録出来ます。 (サポートする文書形式 : RSS 2.0, RSS 1.0, ATOM 1.0) diff --git a/widgets/counter_status/conf/info.xml b/widgets/counter_status/conf/info.xml index ebe9feed1..211ef4c46 100644 --- a/widgets/counter_status/conf/info.xml +++ b/widgets/counter_status/conf/info.xml @@ -7,7 +7,7 @@ 计数器 Базовый виджет счетчика 計數器 - Counter + Counter 기본 카운터 모듈을 이용하여 전체, 어제, 오늘의 접속현황을 표시합니다. counter모듈이 설치되어 있어야 하고 counter 애드온이 켜져 있어야 합니다. @@ -39,7 +39,7 @@ 利用訪問統計模組顯示總訪問量與昨天、今日的訪問統計量。 想要使用此組件,必須先安裝訪問統計模組並啟動元件。 - + Widget này sẽ hiển thị số người đã truy cập hôm qua và hôm nay bằng cách sử dụng Counter Module cơ bản. Nó cũng thể hiẹn tổng số người đã truy cập. Đê làm việc này bạn phải cài đặt Counter Module và kích hoạt Counter Addon. @@ -55,6 +55,6 @@ zero zero zero - zero + zero
    diff --git a/widgetstyles/simple/skin.xml b/widgetstyles/simple/skin.xml index f2543e873..77fa30e58 100644 --- a/widgetstyles/simple/skin.xml +++ b/widgetstyles/simple/skin.xml @@ -1,15 +1,15 @@ 심플 스트롱 + 简易细线控件样式 Simple line - Dòng đơn giản - 简易控件样式 + Dòng đơn giản 簡單樣式 シンプルストロング 선 하나만으로 꾸며진 위젯스타일 입니다. + 简易细线控件样式。 A widget style decorated with one simple line. - Widget được trang trí với một dòng đơn giản. - 只有栏目名和查看更多(more)选项的简易控件样式。 + Widget được trang trí với một dòng đơn giản. 只有標題與more按紐的簡單控件樣式。 線一つだけのウィジェットスタイルです。 0.1 @@ -19,7 +19,7 @@ sol sol - sol + sol sol sol sol @@ -29,20 +29,20 @@ 컬러셋 Colorset - Tạo màu + Tạo màu 颜色 顏色 カラーセット 컬러셋을 지정해주세요 Choose colorset - Lựa chọn màu sắc + Lựa chọn màu sắc 请指定适当的颜色。 請選擇顏色。 カラーセットを指定して下さい。 하얀색 White - White + White 白色 白色 @@ -51,7 +51,7 @@ 검은색 Black - Black + Black 黑色 黑色 @@ -61,13 +61,13 @@ 제목 Title - Tiêu đề + Tiêu đề 栏目名 標題 タイトル 제목 텍스트 Title text - Chữ của tiêu đề + Chữ của tiêu đề 请输入栏目名。 請輸入標題。 「タイトル」のテキスト @@ -75,26 +75,28 @@ 더보기 URL more URL - URL của Xem thêm + URL của Xem thêm 查看更多(链接) more URL 「もっと見る」URL http:// 포함한 URL를 등록합니다. + 请输入包含http://的URL地址。 + 請輸入http://以外的URL網址。 Destination of a link 'more'. Register an URL including http:// - Địa chỉ trang sẽ chuyển đến khi bấm vào Xem thêm (Bao gồm cả http://) + Địa chỉ trang sẽ chuyển đến khi bấm vào Xem thêm (Bao gồm cả http://) 「http://」を含んだURLを登録します。 더보기 텍스트 more Text - Chữ của Xem thêm + Chữ của Xem thêm 查看更多(文本) more TEXT 「もっと見る」テキスト 더보기 텍스트 Text for a link 'more' - Có thể dùng những từ khác thay cho từ Xem thêm - 文本形式的"查看更多"。 + 文本格式的"查看更多"。 + Có thể dùng những từ khác thay cho từ Xem thêm 純文字格式。 「もっと見る」テキスト From 309de45a35336a6e31f471b037231e3faf5699ce Mon Sep 17 00:00:00 2001 From: ChanMyeong Date: Wed, 11 Nov 2009 07:17:31 +0000 Subject: [PATCH 62/72] autoinstall.css git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6923 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/tpl/css/font.css | 23 +-- modules/admin/tpl/img/iconRefresh.gif | Bin 0 -> 652 bytes modules/admin/tpl/img/iconWarning.gif | Bin 0 -> 595 bytes modules/autoinstall/tpl/css/autoinstall.css | 102 ++++++------ modules/autoinstall/tpl/index.html | 43 +++-- modules/autoinstall/tpl/install.html | 53 ++---- modules/autoinstall/tpl/leftBox.html | 94 +++++------ modules/autoinstall/tpl/list.html | 173 +++++++++----------- 8 files changed, 233 insertions(+), 255 deletions(-) create mode 100644 modules/admin/tpl/img/iconRefresh.gif create mode 100644 modules/admin/tpl/img/iconWarning.gif diff --git a/modules/admin/tpl/css/font.css b/modules/admin/tpl/css/font.css index bc27ce0e3..fa704215f 100755 --- a/modules/admin/tpl/css/font.css +++ b/modules/admin/tpl/css/font.css @@ -11,10 +11,10 @@ #xeAdmin h1.xeAdmin a{ text-decoration:none !important; font-family:Arial; font-size:16px; color:#fff; margin:0; padding:0;} #xeAdmin table th{ color:#666;} #xeAdmin table th a { color:#666;} -#xeAdmin table td{ color:#888;} -#xeAdmin table td a { color:#888;} -#xeAdmin caption{ font-size:11px; font-family:Tahoma; color:#888;} -#xeAdmin div.summary { font-size:11px; font-family:Tahoma; color:#888;} +#xeAdmin table td{ color:#767676;} +#xeAdmin table td a { color:#767676;} +#xeAdmin caption{ font-size:11px; font-family:Tahoma; color:#767676;} +#xeAdmin div.summary { font-size:11px; font-family:Tahoma; color:#767676;} #xeAdmin div.summary strong { font-weight:normal; } #xeAdmin button.text{ font-size:12px;} #xeAdmin em, @@ -31,10 +31,10 @@ #xeAdmin .lnb li a{ color:#fff; font-size:14px; font-family:Dotum, Tahoma;} #xeAdmin .path{ color:#ccc; font-size:11px;} -#xeAdmin .path a{ color:#888; font-size:11px; font-family:Dotum, Sans-serif;} +#xeAdmin .path a{ color:#767676; font-size:11px; font-family:Dotum, Sans-serif;} .e1 .navigation li a{ color:#000; text-decoration:none;} -.e1 .navigation li ul li a{ color:#888;} +.e1 .navigation li ul li a{ color:#767676;} .e1 .navigation li ul li.active a{ font-weight:bold; color:#666;} .e2 .section h2.xeAdmin { font-size:12px; margin:0; padding:0;} @@ -43,15 +43,18 @@ .e2 table tbody th{ font-weight:normal; font-family:Dotum;} .e2 .notice li a{ color:#666; } -.e2 .notice li .date{ color:#888; font:10px Tahoma;} +.e2 .notice li .date{ color:#767676; font:10px Tahoma;} .localNavigation li a{ text-decoration:none !important; color:#666;} .localNavigation li.active a{ font-weight:bold; color:#1e6aac;} #xeAdmin h2.xeAdmin { font-size:12px;} #xeAdmin h3.xeAdmin { font-size:12px; color:#666; margin:0; padding:0;} -#xeAdmin p.summary{ color:#888;} -#xeAdmin p.summary a { text-decoration:none; color:#888; } +#xeAdmin p.summary{ color:#767676;} +#xeAdmin p.summary a { text-decoration:none; color:#767676; } #xeAdmin p.summary.red { color:#A54D4D; } #xeAdmin p.summary.red a { text-decoration:none; color:#A54D4D; } -#xeAdmin div.infoText { color:#888;} +#xeAdmin div.infoText { color:#767676;} +#xeAdmin div.infoText p.warning{ margin:0 0 10px 0; padding:0 0 0 25px; background:url(../img/iconWarning.gif) no-repeat left top;} +#xeAdmin div.infoText p.update{ margin:0 0 10px 0; padding:0 0 0 25px; background:url(../img/iconRefresh.gif) no-repeat left top;} +#xeAdmin .buttonAction{} diff --git a/modules/admin/tpl/img/iconRefresh.gif b/modules/admin/tpl/img/iconRefresh.gif new file mode 100644 index 0000000000000000000000000000000000000000..9d1304ccd54b3a0deacdb5dc4f8c654fc45a906c GIT binary patch literal 652 zcmV;70(1RGNk%w1VGsZi0Oo%Hyi7{9x3~TN{`cqS-h_m~MMBhkeB~t`=&GvTR#wOX z0QL3t+1lFLo14y!jfZDv?(XjG*4C-7ubEt0iCS5mYHH%FtmATW>!6_JZf?cQ%)ObJ z(f|O}sj0@t$Krf^?cd+||NokejoOZm)C>&k>+5rLbjLa}U|-ME)9d2mv<(Tlz`)Ye)7aJ3$TTj4a&o2? z7U!_A@662RUtigZiinMk$z)^y%**19jr@6X^^1wk&CUNyLHkor^YioEva+eLvHLM8 z@A2{I|No1RkmAr!j?ZinM_Q-y1Jl$f1G@LymE5iY;4up+4K4N=@Jgi z-{JBV4~2n&)#m5h3kbVEJ|7BdoRZ_oOTc!X2!yy~H77^sVy|qI<>}O(+VPA}D zYJXo}k%orbd3oOA;{(ggi;MsN|NsC0A^8LW004ggEC2ui z01yBW000N+fPaF5E(}>&I}3x0e@r4<8!s;#S|TNk3=bW65g;HDKpk>Pg9~#%RuF!x zehVo-HJ5*M4i;Yn77cqTt8NZGe*zUoRRab>BO?Y)s|Xbf40j(lG<5{meGLMBMqD}` zY8eIN2g0%3}XX){I;1PTg{tctQC1eGT&;@BCap$3}+ mXpkIHa)3vi9E@U^nDFMr2>=sJcwsasj}s|FB*b782mm|X?mLSB literal 0 HcmV?d00001 diff --git a/modules/admin/tpl/img/iconWarning.gif b/modules/admin/tpl/img/iconWarning.gif new file mode 100644 index 0000000000000000000000000000000000000000..822de82cc2044bf408e0a1665cf135f1782bdda3 GIT binary patch literal 595 zcmZ?wbhEHb6krfwcvi}=Y}xYvUm5Hl+vMT-{w`0?Za6Nb}U82`Uy_C4sTw%blLwWe8=`Lzr9EI(INTo?@oRB z^7;50&SQsG{s)@Ez;s~8{1b=Q2?}fc|H*uDPkd83!}A-{U%hG^NjE3&!4_-TrBJwzkmP!|5)JEMzi_z z=Q}!iT-(odXxFTp2MnBTnAfabe|$aj{p0G(SFAd7a@W;k)=J76XSM?UzU1dyhBI3k zH_TCf{puwHBgeG^=GV^cyu3I3=>Elzj>$eaSNH3~saKct{(oawJU8XdWr6>17T8l zuy1H6ZE7w}aA@i1aLhOE>@=0jQRwT)OO+~Qo6=;X78qi0GF!ML#o10HO?rxmWui~G zm66{R6*Dh+9!V| UIT Center > Open UI Tech Team > Jeong Chan Myeong(dece24@nhncorp.com) */ +.install{ border-top:1px solid #ddd; *zoom:1;} +.install:after{ content:""; display:block; clear:both;} + +.aside { width:180px; float:left; margin-right:30px; padding-bottom:30px; } + +.aside .categoryBox { background-color:#F8F8F8; padding:10px; width:160px; overflow:hidden; } +.aside .categoryBox h3 { padding:0 0 10px 0; margin:0 0 10px 0; white-space:nowrap; overflow:hidden; color:#48494E; font-size:11px; font-weight:normal; background:transparent url(../img/hrE1.gif) repeat-x scroll left bottom;} +.aside .categoryBox h3 a { color:#48494E; font-size:12px; font-weight:bold; text-decoration:none; } +.aside .categoryBox ul.category { margin:10px 0 0 0; padding:0; list-style:none; } +.aside .categoryBox ul.category li { margin:0 0 10px 10px; } +.aside .categoryBox ul.category li a.selected { font-weight:bold; color:#2893BB; } +.aside .categoryBox ul.category li a { text-decoration:none; color:#7B7575; } +.aside .categoryBox ul.category li span { font-family:verdana; font-size:10px; color:#999; } + +.aside .categoryBox ul.resourceManage { margin:0; padding:10px 0 0 0; list-style:none; background:transparent url(../img/hrE1.gif) repeat-x scroll left top; } +.aside .categoryBox ul.resourceManage li { background:url(../img/btnManage.gif) no-repeat 2px 2px; padding-left:14px; white-space:nowrap; overflow:hidden; margin-bottom:10px; } +.aside .categoryBox ul.resourceManage li a { text-decoration:none; color:#747474; } +.aside .categoryBox ul.resourceManage li a.selected { font-weight:bold; } + +.aside .searchBox { padding:10px 0; text-align:center; background:transparent url(../img/hrE1.gif) repeat-x scroll left top;} +.aside .searchBox input.input { border:1px solid #ddd; width:120px; height:16px;} +.aside .searchBox input.submit { vertical-align:middle; } + +.install .content { position:relative; *zoom:1; overflow:hidden; width:auto; float:none; margin:0;} + +.updateList, +.updateList th, +.updateList td{ border:0; vertical-align:top; text-align:left; padding:10px 0;} +.updateList {width:100%; height:100px; table-layout:fixed;} +.updateList th, +.updateList td{ border-bottom:1px dotted #ddd;} +.updateList th img { border:1px solid #ccc; padding:2px; overflow:hidden; *zoom:1; } +.updateList td { padding:10px 0 0 0;} +.updateList td .title{ position:relative;} +.updateList td .title h3 { padding:0; margin:0 0 5px 0; font-size:12px;} +.updateList td .title a {text-decoration:none; color:#333 !important; } +.updateList td .title .button{ position:absolute; top:0; right:0;} +.updateList td .info p{ margin:0 0 5px 0; line-height:1.5;} +.updateList td .info p.desc{ margin:0 100px 10px 0;} +.updateList td .info p.meta{ font-size:11px;} +.updateList td .info p.meta span{ display:inline-block; line-height:1; padding:0 5px 0 9px;} +.updateList td .info p.meta .reputation{ padding:0 5px 0 0;} +.updateList td .info p.meta .reputation img{ float:left; margin:-1px 0 0 0;} +.updateList td .info p.meta .reputation span{ padding:0 0 0 5px;} +.updateList td .info p.meta .lastUpdate{ border-left:1px solid #ddd;} +.updateList td .info p.meta .download{ border-left:1px solid #ddd;} + +ul.listOrder { position:relative; overflow:hidden; margin:0; padding:10px 0; text-align:left; background:transparent url(../img/hrE1.gif) repeat-x scroll left bottom;} +ul.listOrder.asc li.arrow { background:url(../img/arrUp.gif) no-repeat right 2px; padding-right:10px; } +ul.listOrder.desc li.arrow { background:url(../img/arrDown.gif) no-repeat right 2px; padding-right:10px; } +ul.listOrder li { position:relative; left:-1px; display:inline; margin:0; padding:0 5px 0 9px; border-left:1px solid #ddd;} +ul.listOrder li.arrow a { text-decoration:none; font-weight:bold; color:#2893BB; } +ul.listOrder li a { text-decoration:none; color:#7B7575; } diff --git a/modules/autoinstall/tpl/index.html b/modules/autoinstall/tpl/index.html index 4fc2f2f99..fd3ddec92 100644 --- a/modules/autoinstall/tpl/index.html +++ b/modules/autoinstall/tpl/index.html @@ -1,22 +1,21 @@ - - - -
    - -{$lang->description_ftp_note} - - -

    -{$lang->need_update}

    - -

    {$lang->description_update}

    - -Update -
    -
    - - - - - - + + + +
    + +

    {$lang->description_ftp_note} FTP Setup

    + + +

    {$lang->need_update}

    + +

    {$lang->description_update}

    + +

    +
    + +
    + + + + +
    diff --git a/modules/autoinstall/tpl/install.html b/modules/autoinstall/tpl/install.html index ae1bc4e75..7b57bbcf0 100644 --- a/modules/autoinstall/tpl/install.html +++ b/modules/autoinstall/tpl/install.html @@ -1,35 +1,18 @@ - - - -
    - - - - - - - - - - - - - - - - -
    -

    - {$package->title} ver. {$package->version} ( 현재버전: {$package->cur_version} (업데이트가 필요합니다.) 인스톨이 필요합니다. ) -

    -
    의존하고 있는 프로그램 - - {$dep->title} ver. {$dep->version} - - 현재버전: {$dep->cur_version} (업데이트가 필요합니다.) 인스톨이 필요합니다. -
    - -
    - 설치를 진행하면 의존성이 있는 모든 프로그램을 함께 설치합니다. 설치하기 -
    - -
    + + + +
    +

    {$package->title} ver. {$package->version} ( 현재버전: {$package->cur_version} (업데이트가 필요합니다.) 인스톨이 필요합니다. )

    + +
    +
    의존하고 있는 프로그램 :
    +
    sdfgsdfg + {$dep->title} ver. {$dep->version} - + 현재버전: {$dep->cur_version} (업데이트가 필요합니다.) 인스톨이 필요합니다. +
    +
    + +

    설치를 진행하면 의존성이 있는 모든 프로그램을 함께 설치합니다.

    +

    설치하기

    + +
    diff --git a/modules/autoinstall/tpl/leftBox.html b/modules/autoinstall/tpl/leftBox.html index a89bdac5b..e65b9f190 100644 --- a/modules/autoinstall/tpl/leftBox.html +++ b/modules/autoinstall/tpl/leftBox.html @@ -1,47 +1,47 @@ -
    -
    -

    {$lang->view_all_package} ({$tCount})

    - {@ $_pDepth = 0;} - -
      - - - -
    - - - {@ $_pDepth = $val->depth} - -
  • - - category_srl == $category_srl)--> class="selected">{$val->title} - - category_srl == $category_srl)--> class="selected">{$val->title} - - - ({$val->nPackages}) - - - {@$_pDepth++} -
      - - - - - -
    - -
  • - - -
    - -
    +
    +
    +

    {$lang->view_all_package} ({$tCount})

    + {@ $_pDepth = 0;} + +
      + + + +
    + + + {@ $_pDepth = $val->depth} + +
  • + + category_srl == $category_srl)--> class="selected">{$val->title} + + category_srl == $category_srl)--> class="selected">{$val->title} + + + ({$val->nPackages}) + + + {@$_pDepth++} +
      + + + + + +
    + +
  • + + +
    + +
    diff --git a/modules/autoinstall/tpl/list.html b/modules/autoinstall/tpl/list.html index f8752c1ba..24e4ea578 100644 --- a/modules/autoinstall/tpl/list.html +++ b/modules/autoinstall/tpl/list.html @@ -1,94 +1,79 @@ -
    -
      - - {@$_order_type = 'asc'}{@$_order_type = 'desc'} - - {@$_order_type = 'desc'} - -
    • class="arrow">{$lang->order_newest}
    • - - {@$_order_type = 'asc'}{@$_order_type = 'desc'} - - {@$_order_type = 'desc'} - -
    • class="arrow">{$lang->order_download}
    • - - {@$_order_type = 'asc'}{@$_order_type = 'desc'} - - {@$_order_type = 'desc'} - -
    • class="arrow">{$lang->order_popular}
    • -
    - - - - - - - - {@ $target_url = $original_site."?mid=download&package_srl=".$val->package_srl; } - - - - - - - - - - - - - - - - -
    -

    - {htmlspecialchars($val->title)} ver. {htmlspecialchars($val->item_version)} -

    -
    -
    {cut_str(htmlspecialchars($val->package_description),200)}
    -
      -
    • - {$lang->package_update} {zdate($val->item_regdate, "Y-m-d H:i")} - / {$lang->package_downloaded_count} : {number_format($val->package_downloaded)} - - -
    • -
    -
    - -
    - - - -
    +
    +
      + + {@$_order_type = 'asc'}{@$_order_type = 'desc'} + + {@$_order_type = 'desc'} + +
    • class="arrow">{$lang->order_newest}
    • + + {@$_order_type = 'asc'}{@$_order_type = 'desc'} + + {@$_order_type = 'desc'} + +
    • class="arrow">{$lang->order_download}
    • + + {@$_order_type = 'asc'}{@$_order_type = 'desc'} + + {@$_order_type = 'desc'} + +
    • class="arrow">{$lang->order_popular}
    • +
    + + + + + + {@ $target_url = $original_site."?mid=download&package_srl=".$val->package_srl; } + + + + +
    +
    +

    + + [{$categories[$val->category_srl]->title}] + + {htmlspecialchars($val->title)} ver. {htmlspecialchars($val->item_version)} +

    + + 현재 설치 버전 : {$val->current_version} + + 업데이트 + + + 인스톨 + +
    +
    +

    {cut_str(htmlspecialchars($val->package_description),200)}

    +

    + + + + + + + + + {sprintf("%0.1f",$val->package_voted/$val->package_voter*2)}/{number_format($val->package_voter)} + + {$lang->package_update} {zdate($val->item_regdate, "Y-m-d H:i")} + {$lang->package_downloaded_count} : {number_format($val->package_downloaded)} +

    +
    +
    + + +
    From 5c9b048738e53ce0805846726bd454d4b1546d1d Mon Sep 17 00:00:00 2001 From: ChanMyeong Date: Wed, 11 Nov 2009 07:17:58 +0000 Subject: [PATCH 63/72] =?UTF-8?q?=EB=B2=84=ED=8A=BC=20IE7=20=EB=94=94?= =?UTF-8?q?=EB=B2=84=EA=B9=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6924 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/css/button.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/common/css/button.css b/common/css/button.css index 322a8ff77..a22664844 100644 --- a/common/css/button.css +++ b/common/css/button.css @@ -3,9 +3,9 @@ /* Anchor Button */ a.button, -a.button span { position:relative; display:inline-block; text-decoration:none !important; background:url(../tpl/images/buttonWhite.gif) no-repeat; cursor:pointer; white-space:nowrap; vertical-align:middle; *vertical-align:top;} +a.button span { position:relative; display:inline-block; text-decoration:none !important; background:url(../tpl/images/buttonWhite.gif) no-repeat; cursor:pointer; white-space:nowrap; vertical-align:middle;} a.button { padding:0; background-position:left top; overflow:visible;} -a.button span { left:2px; padding:6px 10px 5px 8px; color:#000; font:12px/12px Sans-serif; background-position:right top;} +a.button span { left:2px; padding:6px 10px 5px 8px; color:#000; font:12px/12px Sans-serif; background-position:right top; *vertical-align:top;} /* Large Size */ a.button.large { background-position:left -30px; } a.button.large span { padding:7px 10px 6px 8px; font:16px/16px Sans-serif; background-position:right -30px;} @@ -22,11 +22,11 @@ span.button button, span.button input { position:relative; margin:0; display:inline-block; border:0; font:12px Sans-serif; white-space:nowrap; background:url(../tpl/images/buttonWhite.gif) no-repeat; vertical-align:middle;} span.button { padding:0; background-position:left top;} span.button button, -span.button input { height:23px; left:2px; *top:-1px; _top:0; padding:0 10px 0 8px; line-height:24px; background-position:right top; cursor:pointer; *overflow:visible;} +span.button input { height:23px; left:2px; *vertical-align:top; padding:0 10px 0 8px; line-height:24px; background-position:right top; cursor:pointer; *overflow:visible;} /* Large Size */ span.button.large { background-position:left -30px;} span.button.large button, -span.button.large input { height:30px; *top:0; _top:-1px; padding:0 10px 0 8px; font:16px/30px Sans-serif; background-position:right -30px;} +span.button.large input { height:30px; padding:0 10px 0 8px; font:16px/30px Sans-serif; background-position:right -30px;} /* xLarge Size */ span.button.xLarge { background-position:left -65px;} span.button.xLarge button, @@ -34,7 +34,7 @@ span.button.xLarge input { height:35px; padding:0 10px 0 8px; font:20px/36px San /* Small Size */ span.button.small { background-position:left -107px;} span.button.small button, -span.button.small input { height:18px; *top:0; _top:-1px; padding:0 6px 0 4px; font:11px/18px Sans-serif; background-position:right -107px;} +span.button.small input { height:18px; padding:0 6px 0 4px; font:11px/18px Sans-serif; background-position:right -107px;} /* Strong Button */ a.button.strong *, From 0ccabfcbbbd8fcf7d3f2b7ba6db5cfd74495df11 Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 11 Nov 2009 07:20:27 +0000 Subject: [PATCH 64/72] =?UTF-8?q?ftp=20root=20path=20=EB=A5=BC=20Core?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6925 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/lang/en.lang.php | 4 ++ common/lang/es.lang.php | 5 +++ common/lang/fr.lang.php | 4 ++ common/lang/ge.lang.php | 4 ++ common/lang/jp.lang.php | 5 +++ common/lang/ko.lang.php | 6 ++- common/lang/ru.lang.php | 6 +++ common/lang/vi.lang.php | 4 ++ common/lang/zh-CN.lang.php | 4 ++ common/lang/zh-TW.lang.php | 5 +++ libs/ftp.class.php | 2 +- modules/admin/admin.admin.view.php | 35 +++++++++++++++ modules/admin/tpl/config.html | 40 +++++++++++++++++ .../autoinstall.admin.controller.php | 19 ++------ .../autoinstall/autoinstall.admin.view.php | 44 ------------------- .../autoinstall/autoinstall.controller.php | 18 -------- modules/autoinstall/conf/module.xml | 3 -- modules/autoinstall/tpl/header.html | 1 - modules/install/install.admin.controller.php | 2 +- modules/install/tpl/js/install_admin.js | 4 ++ 20 files changed, 131 insertions(+), 84 deletions(-) delete mode 100644 modules/autoinstall/autoinstall.controller.php diff --git a/common/lang/en.lang.php b/common/lang/en.lang.php index 9890129b2..357b82bbd 100644 --- a/common/lang/en.lang.php +++ b/common/lang/en.lang.php @@ -296,6 +296,10 @@ $lang->msg_ftp_chmod_fail = "Chmod failed. Please check the permission and configuration of FTP server."; $lang->msg_ftp_connect_success = "Connection and authentication to the FTP server succeeded."; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + // Alert messages for Javascript using by XML filter $lang->filter->isnull = 'Please input a value for %s'; diff --git a/common/lang/es.lang.php b/common/lang/es.lang.php index 8c98b0877..3c2e938d1 100644 --- a/common/lang/es.lang.php +++ b/common/lang/es.lang.php @@ -302,6 +302,11 @@ $lang->msg_ftp_chmod_fail = "Ha fallado el comando de FTP para la modificación de atributos de directorio. Verifique la configuración del servicio FTP en el servidor."; $lang->msg_ftp_connect_success = "conexión con éxito al FTP"; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + + // Mensajes de alerta para Javascript usando el filtro XML $lang->filter->isnull = 'Introduzca valor en el %s'; diff --git a/common/lang/fr.lang.php b/common/lang/fr.lang.php index 5ff8125e0..2f775fdd0 100644 --- a/common/lang/fr.lang.php +++ b/common/lang/fr.lang.php @@ -296,6 +296,10 @@ $lang->msg_ftp_chmod_fail = "FTP를 이용한 디렉토리의 속성 변경을 실패하였습니다. FTP 서버의 설정을 확인해주세요"; $lang->msg_ftp_connect_success = "FTP 접속 및 인증 성공하였습니다"; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + // Messages d\'alerte de le Javascript qui est utilisé dans les filtres en XML $lang->filter->isnull = 'Entrez une valeur pour %s'; diff --git a/common/lang/ge.lang.php b/common/lang/ge.lang.php index 056f0734a..31577eba8 100644 --- a/common/lang/ge.lang.php +++ b/common/lang/ge.lang.php @@ -296,6 +296,10 @@ $lang->msg_ftp_chmod_fail = "FTP를 이용한 디렉토리의 속성 변경을 실패하였습니다. FTP 서버의 설정을 확인해주세요"; $lang->msg_ftp_connect_success = "FTP 접속 및 인증 성공하였습니다"; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + // Alert Nachrichten für JavaScript unter Verwendung von XML-Filter $lang->filter->isnull = 'Bitte geben Sie einen Wert für% s'; diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index d1f59b580..0a262067b 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -298,6 +298,11 @@ $lang->msg_ftp_chmod_fail = 'FTPを用いたディレクトリパーミッション(permission)変更に失敗しました。FTPサーバーの設定を再度ご確認下さい。'; $lang->msg_ftp_connect_success = 'FTP接続に成功しました。'; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + + // xml filterで用いられているjavascript用のアラートメッセージ $lang->filter->isnull = '%sを入力して下さい。'; $lang->filter->outofrange = '%sの文字の長さを合わせて下さい。'; diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index 90b73cef9..0c1e477f5 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -279,7 +279,7 @@ $lang->eid = '확장변수 이름'; // ftp 관련 - $lang->ftp_form_title = 'FTP 정보 입력'; + $lang->ftp_form_title = 'FTP 계정 정보 입력'; $lang->ftp = 'FTP'; $lang->ftp_port = 'FTP port'; $lang->cmd_check_ftp_connect = 'FTP 접속 확인'; @@ -298,6 +298,10 @@ $lang->msg_ftp_chmod_fail = 'FTP를 이용한 디렉토리의 속성 변경에 실패하였습니다. FTP 서버의 설정을 확인해주세요.'; $lang->msg_ftp_connect_success = 'FTP 접속 및 인증에 성공하였습니다.'; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + // xml filter에서 사용되는 javascript용 alert msg $lang->filter->isnull = '%s을 입력해주세요.'; $lang->filter->outofrange = '%s의 글자 수를 맞추어 주세요.'; diff --git a/common/lang/ru.lang.php b/common/lang/ru.lang.php index 3554b0229..1e9682ed2 100644 --- a/common/lang/ru.lang.php +++ b/common/lang/ru.lang.php @@ -291,6 +291,12 @@ $lang->msg_ftp_chmod_fail = "FTP를 이용한 디렉토리의 속성 변경을 실패하였습니다. FTP 서버의 설정을 확인해주세요"; $lang->msg_ftp_connect_success = "FTP 접속 및 인증 성공하였습니다"; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + + + $lang->is_active = 'Активно'; $lang->is_required = 'Требуемое поле'; $lang->eid = '확장변수 이름'; diff --git a/common/lang/vi.lang.php b/common/lang/vi.lang.php index d01f43763..1ece93503 100644 --- a/common/lang/vi.lang.php +++ b/common/lang/vi.lang.php @@ -286,6 +286,10 @@ $lang->msg_ftp_chmod_fail = "CHMOD không thành công. Xin vui lòng kiểm tra lại."; $lang->msg_ftp_connect_success = "Đã xác nhận và kết nối thành công tới máy chủ bằng FTP."; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + // Alert messages for Javascript using by XML filter $lang->filter->isnull = 'Xin vui lòng nhập giá trị cho %s'; diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php index 0c3015f89..c89a96343 100644 --- a/common/lang/zh-CN.lang.php +++ b/common/lang/zh-CN.lang.php @@ -298,6 +298,10 @@ $lang->msg_ftp_chmod_fail = "修改文件夹属性失败。请确认 FTP服务器设置。"; $lang->msg_ftp_connect_success = "FTP连接成功。"; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + // 在xml filter使用的 javascript用 alert msg $lang->filter->isnull = '请输入%s'; $lang->filter->outofrange = '请确认%s字数'; diff --git a/common/lang/zh-TW.lang.php b/common/lang/zh-TW.lang.php index 4dadc73a3..1ceb1bdb2 100644 --- a/common/lang/zh-TW.lang.php +++ b/common/lang/zh-TW.lang.php @@ -297,6 +297,11 @@ $lang->msg_ftp_chmod_fail = '修改資料夾權限失敗。請確認FTP主機設置。'; $lang->msg_ftp_connect_success = 'FTP連線成功。'; + $lang->ftp_path_title = 'FTP 경로 정보 입력'; + $lang->msg_ftp_installed_realpath = '설치된 XE의 절대경로'; + $lang->msg_ftp_installed_ftp_realpath = '설치된 XE의 FTP 절대경로 설정'; + + // 在xml filter中所使用的JavaScript警告訊息 $lang->filter->isnull = '請輸入%s'; $lang->filter->outofrange = '請確認%s字數'; diff --git a/libs/ftp.class.php b/libs/ftp.class.php index 3bd739f54..ad6c526cf 100644 --- a/libs/ftp.class.php +++ b/libs/ftp.class.php @@ -48,7 +48,7 @@ /* Constractor */ function ftp() { - $this->debug = FALSE; + $this->debug = false; $this->umask = 0022; $this->timeout = 30; diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 3eb6e03f0..372de91c1 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -268,6 +268,41 @@ $output = executeQuery('module.getSiteInfo', $site_args); Context::set('start_module', $output->data); + $pwd = Context::get('pwd'); + if(!$pwd) $pwd = '/'; + Context::set('pwd',$pwd); + require_once(_XE_PATH_.'libs/ftp.class.php'); + + $ftp_info = Context::getFTPInfo(); + $oFtp = new ftp(); + if(!$oFtp->ftp_connect('localhost', $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); + if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $oFtp->ftp_quit(); + return new Object(-1,'msg_ftp_invalid_auth_info'); + } + + $_list = $oFtp->ftp_rawlist($pwd); + $oFtp->ftp_quit(); + + $list = array(); + if(count($_list) == 0 || !$_list[0]) { + $oFtp = new ftp(); + if(!$oFtp->ftp_connect($_SERVER['SERVER_NAME'], $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); + if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $oFtp->ftp_quit(); + return new Object(-1,'msg_ftp_invalid_auth_info'); + } + + $_list = $oFtp->ftp_rawlist($pwd); + $oFtp->ftp_quit(); + } + if($_list){ + foreach($_list as $k => $v){ + if(strpos($v,'d') === 0) $list[] = substr(strrchr($v,' '),1) . '/'; + } + } + + Context::set('list',$list); Context::set('layout','none'); $this->setTemplateFile('config'); } diff --git a/modules/admin/tpl/config.html b/modules/admin/tpl/config.html index 6665f90d3..51b3da5c0 100644 --- a/modules/admin/tpl/config.html +++ b/modules/admin/tpl/config.html @@ -3,6 +3,7 @@ + @@ -141,7 +142,46 @@ + +

    {$lang->ftp_path_title}

    +
    + + + + + + + + + + + + + + + + + + +
    {$lang->msg_ftp_installed_realpath}
    {_XE_PATH_} +
    {$lang->msg_ftp_installed_ftp_realpath}
    + +
    + + + +
    + +
    +
    +
    diff --git a/modules/autoinstall/autoinstall.admin.controller.php b/modules/autoinstall/autoinstall.admin.controller.php index 8dc7f80a0..a950767c4 100644 --- a/modules/autoinstall/autoinstall.admin.controller.php +++ b/modules/autoinstall/autoinstall.admin.controller.php @@ -83,7 +83,7 @@ return new Object(-1,'msg_ftp_invalid_auth_info'); } - $_list = $oFtp->ftp_rawlist($config->ftp_root_path); + $_list = $oFtp->ftp_rawlist($ftp_config->ftp_root_path); if(count($_list) == 0 || !$_list[0]) { $oFtp->ftp_quit(); $oFtp = new ftp(); @@ -94,10 +94,8 @@ } } - $oModuleModel = &getModel('module'); - $config = $oModuleModel->getModuleConfig('autoinstall'); - - $target_dir = $config->ftp_root_path.$this->target_path; + $ftp_config = Context::getFTPInfo(); + $target_dir = $ftp_config->ftp_root_path.$this->target_path; foreach($file_list as $k => $file){ $org_file = $file; @@ -109,7 +107,7 @@ $path_list = explode('/', dirname($this->target_path."/".$file)); $real_path = "./"; - $ftp_path = $config->ftp_root_path; + $ftp_path = $ftp_config->ftp_root_path; for($i=0;$iftp_root_path = Context::get('ftp_root_path'); - $output = $oModuleController->insertModuleConfig('autoinstall',$config); - return $output; - } - - function checkFileCheckSum($file, $checksum){ $local_checksum = md5_file(FileHandler::getRealPath($file)); return ($local_checksum === $checksum); diff --git a/modules/autoinstall/autoinstall.admin.view.php b/modules/autoinstall/autoinstall.admin.view.php index 7bda6575f..62d08bd87 100644 --- a/modules/autoinstall/autoinstall.admin.view.php +++ b/modules/autoinstall/autoinstall.admin.view.php @@ -185,49 +185,5 @@ Context::set('categories', $categories); Context::set('tCount', $oModel->getPackageCount(null)); } - - - function dispAutoinstallAdminConfig(){ - $pwd = Context::get('pwd'); - if(!$pwd) $pwd = '/'; - Context::set('pwd',$pwd); - require_once(_XE_PATH_.'libs/ftp.class.php'); - - $ftp_info = Context::getFTPInfo(); - $oFtp = new ftp(); - if(!$oFtp->ftp_connect('localhost', $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); - if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { - $oFtp->ftp_quit(); - return new Object(-1,'msg_ftp_invalid_auth_info'); - } - - $_list = $oFtp->ftp_rawlist($pwd); - $oFtp->ftp_quit(); - $list = array(); - if(count($_list) == 0 || !$_list[0]) { - $oFtp = new ftp(); - if(!$oFtp->ftp_connect($_SERVER['SERVER_NAME'], $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); - if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { - $oFtp->ftp_quit(); - return new Object(-1,'msg_ftp_invalid_auth_info'); - } - - $_list = $oFtp->ftp_rawlist($pwd); - $oFtp->ftp_quit(); - } - if($_list){ - foreach($_list as $k => $v){ - if(strpos($v,'d') === 0) $list[] = substr(strrchr($v,' '),1) . '/'; - } - } - - Context::set('list',$list); - - $oModuleModel = &getModel('module'); - $config = $oModuleModel->getModuleConfig('autoinstall'); - Context::set('config',$config); - - $this->setTemplateFile('config'); - } } ?> diff --git a/modules/autoinstall/autoinstall.controller.php b/modules/autoinstall/autoinstall.controller.php deleted file mode 100644 index bc2ecc08c..000000000 --- a/modules/autoinstall/autoinstall.controller.php +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/modules/autoinstall/conf/module.xml b/modules/autoinstall/conf/module.xml index 2cc9462c9..a4283f729 100644 --- a/modules/autoinstall/conf/module.xml +++ b/modules/autoinstall/conf/module.xml @@ -1,11 +1,8 @@ - - - diff --git a/modules/autoinstall/tpl/header.html b/modules/autoinstall/tpl/header.html index 9c5655dfb..602a5b267 100644 --- a/modules/autoinstall/tpl/header.html +++ b/modules/autoinstall/tpl/header.html @@ -3,6 +3,5 @@
    diff --git a/modules/install/install.admin.controller.php b/modules/install/install.admin.controller.php index cf7385e12..7ae05930a 100644 --- a/modules/install/install.admin.controller.php +++ b/modules/install/install.admin.controller.php @@ -119,7 +119,7 @@ * @brief FTP 정보 등록 **/ function procInstallAdminSaveFTPInfo() { - $ftp_info = Context::gets('ftp_user','ftp_password','ftp_port'); + $ftp_info = Context::gets('ftp_user','ftp_password','ftp_port','ftp_root_path'); $ftp_info->ftp_port = (int)$ftp_info->ftp_port; if(!$ftp_info->ftp_port) $ftp_info->ftp_port = 21; $buff = ' Date: Wed, 11 Nov 2009 07:30:50 +0000 Subject: [PATCH 65/72] =?UTF-8?q?=EB=B2=88=EC=97=AD=20/=20=EB=AC=B8?= =?UTF-8?q?=EA=B5=AC=20=EC=88=98=EC=A0=95=20-=20=EC=98=81=EC=96=B4=20?= =?UTF-8?q?=EB=B2=88=EC=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6926 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/autoinstall/autoinstall.model.php | 2 +- modules/autoinstall/conf/info.xml | 17 +++++--------- modules/autoinstall/lang/en.lang.php | 28 +++++++++++++++++++++++ modules/autoinstall/lang/ko.lang.php | 11 +++++++-- modules/autoinstall/lang/zh-CN.lang.php | 3 +++ modules/autoinstall/tpl/install.html | 10 ++++---- modules/autoinstall/tpl/list.html | 6 ++--- 7 files changed, 55 insertions(+), 22 deletions(-) create mode 100644 modules/autoinstall/lang/en.lang.php diff --git a/modules/autoinstall/autoinstall.model.php b/modules/autoinstall/autoinstall.model.php index cb874a53d..c2d0378f0 100644 --- a/modules/autoinstall/autoinstall.model.php +++ b/modules/autoinstall/autoinstall.model.php @@ -80,7 +80,7 @@ function setDepth(&$item, $depth, &$list, &$resultList) { - $resultList[] =& $item; + $resultList[$item->category_srl] =& $item; $item->depth = $depth; $siblingList = $item->category_srl; foreach($item->children as $child) diff --git a/modules/autoinstall/conf/info.xml b/modules/autoinstall/conf/info.xml index 5ba90756c..b2b1575df 100644 --- a/modules/autoinstall/conf/info.xml +++ b/modules/autoinstall/conf/info.xml @@ -1,27 +1,22 @@ - 자동설치 모듈 - Auto Installation Module + 쉬운 설치 + Easy-Installation 在线安装 관리자 모드에서 클릭으로 모듈/스킨/레이아웃/위젯/위젯스타일 등을 설치하는 모듈입니다. - Package management, automatic installation. + With this module, you can install and upgrade your programs including modules, skins, layouts, etc., from www.xpressengine.com by one-click. 很方便的在管理页面一键安装XE相关模块(模块/皮肤/布局/控件/控件样式等)。 0.1 - 2009-10-30 + 2009-11-11 system haneul - haneul - haneul haneul - haneul - haneul - haneul + haneul sol sol - sol - sol + sol diff --git a/modules/autoinstall/lang/en.lang.php b/modules/autoinstall/lang/en.lang.php new file mode 100644 index 000000000..6f8915182 --- /dev/null +++ b/modules/autoinstall/lang/en.lang.php @@ -0,0 +1,28 @@ +autoinstall = 'Easy-install'; + $lang->about_autoinstall = 'It helps you install/upgrade progams(skins) of XE.'; + $lang->package_update = 'Recent Update'; + $lang->package_downloaded_count = 'Download Count'; + $lang->need_update = "You need to update package list."; + + $lang->order_newest = "Newest"; + $lang->order_popular = "Popular"; + $lang->order_download = "Download"; + $lang->success_installed = "Installations succeeded."; + $lang->view_all_package = "View All"; + $lang->description_ftp_note = "If FTP configuration is not set, installation would not work. Please configure FTP information"; + $lang->description_update = "If you recently upgrade or install programs without easy installation module, pressing update will update the information of the programs."; + $lang->install = "Install"; + $lang->update = "Update"; + $lang->current_version = "Installed version"; + $lang->depending_programs = "This program depends on "; + $lang->require_update = "Update is required."; + $lang->require_installation = "Installation is required."; + $lang->description_install = "Installation process also install/update programs which this program depends on"; +?> diff --git a/modules/autoinstall/lang/ko.lang.php b/modules/autoinstall/lang/ko.lang.php index 35633c0c5..eaf01deed 100644 --- a/modules/autoinstall/lang/ko.lang.php +++ b/modules/autoinstall/lang/ko.lang.php @@ -5,8 +5,8 @@ * @brief Autoinstall(autoinstall) 모듈의 기본 언어팩 **/ - $lang->autoinstall = 'Autoinstall'; - $lang->about_autoinstall = 'Autoinstall은 XpressEngine의 자동설치 모듈입니다.'; + $lang->autoinstall = 'Easy-install'; + $lang->about_autoinstall = 'XpressEngine의 여러 프로그램을 쉽게 설치/업그레이드할 수 있도록 도와주는 모듈입니다.'; $lang->package_update = '최근 업데이트'; $lang->package_downloaded_count = '전체 다운로드'; $lang->need_update = "업데이트가 필요합니다."; @@ -18,4 +18,11 @@ $lang->view_all_package = "전체 보기"; $lang->description_ftp_note = "FTP 설정이 안되어있으면 설치가 진행되지 않습니다. FTP설정을 해주세요"; $lang->description_update = "새로 설치한 모듈의 버전 정보등은 업데이트를 눌러주시면 반영됩니다."; + $lang->install = "설치"; + $lang->update = "업데이트"; + $lang->current_version = "현재 설치 버전"; + $lang->depending_programs = "의존하고 있는 프로그램"; + $lang->require_update = "업데이트가 필요합니다."; + $lang->require_installation = "설치가 필요합니다."; + $lang->description_install = "설치를 진행하면, 이 프로그램이 의존하고 있는 모든 프로그램을 업데이트/설치 합니다."; ?> diff --git a/modules/autoinstall/lang/zh-CN.lang.php b/modules/autoinstall/lang/zh-CN.lang.php index b6e8a7d06..35293c843 100644 --- a/modules/autoinstall/lang/zh-CN.lang.php +++ b/modules/autoinstall/lang/zh-CN.lang.php @@ -18,4 +18,7 @@ $lang->view_all_package = "查看全部"; $lang->description_ftp_note = "请务必完成FTP设置,否则将无法在线安装(更新)相关模块。"; $lang->description_update = "新安装(更新)模块的版本信息,点击Update按钮后才能正常显示。"; + $lang->install = "Install"; + $lang->update = "Update"; + $lang->current_version = "Installed version"; ?> diff --git a/modules/autoinstall/tpl/install.html b/modules/autoinstall/tpl/install.html index 7b57bbcf0..41b25d12a 100644 --- a/modules/autoinstall/tpl/install.html +++ b/modules/autoinstall/tpl/install.html @@ -2,17 +2,17 @@
    -

    {$package->title} ver. {$package->version} ( 현재버전: {$package->cur_version} (업데이트가 필요합니다.) 인스톨이 필요합니다. )

    +

    {$package->title} ver. {$package->version} ( {$lang->current_version}: {$package->cur_version} ({$lang->require_update}) {$lang->require_installation} )

    -
    의존하고 있는 프로그램 :
    +
    {$lang->depending_programs} :
    sdfgsdfg {$dep->title} ver. {$dep->version} - - 현재버전: {$dep->cur_version} (업데이트가 필요합니다.) 인스톨이 필요합니다. + {$lang->current_version}: {$dep->cur_version} ({$lang->require_update}) {$lang->require_installation}
    -

    설치를 진행하면 의존성이 있는 모든 프로그램을 함께 설치합니다.

    -

    설치하기

    +

    {$lang->description_install}.

    +

    {$lang->install}

    diff --git a/modules/autoinstall/tpl/list.html b/modules/autoinstall/tpl/list.html index 24e4ea578..d0f42fd00 100644 --- a/modules/autoinstall/tpl/list.html +++ b/modules/autoinstall/tpl/list.html @@ -35,12 +35,12 @@ {htmlspecialchars($val->title)} ver. {htmlspecialchars($val->item_version)} - 현재 설치 버전 : {$val->current_version} + {$lang->current_version} : {$val->current_version} - 업데이트 + {$lang->update} - 인스톨 + {$lang->install}
    From 89be3e640a1a81a3b8161429e6166cf7af891d61 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 11 Nov 2009 07:36:53 +0000 Subject: [PATCH 66/72] modify translation git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6927 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/autoinstall/lang/en.lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/autoinstall/lang/en.lang.php b/modules/autoinstall/lang/en.lang.php index 6f8915182..daba5ab48 100644 --- a/modules/autoinstall/lang/en.lang.php +++ b/modules/autoinstall/lang/en.lang.php @@ -17,7 +17,7 @@ $lang->success_installed = "Installations succeeded."; $lang->view_all_package = "View All"; $lang->description_ftp_note = "If FTP configuration is not set, installation would not work. Please configure FTP information"; - $lang->description_update = "If you recently upgrade or install programs without easy installation module, pressing update will update the information of the programs."; + $lang->description_update = "If you recently upgrade or install programs without easy installation module, please press update button to keep information of the programs updated."; $lang->install = "Install"; $lang->update = "Update"; $lang->current_version = "Installed version"; From 9143a9eb5df238a032442b7b8ed6a657eae7eb65 Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 11 Nov 2009 07:38:22 +0000 Subject: [PATCH 67/72] fix admin config for setting ftp git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6928 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/admin.admin.view.php | 31 +++++++++++++----------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 372de91c1..fbe939f1f 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -275,28 +275,23 @@ $ftp_info = Context::getFTPInfo(); $oFtp = new ftp(); - if(!$oFtp->ftp_connect('localhost', $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); - if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { - $oFtp->ftp_quit(); - return new Object(-1,'msg_ftp_invalid_auth_info'); - } - - $_list = $oFtp->ftp_rawlist($pwd); - $oFtp->ftp_quit(); - + if($oFtp->ftp_connect('localhost', $ftp_info->ftp_port)){ + if($oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $_list = $oFtp->ftp_rawlist($pwd); + $oFtp->ftp_quit(); + } + } $list = array(); if(count($_list) == 0 || !$_list[0]) { $oFtp = new ftp(); - if(!$oFtp->ftp_connect($_SERVER['SERVER_NAME'], $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); - if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { - $oFtp->ftp_quit(); - return new Object(-1,'msg_ftp_invalid_auth_info'); - } - - $_list = $oFtp->ftp_rawlist($pwd); - $oFtp->ftp_quit(); + if($oFtp->ftp_connect($_SERVER['SERVER_NAME'], $ftp_info->ftp_port)){ + if($oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $_list = $oFtp->ftp_rawlist($pwd); + $oFtp->ftp_quit(); + } + } } - if($_list){ + if($_list){ foreach($_list as $k => $v){ if(strpos($v,'d') === 0) $list[] = substr(strrchr($v,' '),1) . '/'; } From d0ccadbe2edaf376d372116ad4d35de89832093a Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 11 Nov 2009 07:39:56 +0000 Subject: [PATCH 68/72] modify lang, add link to category, modify header git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6929 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/autoinstall/lang/ko.lang.php | 2 +- modules/autoinstall/tpl/header.html | 8 +------- modules/autoinstall/tpl/list.html | 2 +- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/modules/autoinstall/lang/ko.lang.php b/modules/autoinstall/lang/ko.lang.php index eaf01deed..e8e20bc49 100644 --- a/modules/autoinstall/lang/ko.lang.php +++ b/modules/autoinstall/lang/ko.lang.php @@ -5,7 +5,7 @@ * @brief Autoinstall(autoinstall) 모듈의 기본 언어팩 **/ - $lang->autoinstall = 'Easy-install'; + $lang->autoinstall = '쉬운 설치'; $lang->about_autoinstall = 'XpressEngine의 여러 프로그램을 쉽게 설치/업그레이드할 수 있도록 도와주는 모듈입니다.'; $lang->package_update = '최근 업데이트'; $lang->package_downloaded_count = '전체 다운로드'; diff --git a/modules/autoinstall/tpl/header.html b/modules/autoinstall/tpl/header.html index 602a5b267..2c675ea89 100644 --- a/modules/autoinstall/tpl/header.html +++ b/modules/autoinstall/tpl/header.html @@ -1,7 +1 @@ -

    autoinstall module {$lang->cmd_management}

    - -
    - -
    +

    {$lang->autoinstall}

    diff --git a/modules/autoinstall/tpl/list.html b/modules/autoinstall/tpl/list.html index d0f42fd00..f698697bd 100644 --- a/modules/autoinstall/tpl/list.html +++ b/modules/autoinstall/tpl/list.html @@ -30,7 +30,7 @@

    - [{$categories[$val->category_srl]->title}] + [{$categories[$val->category_srl]->title}] {htmlspecialchars($val->title)} ver. {htmlspecialchars($val->item_version)}

    From aa55cfdae59505bcc34911e1094661364e5cf78c Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 11 Nov 2009 07:46:35 +0000 Subject: [PATCH 69/72] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6930 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/install/install.admin.model.php | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 modules/install/install.admin.model.php diff --git a/modules/install/install.admin.model.php b/modules/install/install.admin.model.php new file mode 100644 index 000000000..beab31af9 --- /dev/null +++ b/modules/install/install.admin.model.php @@ -0,0 +1,37 @@ +ftp_connect('localhost', $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); + if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { + $oFtp->ftp_quit(); + return new Object(-1,'msg_ftp_invalid_auth_info'); + } + + $_list = $oFtp->ftp_rawlist($pwd); + $oFtp->ftp_quit(); + $list = array(); + if($_list){ + foreach($_list as $k => $v){ + if(strpos($v,'d') === 0) $list[] = substr(strrchr($v,' '),1) . '/'; + } + } + + $this->add('list',$list); + } + } +?> From f7cbed05d22eb4a7eb764ee13eab0df5df227960 Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 11 Nov 2009 07:47:20 +0000 Subject: [PATCH 70/72] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6931 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/tpl/filter/install_ftp_path.xml | 9 +++++ modules/install/install.admin.model.php | 37 ------------------- 2 files changed, 9 insertions(+), 37 deletions(-) create mode 100644 modules/admin/tpl/filter/install_ftp_path.xml delete mode 100644 modules/install/install.admin.model.php diff --git a/modules/admin/tpl/filter/install_ftp_path.xml b/modules/admin/tpl/filter/install_ftp_path.xml new file mode 100644 index 000000000..afaef82e1 --- /dev/null +++ b/modules/admin/tpl/filter/install_ftp_path.xml @@ -0,0 +1,9 @@ + +
    + + + + + + +
    diff --git a/modules/install/install.admin.model.php b/modules/install/install.admin.model.php deleted file mode 100644 index beab31af9..000000000 --- a/modules/install/install.admin.model.php +++ /dev/null @@ -1,37 +0,0 @@ -ftp_connect('localhost', $ftp_info->ftp_port)) return new Object(-1,'msg_ftp_not_connected'); - if(!$oFtp->ftp_login($ftp_info->ftp_user, $ftp_info->ftp_password)) { - $oFtp->ftp_quit(); - return new Object(-1,'msg_ftp_invalid_auth_info'); - } - - $_list = $oFtp->ftp_rawlist($pwd); - $oFtp->ftp_quit(); - $list = array(); - if($_list){ - foreach($_list as $k => $v){ - if(strpos($v,'d') === 0) $list[] = substr(strrchr($v,' '),1) . '/'; - } - } - - $this->add('list',$list); - } - } -?> From c17dc6c05838bda2742e5e105a1a670b5be5a2bd Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 11 Nov 2009 08:17:33 +0000 Subject: [PATCH 71/72] fix minor bugs git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6932 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/autoinstall/autoinstall.admin.view.php | 7 ++++++- modules/autoinstall/lang/en.lang.php | 2 ++ modules/autoinstall/lang/ko.lang.php | 2 ++ modules/autoinstall/lang/zh-CN.lang.php | 6 ++++++ modules/autoinstall/tpl/header.html | 2 +- modules/autoinstall/tpl/index.html | 2 +- modules/autoinstall/tpl/install.html | 10 ++++++++-- 7 files changed, 26 insertions(+), 5 deletions(-) diff --git a/modules/autoinstall/autoinstall.admin.view.php b/modules/autoinstall/autoinstall.admin.view.php index 62d08bd87..4f3f56e42 100644 --- a/modules/autoinstall/autoinstall.admin.view.php +++ b/modules/autoinstall/autoinstall.admin.view.php @@ -56,6 +56,8 @@ function dispAutoinstallAdminInstall() { $package_srl = Context::get('package_srl'); if(!$package_srl) return $this->dispAutoinstallAdminIndex(); + $ftp_info = Context::getFTPInfo(); + if(!$ftp_info->ftp_root_path) Context::set('show_ftp_note', true); $params["act"] = "getResourceapiInstallInfo"; $params["package_srl"] = $package_srl; @@ -70,6 +72,7 @@ $package->title = $xmlPackage->title->body; $package->package_description = $xmlPackage->package_description->body; $package->version = $xmlPackage->version->body; + $package->path = $xmlPackage->path->body; if($xmlPackage->depends) { if(!is_array($xmlPackage->depends->item)) $xmlPackage->depends->item = array($xmlPackage->depends->item); @@ -80,6 +83,7 @@ $dep_item->package_srl = $item->package_srl->body; $dep_item->title = $item->title->body; $dep_item->version = $item->version->body; + $dep_item->path = $item->path->body; $package->depends[] = $dep_item; $targetpackages[$dep_item->package_srl] = 1; } @@ -121,7 +125,8 @@ function dispAutoinstallAdminIndex() { $oModuleModel = &getModel('module'); $config = $oModuleModel->getModuleConfig('autoinstall'); - if(!$config || !$config->ftp_root_path) Context::set('show_ftp_note', true); + $ftp_info = Context::getFTPInfo(); + if(!$ftp_info->ftp_root_path) Context::set('show_ftp_note', true); $this->setTemplateFile('index'); diff --git a/modules/autoinstall/lang/en.lang.php b/modules/autoinstall/lang/en.lang.php index daba5ab48..c273a0d84 100644 --- a/modules/autoinstall/lang/en.lang.php +++ b/modules/autoinstall/lang/en.lang.php @@ -25,4 +25,6 @@ $lang->require_update = "Update is required."; $lang->require_installation = "Installation is required."; $lang->description_install = "Installation process also install/update programs which this program depends on"; + $lang->description_download = "When FTP is disabled, you should download it and extract it into target path. (if target path is ./modules/board, extract it at ./modules)"; + $lang->path = "Path"; ?> diff --git a/modules/autoinstall/lang/ko.lang.php b/modules/autoinstall/lang/ko.lang.php index e8e20bc49..0d71fd533 100644 --- a/modules/autoinstall/lang/ko.lang.php +++ b/modules/autoinstall/lang/ko.lang.php @@ -25,4 +25,6 @@ $lang->require_update = "업데이트가 필요합니다."; $lang->require_installation = "설치가 필요합니다."; $lang->description_install = "설치를 진행하면, 이 프로그램이 의존하고 있는 모든 프로그램을 업데이트/설치 합니다."; + $lang->description_download = "FTP를 이용할 수 없는 경우, 직접 다운로드 하여 해당 path에 설치하셔야 합니다. (한칸 상위에서 압축을 푸시면 됩니다. ./modules/board의 경우 ./modules에서 tar를 푸세요)"; + $lang->path = "설치경로"; ?> diff --git a/modules/autoinstall/lang/zh-CN.lang.php b/modules/autoinstall/lang/zh-CN.lang.php index 35293c843..87adc73a8 100644 --- a/modules/autoinstall/lang/zh-CN.lang.php +++ b/modules/autoinstall/lang/zh-CN.lang.php @@ -20,5 +20,11 @@ $lang->description_update = "新安装(更新)模块的版本信息,点击Update按钮后才能正常显示。"; $lang->install = "Install"; $lang->update = "Update"; + $lang->depending_programs = "This program depends on "; + $lang->require_update = "Update is required."; + $lang->require_installation = "Installation is required."; + $lang->description_install = "Installation process also install/update programs which this program depends on"; $lang->current_version = "Installed version"; + $lang->description_download = "When FTP is disabled, you should download it and extract it into target path. (if target path is ./modules/board, extract it at ./modules)"; + $lang->path = "Path"; ?> diff --git a/modules/autoinstall/tpl/header.html b/modules/autoinstall/tpl/header.html index 2c675ea89..6d226d988 100644 --- a/modules/autoinstall/tpl/header.html +++ b/modules/autoinstall/tpl/header.html @@ -1 +1 @@ -

    {$lang->autoinstall}

    +

    {$lang->autoinstall} Beta

    diff --git a/modules/autoinstall/tpl/index.html b/modules/autoinstall/tpl/index.html index fd3ddec92..f4106888d 100644 --- a/modules/autoinstall/tpl/index.html +++ b/modules/autoinstall/tpl/index.html @@ -3,7 +3,7 @@
    -

    {$lang->description_ftp_note} FTP Setup

    +

    {$lang->description_ftp_note} FTP Setup

    {$lang->need_update}

    diff --git a/modules/autoinstall/tpl/install.html b/modules/autoinstall/tpl/install.html index 41b25d12a..65798ef2d 100644 --- a/modules/autoinstall/tpl/install.html +++ b/modules/autoinstall/tpl/install.html @@ -6,13 +6,19 @@
    {$lang->depending_programs} :
    -
    sdfgsdfg - {$dep->title} ver. {$dep->version} - +
    {$dep->title} ver. {$dep->version} - {$lang->current_version}: {$dep->cur_version} ({$lang->require_update}) {$lang->require_installation} + {$lang->download} ({$lang->path} : {$dep->path})
    + +

    {$lang->description_download}. (FTP Setup)

    +

    {$lang->path} : {$package->path}

    +

    {$lang->download}

    +

    {$lang->description_install}.

    {$lang->install}

    +
    From 30b4d20aa777499b6471a458047ee3122a6167e0 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 11 Nov 2009 08:31:58 +0000 Subject: [PATCH 72/72] version up for release git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6933 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- config/config.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.inc.php b/config/config.inc.php index f551ab9e6..ee8e6d42b 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -13,7 +13,7 @@ * @brief XE의 전체 버전 표기 * 이 파일의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야 함 **/ - define('__ZBXE_VERSION__', '1.2.6'); + define('__ZBXE_VERSION__', '1.3.0'); /** * @brief zbXE가 설치된 장소의 base path를 구함