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 @@
-
+
@@ -47,7 +47,10 @@
-
+
+ + +