diff --git a/modules/admin/admin.admin.controller.php b/modules/admin/admin.admin.controller.php index f5d3446a6..5e3962897 100644 --- a/modules/admin/admin.admin.controller.php +++ b/modules/admin/admin.admin.controller.php @@ -17,6 +17,19 @@ if($logged_info->is_admin!='Y') return $this->stop("msg_is_not_administrator"); } + function procAdminMenuReset(){ + $menuSrl = Context::get('menu_srl'); + if (!$menuSrl) return $this->stop('msg_invalid_request'); + + $oMenuAdminController = &getAdminController('menu'); + $output = $oMenuAdminController->deleteMenu($menuSrl); + if (!$output->toBool()) return $output; + + FileHandler::removeDir('./files/cache/menu/admin_lang/'); + + $this->setRedirectUrl(Context::get('error_return_url')); + } + /** * @brief Regenerate all cache files * @return none diff --git a/modules/admin/admin.admin.model.php b/modules/admin/admin.admin.model.php index a0a0b7e87..492f29d71 100644 --- a/modules/admin/admin.admin.model.php +++ b/modules/admin/admin.admin.model.php @@ -302,7 +302,7 @@ function getAdminMenuLang() { $currentLang = Context::getLangType(); - $cacheFile = sprintf('./files/cache/menu/adminMenu.%s.lang.php', $currentLang); + $cacheFile = sprintf('./files/cache/menu/admin_lang/adminMenu.%s.lang.php', $currentLang); // Update if no cache file exists or it is older than xml file if(!is_readable($cacheFile)) diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 2335e8533..8822e7093 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -8,12 +8,27 @@ class adminAdminView extends admin { var $layout_list; + var $xeMenuTitle; /** * @brief Initilization * @return none **/ function init() { + // admin menu check + $this->xeMenuTitle = '__XE_ADMIN__'; + $oMenuAdminModel = &getAdminModel('menu'); + $output = $oMenuAdminModel->getMenuByTitle($this->xeMenuTitle); + + if(!$output->menu_srl) + { + parent::_createXeAdminMenu(); + } + else if(!is_readable($output->php_file)) + { + $oMenuAdminController = &getAdminController('menu'); + $oMenuAdminController->makeXmlFile($output->menu_srl); + } // forbit access if the user is not an administrator $oMemberModel = &getModel('member'); @@ -60,7 +75,6 @@ if(is_readable($menu_info->php_file)) include $menu_info->php_file; else { - header('location:'.getNotEncodedUrl('', 'module', 'admin')); return; } diff --git a/modules/admin/admin.class.php b/modules/admin/admin.class.php index 23868764a..1dfd09f23 100644 --- a/modules/admin/admin.class.php +++ b/modules/admin/admin.class.php @@ -2,14 +2,12 @@ /** * @class admin * @author NHN (developers@xpressengine.com) - * @brief base class of admin module + * @brief base class of admin module **/ class admin extends ModuleObject { - var $xeMenuTitle; - /** - * @brief install admin module + * @brief install admin module * @return new Object **/ function moduleInstall() { @@ -20,20 +18,11 @@ * @brief if update is necessary it returns true **/ function checkUpdate() { - $this->xeMenuTitle = '__XE_ADMIN__'; - $oMenuAdminModel = &getAdminModel('menu'); - $output = $oMenuAdminModel->getMenuByTitle($this->xeMenuTitle); - - if(!$output->menu_srl) - { - $this->_createXeAdminMenu(); - } - return false; } /** - * @brief update module + * @brief update module * @return new Object **/ function moduleUpdate() { diff --git a/modules/admin/conf/module.xml b/modules/admin/conf/module.xml index 334da433d..bdb9a6df3 100644 --- a/modules/admin/conf/module.xml +++ b/modules/admin/conf/module.xml @@ -9,14 +9,15 @@ - + - + + diff --git a/modules/admin/tpl/admin_setup.html b/modules/admin/tpl/admin_setup.html index cb03aff4a..361439da1 100644 --- a/modules/admin/tpl/admin_setup.html +++ b/modules/admin/tpl/admin_setup.html @@ -13,7 +13,7 @@

- + @@ -47,7 +47,10 @@ -

+

+ + +