From 34fca81212ff2b530a59b0f8dcb234de59424403 Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 8 Feb 2014 13:58:52 +0900 Subject: [PATCH 01/44] =?UTF-8?q?fix=20#445=20APC=EC=97=90=EC=84=9C=20dele?= =?UTF-8?q?te()=EA=B0=80=20null=EC=9D=84=20=EC=82=BD=EC=9E=85=ED=95=98?= =?UTF-8?q?=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 --- classes/cache/CacheApc.class.php | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/classes/cache/CacheApc.class.php b/classes/cache/CacheApc.class.php index a416b1270..73abeb0b3 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->_delete($_key); + $this->delete($_key); return false; } @@ -110,24 +110,13 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->_delete($_key); + $this->delete($_key); return false; } return $obj[1]; } - /** - * Delete variable from the cache(private) - * - * @param string $_key Used to store the value. - * @return void - */ - function _delete($_key) - { - $this->put($_key, null, 1); - } - /** * Delete variable from the cache * @@ -136,7 +125,7 @@ class CacheApc extends CacheBase */ function delete($key) { - $this->_delete($key); + return apc_delete($key); } /** @@ -149,7 +138,13 @@ class CacheApc extends CacheBase return apc_clear_cache('user'); } - + /** + * @DEPRECATED + */ + function _delete($key) + { + return $this->delete($key); + } } CacheApc::$isSupport = function_exists('apc_add'); From d2d59fc36771488e846fe0b6071b50a5ecad99fb Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 10 Mar 2014 09:43:02 +0900 Subject: [PATCH 02/44] =?UTF-8?q?fix=20#489=20APC=20cache=EA=B0=80=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=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 --- classes/cache/CacheApc.class.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/classes/cache/CacheApc.class.php b/classes/cache/CacheApc.class.php index 73abeb0b3..b8499d7a6 100644 --- a/classes/cache/CacheApc.class.php +++ b/classes/cache/CacheApc.class.php @@ -84,7 +84,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -110,7 +110,7 @@ class CacheApc extends CacheBase if($modified_time > 0 && $modified_time > $obj[0]) { - $this->delete($_key); + $this->delete($key); return false; } @@ -125,7 +125,8 @@ class CacheApc extends CacheBase */ function delete($key) { - return apc_delete($key); + $_key = md5(_XE_PATH_ . $key); + return apc_delete($_key); } /** From d01d85946ab53914bd6fec8604426915485b4270 Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 27 Feb 2014 10:13:09 +0900 Subject: [PATCH 03/44] =?UTF-8?q?fix=20#480=20class=5Fexists()=EC=9D=98=20?= =?UTF-8?q?autoload=20=EB=B9=84=ED=99=9C=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/captcha/captcha.addon.php | 2 +- addons/captcha_member/captcha_member.addon.php | 2 +- classes/module/ModuleHandler.class.php | 4 ++-- classes/validator/Validator.class.php | 4 ++-- modules/widget/widget.controller.php | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/captcha/captcha.addon.php b/addons/captcha/captcha.addon.php index 433adf527..a03a9d847 100644 --- a/addons/captcha/captcha.addon.php +++ b/addons/captcha/captcha.addon.php @@ -9,7 +9,7 @@ if(!defined("__XE__")) exit(); * @brief Captcha for a particular action * English alphabets and voice verification added * */ -if(!class_exists('AddonCaptcha')) +if(!class_exists('AddonCaptcha', false)) { // On the mobile mode, XE Core does not load jquery and xe.js as normal. Context::loadFile(array('./common/js/jquery.min.js', 'head', NULL, -100000), true); diff --git a/addons/captcha_member/captcha_member.addon.php b/addons/captcha_member/captcha_member.addon.php index ac1e57c5f..211fd8687 100644 --- a/addons/captcha_member/captcha_member.addon.php +++ b/addons/captcha_member/captcha_member.addon.php @@ -9,7 +9,7 @@ if(!defined("__XE__")) exit(); * @brief Captcha for a particular action * English alphabets and voice verification added * */ -if(!class_exists('AddonMemberCaptcha')) +if(!class_exists('AddonMemberCaptcha', false)) { // On the mobile mode, XE Core does not load jquery and xe.js as normal. Context::loadFile(array('./common/js/jquery.min.js', 'head', NULL, -100000), true); diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 802a75126..3b20145e3 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -1021,7 +1021,7 @@ class ModuleHandler extends Handler } // Get base class name and load the file contains it - if(!class_exists($module)) + if(!class_exists($module, false)) { $high_class_file = sprintf('%s%s%s.class.php', _XE_PATH_, $class_path, $module); if(!file_exists($high_class_file)) @@ -1039,7 +1039,7 @@ class ModuleHandler extends Handler // Create an instance with eval function require_once($class_file); - if(!class_exists($instance_name)) + if(!class_exists($instance_name, false)) { return NULL; } diff --git a/classes/validator/Validator.class.php b/classes/validator/Validator.class.php index 11762da50..8ad9d4f13 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -667,7 +667,7 @@ class Validator } // current language - $lang_type = class_exists('Context') ? Context::getLangType() : 'en'; + $lang_type = class_exists('Context', false) ? Context::getLangType() : 'en'; // check the file $filepath = $dir . '/' . md5($this->_version . ' ' . $this->_xml_path) . ".{$lang_type}.js"; @@ -706,7 +706,7 @@ class Validator list($ruleset) = explode('.', $ruleset); // current language - $lang_type = class_exists('Context') ? Context::getLangType() : 'en'; + $lang_type = class_exists('Context', false) ? Context::getLangType() : 'en'; // custom rulesets $addrules = array(); diff --git a/modules/widget/widget.controller.php b/modules/widget/widget.controller.php index 2fd0fdeeb..f807593cc 100644 --- a/modules/widget/widget.controller.php +++ b/modules/widget/widget.controller.php @@ -641,7 +641,7 @@ class widgetController extends widget require_once($class_file); // Creating Objects - if(!class_exists($widget)) + if(!class_exists($widget, false)) { return sprintf(Context::getLang('msg_widget_object_is_null'), $widget); } From 7aa70223f1061cdf1704e82168d7a22a278ecdc5 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 19 Feb 2014 13:55:01 +0900 Subject: [PATCH 04/44] #498 document table's cache delete --- modules/document/document.controller.php | 56 ++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 338f082d4..f02019eb2 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -840,6 +840,14 @@ class documentController extends document $args->document_srl = $document_srl; $output = executeQuery('document.updateReadedCount', $args); + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } + // Register session $_SESSION['readed_document'][$document_srl] = true; @@ -1105,6 +1113,14 @@ class documentController extends document $oDB->commit(); + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } + // Leave in the session information $_SESSION['voted_document'][$document_srl] = true; @@ -1246,6 +1262,14 @@ class documentController extends document { $args->update_order = -1*getNextSequence(); $args->last_updater = $last_updater; + + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } } return executeQuery('document.updateCommentCount', $args); @@ -1263,6 +1287,14 @@ class documentController extends document $args->document_srl = $document_srl; $args->trackback_count = $trackback_count; + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } + return executeQuery('document.updateTrackbackCount', $args); } @@ -1366,6 +1398,30 @@ class documentController extends document if(!$output->toBool()) return $output; $this->makeCategoryFile($category_info->module_srl); + // remvove cache + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + $page = 0; + while(true) { + $args = new stdClass(); + $args->category_srl = $category_srl; + $args->page = ++$page; + $output = executeQuery('document.getDocumentList', $args, array('document_srl')); + + if($output->data == array()) + break; + + foreach($output->data as $val) + { + $document_srl = $val->document_srl; + //remove document item from cache + $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $oCacheHandler->delete($cache_key); + } + } + } + // Update category_srl of the documents in the same category to 0 $args = new stdClass(); $args->target_category_srl = 0; From d25cba6673d733bfaccfce359661c0329f3b1666 Mon Sep 17 00:00:00 2001 From: akasima Date: Wed, 19 Feb 2014 14:13:00 +0900 Subject: [PATCH 05/44] #498 document table's cache delete.. mod some code --- modules/document/document.controller.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index f02019eb2..5d56ca2c2 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -1406,6 +1406,7 @@ class documentController extends document while(true) { $args = new stdClass(); $args->category_srl = $category_srl; + $args->list_count = 100; $args->page = ++$page; $output = executeQuery('document.getDocumentList', $args, array('document_srl')); @@ -1414,9 +1415,8 @@ class documentController extends document foreach($output->data as $val) { - $document_srl = $val->document_srl; //remove document item from cache - $cache_key = 'document_item:'. getNumberingPath($document_srl) . $document_srl; + $cache_key = 'document_item:'. getNumberingPath($val->document_srl) . $val->document_srl; $oCacheHandler->delete($cache_key); } } From 46396284c48ce414f3735f5619a90845fbd49f7e Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 28 Feb 2014 23:42:42 +0900 Subject: [PATCH 06/44] =?UTF-8?q?fix=20#540=20=ED=9C=B4=EC=A7=80=ED=86=B5?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99=ED=95=9C=20=EA=B8=80?= =?UTF-8?q?=EC=9D=98=20cache=EB=A5=BC=20=EC=82=AD=EC=A0=9C=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B0=94=EB=A1=9C=20=EC=9E=A1=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.controller.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 5d56ca2c2..3c8f0e9dd 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -801,6 +801,8 @@ class documentController extends document $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { + $cache_key = 'document_item:'. getNumberingPath($oDocument->document_srl) . $oDocument->document_srl; + $oCacheHandler->delete($cache_key); } return $output; From 0890387908ea48b6cfbaa0379e5918a889b3d79e Mon Sep 17 00:00:00 2001 From: akasima Date: Tue, 18 Feb 2014 18:18:23 +0900 Subject: [PATCH 07/44] =?UTF-8?q?#494=20=EB=B9=84=EB=B0=80=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EC=B0=BE=EA=B8=B0=20=EC=A7=88=EB=AC=B8=ED=95=AD?= =?UTF-8?q?=EB=AA=A9=20=EB=AC=B8=EC=A0=9C=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/member/skins/default/find_member_account.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/skins/default/find_member_account.html b/modules/member/skins/default/find_member_account.html index 70c166b9b..b80312c3b 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -41,7 +41,7 @@
From c558dbc713deb4c5eaaced6fc3efe8025ac1005a Mon Sep 17 00:00:00 2001 From: bnu Date: Sun, 9 Feb 2014 15:25:17 +0900 Subject: [PATCH 08/44] =?UTF-8?q?warning=20=EB=A9=94=EC=8B=9C=EC=A7=80?= =?UTF-8?q?=EB=A5=BC=20=ED=91=9C=EC=8B=9C=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/config.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.inc.php b/config/config.inc.php index 6304f6245..72080042e 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -9,11 +9,11 @@ */ if(version_compare(PHP_VERSION, '5.4.0', '<')) { - @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED); + @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING); } else { - @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_STRICT); + @error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING ^ E_STRICT); } if(!defined('__XE__')) From 809a52679759082082a74a207fe351a2ff6330bb Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 8 Feb 2014 12:31:03 +0900 Subject: [PATCH 09/44] =?UTF-8?q?fix=20#416=20PHP=205.3.6=20=EC=9D=B4?= =?UTF-8?q?=EC=83=81=EC=97=90=EC=84=9C=EB=A7=8C=20=EC=82=AC=EC=9A=A9=20?= =?UTF-8?q?=EA=B0=80=EB=8A=A5=ED=95=9C=20=EC=83=81=EC=88=98=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/db/DB.class.php | 2 +- config/func.inc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/db/DB.class.php b/classes/db/DB.class.php index f23320576..25a7cdb10 100644 --- a/classes/db/DB.class.php +++ b/classes/db/DB.class.php @@ -447,7 +447,7 @@ class DB $log['act'] = Context::get('act'); $log['time'] = date('Y-m-d H:i:s'); - $bt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + $bt = debug_backtrace(); foreach($bt as $no => $call) { if($call['function'] == 'executeQuery' || $call['function'] == 'executeQueryArray') diff --git a/config/func.inc.php b/config/func.inc.php index a3fe25156..a2c4c4d07 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -758,7 +758,7 @@ function debugPrint($debug_output = NULL, $display_option = TRUE, $file = '_debu } static $firephp; - $bt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + $bt = debug_backtrace(); if(is_array($bt)) { $bt_debug_print = array_shift($bt); From 996e03bc284020ca8747c1c54429c46336480af0 Mon Sep 17 00:00:00 2001 From: "Jin Hu, Baek" Date: Tue, 8 Apr 2014 03:18:38 +0900 Subject: [PATCH 10/44] remove spaces in checkbox, radio, select types inputbox remove spaces in checkbox, radio, select types inputbox. and code optimizing --- classes/extravar/Extravar.class.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/classes/extravar/Extravar.class.php b/classes/extravar/Extravar.class.php index e56cc1517..df235ca97 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -249,7 +249,7 @@ class ExtraItem for($i = 0, $c = count($values); $i < $c; $i++) { - $values[$i] = htmlspecialchars($values[$i], ENT_COMPAT | ENT_HTML401, 'UTF-8', false); + $values[$i] = trim(htmlspecialchars($values[$i], ENT_COMPAT | ENT_HTML401, 'UTF-8', false)); } return $values; @@ -306,21 +306,15 @@ class ExtraItem case 'textarea' : return nl2br($value); - case 'checkbox' : - if(is_array($value)) - { - return implode(', ', $value); - } - return $value; - case 'date' : return zdate($value, "Y-m-d"); + case 'checkbox' : case 'select' : case 'radio' : if(is_array($value)) { - return implode(', ', $value); + return implode(',', $value); } return $value; From 239b07232dce0b6d43c5bb39a74d36d3695c7b15 Mon Sep 17 00:00:00 2001 From: "Jin Hu, Baek" Date: Tue, 8 Apr 2014 03:34:56 +0900 Subject: [PATCH 11/44] =?UTF-8?q?date=EB=B0=A9=EC=8B=9D=EC=9D=98=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=ED=8F=BC=20=EC=95=88=EC=9D=98=20button?= =?UTF-8?q?=EC=9D=98=20class=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit XE 공용 버튼 스타일링 추가 --- classes/extravar/Extravar.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/extravar/Extravar.class.php b/classes/extravar/Extravar.class.php index df235ca97..bfa3da383 100644 --- a/classes/extravar/Extravar.class.php +++ b/classes/extravar/Extravar.class.php @@ -424,7 +424,8 @@ class ExtraItem Context::loadJavascriptPlugin('ui.datepicker'); $buff[] = ''; - $buff[] = ' '; + $buff[] = '' + $buff[] = ''; $buff[] = ' From 0f72f508e596ef39f8b9b40b7024cb052b63ffce Mon Sep 17 00:00:00 2001 From: Lansi Date: Tue, 6 May 2014 18:01:59 +0900 Subject: [PATCH 28/44] =?UTF-8?q?=EB=AA=A8=EB=93=88=EB=B6=84=EB=A5=98?= =?UTF-8?q?=EB=A5=BC=20'=EC=97=86=EC=9D=8C'=20=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=ED=95=B4=EC=84=9C=20=EA=B2=80=EC=83=89=ED=95=98=EB=A9=B4=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=EC=9D=B4=20=EB=B6=88=EA=B0=80=EB=8A=A5?= =?UTF-8?q?=ED=95=9C=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 --- modules/board/queries/getBoardList.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/board/queries/getBoardList.xml b/modules/board/queries/getBoardList.xml index 06c84bf31..2a5cf6951 100644 --- a/modules/board/queries/getBoardList.xml +++ b/modules/board/queries/getBoardList.xml @@ -11,8 +11,8 @@ - + From 6d574552bac7bf90563812dccffb8645c2deb99e Mon Sep 17 00:00:00 2001 From: Lansi Date: Wed, 7 May 2014 16:56:42 +0900 Subject: [PATCH 29/44] =?UTF-8?q?selected=20=EB=90=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/board/tpl/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/board/tpl/index.html b/modules/board/tpl/index.html index bd403546d..7fb15954a 100644 --- a/modules/board/tpl/index.html +++ b/modules/board/tpl/index.html @@ -91,7 +91,7 @@ ');c.after(e).after(" ").after(f).hide(),e.xeModuleSearch(),e.bind("moduleSelect",function(a,b){f.val(b[0].browser_title+" ("+b[0].mid+")"),c.val(b[0].module_srl)}),c.val()&&a.exec_json("module.getModuleAdminModuleInfo",{search_module_srl:c.val()},function(a){a&&a.module_info&&f.val(a.module_info.browser_title+" ("+a.module_info.mid+")")})}),this}}),jQuery(function(a){var b=a.fn.hide;a.fn.hide=function(c,d,e,f){a(this).trigger("hide",[f]),a(this).find(".active").removeClass("active");var g=a(this).attr("id");return a(this).hasClass("col")&&(a(this).next().hide(c,d,e,f),g&&a(this).parent().find('a[href="#'+g+'"]').parent("li.active").removeClass("active")),b.apply(this,arguments)};var c=a.fn.show;a.fn.show=function(b,d,e,f){if(a(this).trigger("show",[f]),a(this).hasClass("col")){a(this).next().hide(b,d,e,f);var g=a(this).parent();setTimeout(function(){g.scrollTo(g.width(),0,{duration:0})},0)}var h=c.apply(this,arguments),i=a(this);return setTimeout(function(){i.trigger("after-show",[f])},0),h}}),jQuery(function(a){a.xeMsgBox={htOptions:{}};var b=a.xeMsgBox.$msgBox=a("
").addClass("x_modal _common x").hide().css("z-index",9999);b.html('

"),a("body").append(b),b.find("._ok").click(function(){a.xeMsgBox.fnOnOK()}),b.find("._cancel").click(function(){a.xeMsgBox.fnOnCancel()}),b.bind("show",function(){a.xeMsgBox.bVisible=!0,a.xeMsgBox._showFoggy(),a.xeMsgBox.fnOnShow(),b.find("input,button").length>0&&setTimeout(function(){b.find("input,button").each(function(b,c){var d=a(c);return d.is(":visible")?(d.focus(),!1):void 0})},0)}),b.bind("hide",function(){a.xeMsgBox.bVisible=!1,a.xeMsgBox._hideFoggy(),a.xeMsgBox.fnOnHide()}),a(document.body).on("keydown",function(c){a.xeMsgBox.bVisible&&27===c.keyCode&&(b.find("._cancel").click(),c.preventDefault())}),a.xeMsgBox.fnOnOK=function(){"function"==typeof a.xeMsgBox.htOptions.fnOnOK&&a.xeMsgBox.htOptions.fnOnOK()||b.hide()},a.xeMsgBox.fnOnCancel=function(){"function"==typeof a.xeMsgBox.htOptions.fnOnCancel&&a.xeMsgBox.htOptions.fnOnCancel(),b.hide()},a.xeMsgBox.fnOnShow=function(){"function"==typeof a.xeMsgBox.htOptions.fnOnShow&&a.xeMsgBox.htOptions.fnOnShow()},a.xeMsgBox.fnOnHide=function(){"function"==typeof a.xeMsgBox.htOptions.fnOnHide&&a.xeMsgBox.htOptions.fnOnHide()},a.xeMsgBox.showMsgBox=function(c){a('head>link[rel="stylesheet"]:last').after(''),c=a.xeMsgBox.htOptions=c||{};var d=c.sTitle||"",e=c.sText||"",f=c.bDanger||!1;b.find("._title").html(d),b.find("._text").html(e),""===e?b.addClass("_nobody"):b.removeClass("_nobody");var g=b.find("._ok");f?(g.removeClass("x_btn-inverse"),g.addClass("x_btn-danger")):(g.removeClass("x_btn-danger"),g.addClass("x_btn-inverse")),c.bSmall?b.addClass("_small"):b.removeClass("_small"),c.bAlert?b.addClass("_type_alert"):b.removeClass("_type_alert"),b.show()},a.xeMsgBox.alertDialog=function(a){a=a||{},a.bAlert=!0,this.showMsgBox(a)},a.xeMsgBox.alert=function(a){htOptions={bAlert:!0,bNobody:!0,bSmall:!0,sText:a},this.showMsgBox(htOptions)},a.xeMsgBox.confirmDialog=function(a){a=a||{},a.bAlert=!1,this.showMsgBox(a)};var c=a.xeMsgBox.$foggyLayer=a("
");c.css({position:"fixed",top:0,left:0,backgroundColor:"#000",opacity:.5,display:"none",zIndex:9998}),a(a.find("body")).append(c),a.xeMsgBox._resizeFoggy=function(){c.css({width:0,height:0}),setTimeout(function(){c.css({width:a(document).width(),height:a(document).height()})},0)},a(window).resize(a.xeMsgBox._resizeFoggy),a.xeMsgBox._resizeFoggy(),a.xeMsgBox._showFoggy=function(){c.show()},a.xeMsgBox._hideFoggy=function(){c.hide()}}),jQuery(function(a){a.xeFoggy={};var b=a.xeFoggy.$foggyLayer=a("
");b.css({position:"fixed",top:0,left:0,backgroundColor:"#000",opacity:.5,display:"none",zIndex:9998}),a("body").append(b),a.xeFoggy._resizeFoggy=function(){b.css({width:0,height:0}),setTimeout(function(){b.css({width:a(document).width(),height:a(document).height()})},0)},a(window).resize(a.xeFoggy._resizeFoggy),a.xeFoggy._resizeFoggy(),a.xeFoggy.show=function(a){b.css(a?{opacity:0}:{opacity:.5}),b.show()},a.xeFoggy.hide=function(){b.hide()}}),jQuery(function(a){var b=!1,c=a(' ');a.fn.xeSortableTable=function(){return this.not(".xe-sortable-table").addClass("xe-sortable-table").delegate("button.dragBtn","mousedown.st",function(d){var e,f,g,h,i,j,k,l,m,n,o,p;if(1==d.which){if(e=a(this),f=e.closest("tr"),g=e.closest("table"),p=g.get(0).offsetParent,i=f.height(),j=f.width(),before_event=a.Event("before-drag.st"),g.trigger(before_event),before_event.isDefaultPrevented())return!1;l={x:d.pageX,y:d.pageY},k=getOffset(f.get(0),p),$clone=f.attr("target",!0).clone(!0).appendTo(g),o=(h=g.find("thead th")).length,h.filter("[colspan]").attr("colspan",function(a,b){o+=b-1}),c.find("td").attr("colspan",o),m=[],g.find("tbody>tr:not([target],.sticky,:hidden)").each(function(){var b,c=a(this);b=getOffset(this,p),m.push({top:b.top,bottom:b.top+c.height(),$item:c})}),$clone.addClass("draggable").css({position:"absolute",opacity:.6,width:j,height:i,left:k.left,top:k.top,zIndex:100}),c.css({position:"absolute",opacity:.6,width:j,height:"10px",left:k.left,top:k.top,backgroundColor:"#bbb",overflow:"hidden",zIndex:99}).appendTo(g),f.css("opacity",.6),a(document).unbind("mousedown.st mouseup.st").bind("mousemove.st",function(a){var b,d,e,f,g;for(n=null,b={x:l.x-a.pageX,y:l.y-a.pageY},d=k.top-b.y,e=0,f=m.length;f>e;e++)g=m[e],e&&g.top>d||f-1>e&&g.bottomd-12?(n.state="before",c.css("top",g.top-5)):(n.state="after",c.css("top",g.bottom-5)));$clone.css({top:d})}).bind("mouseup.st",function(){var d;b=!1,a(document).unbind("mousemove.st mouseup.st"),f.removeAttr("target").css("opacity",""),$clone.remove(),c.remove(),n&&(d=a(n.element),d[n.state](f),g.trigger("after-drag.st"))})}}),this},a("table.sortable").xeSortableTable()}),jQuery(function(a){a(".filebox").bind("before-open.mw",function(){function b(e){d.html(e.html),d.find(".select").bind("click",function(){var b=a("input.select_checkbox:checked");if(0===b.length){var d=a(this).closest("tr").find("img.filebox_item").attr("src");d?(c.trigger("filebox.selected",[d]),c.trigger("close.mw")):alert("None selected!")}else c.trigger("filebox.selected",[b]),c.trigger("close.mw");return!1}),d.find(".x_pagination").find("a").filter(function(){return a(this).data("toggle")?!1:a(this).parent().hasClass("x_disabled")?!1:a(this).parent().hasClass("x_active")?!1:!0}).bind("click",function(){var c=a(this).attr("page");return a.exec_json("module.getFileBoxListHtml",{page:c},b),!1}),a("#goToFileBox").find("button").bind("click",function(){var c=a(this).prev("input").val();return a.exec_json("module.getFileBoxListHtml",{page:c},b),!1}),d.closest(".x_modal-body").scrollTop(0)}var c,d,e;c=a(this),e=c.attr("href"),d=a(e).find(".filebox_list"),a.exec_json("module.getFileBoxListHtml",{page:"1"},b)});var b=a(".x .dsTg .__simple"),c=a(".x .dsTg .__detail"),d=a(".x .dsTg td.title");d.each(function(){var b=a(this);0===b.find("p.x_alert").length&&b.addClass("tg").find(">*:not(:first-child)").hide()});var e=a(".x .dsTg td.tg>*:not(:first-child)");b.click(function(){e.hide(),c.removeClass("x_active"),b.addClass("x_active")}),c.click(function(){e.show(),c.addClass("x_active"),b.removeClass("x_active")})}),jQuery(function(a){a.fn.xeMultilingualWindow=function(b){function c(){return o.is(":visible")&&q&&confirm(xe.msg_confirm_save_and_use_multilingual)&&o.find(".save-useit").trigger("click"),!0}function d(){if(p.is(":visible")&&p.find(".editMode").length){var a=p.find(".editMode");confirm(xe.msg_confirm_save_and_use_multilingual)?a.find(".save").trigger("click"):a.find(".cancel").trigger("click")}return!0}function e(){return p.find(".item > fieldset").hide().prev("a").children("i").removeClass("x_icon-chevrom-up").addClass("x_icon-chevron-down"),n.find('[href="#lang_create"]').trigger("click"),o.find(".editMode").children("textarea").val(""),q=!1,!0}function f(a){a?(i(1,xe.current_lang,"",a,!1),n.find('[href="#lang_search"]').trigger("click",!0)):i(1,xe.current_lang,"","",!1)}function g(){return c()?d()?e()?void 0:!1:!1:!1}function h(a,b){var c=n.data("lang-target");q=!1,c&&c.trigger("selected.g11n",[a,b])}function i(c,d,e,f,g){"undefined"==typeof c&&(c=1),"undefined"==typeof d&&(d=xe.current_lang),"undefined"==typeof e&&(e=""),"undefined"==typeof f&&(f=""),"undefined"==typeof g&&(g=!0),a.exec_json("module.getModuleAdminLangListHtml",{page:c,lang_code:d,search_keyword:e,name:f,list_count:b.list_count,mid:current_url.getQuery("mid")},function(b){b&&b.html&&(p.html(b.html),j(),k(),l(),m(),g&&(document.location.href="#lang_search"),f&&a("#lang_search").find('[href^="#lang-"]').trigger("click"))})}function j(){p.find(".x_pagination a").click(function(){var b=a(this).data("page"),c=a(this).data("search_keyword"),d=a(this).data("current_lang");return b?(i(b,d,c),!1):void 0}),p.find(".x_pagination").submit(function(){var b=a(this).find('[name="page"]').val(),c=a(this).data("search_keyword"),d=a(this).data("current_lang");return b?(i(b,d,c),!1):!1})}function k(){p.find(".search").submit(function(){var b=a(this).find('[name="search_keyword"]').val(),c=a(this).find('[name="lang_code"]').val();return i(1,c,b),!1}),p.find("#search_cancel").click(function(){i(1,xe.current_lang,"")})}function l(){p.find(".set").append('').click(function(){function b(b){var d=c.next("fieldset").find("textarea");d.each(function(){var c=a(this),d=b.langs[c.data("lang")],e=/^\$user_lang->/;e.test(d)?c.val("").data("value",""):c.val(d).data("value",d)}),c.data("is_loaded",!0)}var c=a(this),e=c.data("lang_code");d();var f="x_icon-chevron-up",g="x_icon-chevron-down";c.next("fieldset").is(":visible")?c.children("i").removeClass(f).addClass(g):(c.parent(".item").siblings(".item").find("a > i").removeClass(f).addClass(g).end().children("fieldset").hide(),c.children("i").removeClass(g).addClass(f)),"undefined"==typeof c.data("is_loaded")&&a.exec_json("module.getModuleAdminLangCode",{name:e,mid:current_url.getQuery("mid")},b)})}function m(){b.view_use||p.find(".useit").hide(),b.view_modify||p.find(".modify").hide(),b.view_delete||p.find(".delete").hide(),"save"==b.modify_type&&p.find(".save").text(xe.cmd_save),p.find(".modify").click(function(){a(this).closest("fieldset").addClass("editMode").find("textarea").removeAttr("disabled"),a(this).siblings(".cancel").prependTo(a(this).parent()),a(this).siblings(".delete").attr("disabled","disabled")}),p.find(".cancel").click(function(){return a(this).closest("fieldset").removeClass("editMode").find("textarea").attr("disabled","disabled").each(function(){var b=a(this);b.val(b.data("value"))}),a(this).siblings(".modify").prependTo(a(this).parent()),a(this).siblings(".delete").removeAttr("disabled"),!1}),p.find(".delete").click(function(){if(confirm(xe.confirm_delete)){var b=a(this);lang_name=b.closest(".item").find('[href^="#lang-"]').data("lang_code"),a.exec_json("module.procModuleAdminDeleteLang",{name:lang_name,mid:current_url.getQuery("mid")},function(a){if(a){if(a.error)return void alert(a.message);var b=p.find(".x_pagination"),c=b.data("page"),d=b.data("search_keyword"),e=b.data("lang_code");c||($page=1),i(c,e,d)}})}}),p.find(".item").submit(function(){var b=a(this),c=b.find(".editMode").children("textarea"),d=b.find('[href^="#lang-"]'),e={},f=null;return c.each(function(){var b=a(this);e[b.attr("class")]=b.val(),b.data("tmp_value",b.val()),xe.current_lang==b.attr("class")&&(f=b.val())}),e.lang_name=d.data("lang_code"),e.mid=current_url.getQuery("mid"),a.exec_json("module.procModuleAdminInsertLang",e,function(e){e&&!e.error&&e.name&&(c.each(function(){var b=a(this);b.data("value",b.data("tmp_value"))}),d.children("span").html(f),p.find(".cancel").trigger("click"),b.find(".useit").trigger("click"))}),!1}),p.find(".useit").click(function(){var b=a(this),c=b.closest(".item").find('[href^="#lang-"]'),d=c.data("lang_code"),e=c.children("span").text();h(d,e)})}var n=a(this),o=n.find("#lang_create"),p=n.find("#lang_search"),q=!1;return b=a.extend({create_type:"save_and_use",modify_type:"save_and_use",view_use:!0,view_modify:!0,view_delete:!1,list_count:5},b||{}),"save_and_use"!=b.create_type&&o.find(".save-useit").text(xe.cmd_save),n.find(".x_tabbable").xeTabbable(),o.find(".editMode textarea").change(function(){q=!0}),o.submit(function(){function c(a){a&&!a.error&&a.name&&("save_and_use"==b.create_type?h(a.name,g):(alert(a.message),e()))}var d=a(this),f={},g=null;return d.find(".editMode").children("textarea").each(function(){var b=a(this);f[b.attr("class")]=b.val(),xe.current_lang==b.attr("class")&&(g=b.val())}),g?(f.mid=current_url.getQuery("mid"),a.exec_json("module.procModuleAdminInsertLang",f,c),!1):(alert(xe.msg_empty_multilingual),!1)}),n.find('[href="#lang_search"]').click(function(a,b){"undefined"==typeof b&&i()}),n.bind("reset.g11n",function(){e()}),n.bind("before-open.g11n",function(a,b){f(b)}),n.bind("before-close.g11n",function(){return g()}),this}});var is_loaded_multilingual_window_html=!1;jQuery(function(a){a.fn.xeLoadMultilingualWindowHtml=function(){function b(b){var c=a("#content");a(b.html).appendTo(c).xeMultilingualWindow(),a(".lang_code").trigger("loaded-multilingualWindow")}return a.exec_json("module.getModuleAdminMultilingualHtml",{mid:current_url.getQuery("mid")},b),this}});var multilingual_id_count=0;jQuery(function(a){a.fn.xeApplyMultilingualUI=function(){return a(this).each(function(){function b(){function b(){g.val(l.val()).width(g.data("width")).removeAttr("disabled").data("active",!1),g.parent(".g11n").removeClass("active")}function f(){function c(a){if(a&&a.langs){var b=g.width();g.closest(".g11n").addClass("active"),g.val(a.langs[xe.current_lang]).attr("disabled","disabled").width(b-44).data("active",!0)}}b();var d=/^\$user_lang->/;d.test(g.val())&&a.exec_json("module.getModuleAdminLangCode",{name:g.val().replace("$user_lang->",""),mid:current_url.getQuery("mid")},c)}var g,h=a("#g11n"),i=c.width();g="TEXTAREA"==d.tagName||"textarea"==c.data("type")?a('