From 84175098749eca1e9de8ae378878e5bde42a7acd Mon Sep 17 00:00:00 2001 From: ovclas Date: Fri, 9 Nov 2012 02:48:02 +0000 Subject: [PATCH] issue 2667 create home menu cache file and save git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12152 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/install/install.admin.controller.php | 25 ++- modules/layout/lang/lang.xml | 4 + modules/layout/layout.admin.model.php | 23 ++- modules/layout/layout.admin.view.php | 37 +---- modules/layout/tpl/layout_info_view.html | 3 +- modules/layout/tpl/layout_modify.html | 157 +------------------ modules/menu/menu.admin.controller.php | 49 ++++++ modules/menu/menu.admin.model.php | 11 +- 8 files changed, 113 insertions(+), 196 deletions(-) diff --git a/modules/install/install.admin.controller.php b/modules/install/install.admin.controller.php index 49eeb1403..2b6a3d79a 100644 --- a/modules/install/install.admin.controller.php +++ b/modules/install/install.admin.controller.php @@ -118,11 +118,34 @@ function procInstallAdminUpdateIndexModule() { - if(!Context::get('index_module_srl')) return new Object(-1, 'msg_invalid_request'); + if(!Context::get('index_module_srl') || !Context::get('menu_item_srl')) + { + return new Object(-1, 'msg_invalid_request'); + } + $site_args->site_srl = 0; $site_args->index_module_srl = Context::get('index_module_srl'); $oModuleController = &getController('module'); $oModuleController->updateSite($site_args); + + // get menu item info + $menuItemSrl = Context::get('menu_item_srl'); + $oMenuAdminModel = &getAdminModel('menu'); + $output = $oMenuAdminModel->getMenuItemInfo($menuItemSrl); + + // update homeSitemap.php cache file + $oMenuAdminController = &getAdminController('menu'); + $homeMenuCacheFile = $oMenuAdminController->getHomeMenuCacheFile(); + if(file_exists($homeMenuCacheFile)) + { + @include($homeMenuCacheFile); + } + + if(!$homeMenuSrl || $homeMenuSrl != $output->menu_srl) + { + $oMenuAdminController->makeHomemenuCacheFile($output->menu_srl); + } + $this->setMessage('success_updated'); } diff --git a/modules/layout/lang/lang.xml b/modules/layout/lang/lang.xml index 906c77820..fcd1879c3 100644 --- a/modules/layout/lang/lang.xml +++ b/modules/layout/lang/lang.xml @@ -122,6 +122,10 @@ + + + + diff --git a/modules/layout/layout.admin.model.php b/modules/layout/layout.admin.model.php index d0c0f31d3..ca1c01ede 100644 --- a/modules/layout/layout.admin.model.php +++ b/modules/layout/layout.admin.model.php @@ -19,6 +19,23 @@ class layoutAdminModel extends layout { * @return void */ public function getLayoutAdminSetInfoView() + { + $this->setLayoutAdminSetInfoView(); + + Context::set('is_sitemap', '1'); + $script = ''; + $oTemplate = &TemplateHandler::getInstance(); + $html = $oTemplate->compile($this->module_path.'tpl/', 'layout_info_view'); + + $this->add('html', $script.$html); + + if($isReturn) + { + return $this->get('html'); + } + } + + public function setLayoutAdminSetInfoView() { $layout_srl = Context::get('layout_srl'); @@ -57,12 +74,6 @@ class layoutAdminModel extends layout { } } Context::set('selected_layout', $layout_info); - - $script = ''; - $oTemplate = &TemplateHandler::getInstance(); - $html = $oTemplate->compile($this->module_path.'tpl/', 'layout_info_view'); - - $this->add('html', $script.$html); } public function getLayoutAdminSetHTMLCSS() diff --git a/modules/layout/layout.admin.view.php b/modules/layout/layout.admin.view.php index 44594e4c8..8575eee9e 100644 --- a/modules/layout/layout.admin.view.php +++ b/modules/layout/layout.admin.view.php @@ -204,38 +204,15 @@ * @return void **/ function dispLayoutAdminModify() { - // Set the layout after getting layout information - $layout_srl = Context::get('layout_srl'); + $oLayoutAdminModel = &getAdminModel('layout'); + $oLayoutAdminModel->setLayoutAdminSetInfoView(); - // Get layout information - $oLayoutModel = &getModel('layout'); - $layout_info = $oLayoutModel->getLayout($layout_srl); + Context::set('is_sitemap', '0'); + $script = ''; + $oTemplate = &TemplateHandler::getInstance(); + $content = $oTemplate->compile($this->module_path.'tpl/', 'layout_info_view'); - // Error appears if there is no layout information is registered - if(!$layout_info) return $this->stop('msg_invalid_request'); - - // If faceoff, no need to display the path - if($layout_info->type == 'faceoff') unset($layout_info->path); - - // Get a menu list - $oMenuAdminModel = &getAdminModel('menu'); - $menu_list = $oMenuAdminModel->getMenus(); - Context::set('menu_list', $menu_list); - - $security = new Security(); - $security->encodeHTML('menu_list..'); - - $security = new Security($layout_info); - $layout_info = $security->encodeHTML('.', 'author..', 'extra_var..'); - - $layout_info->description = nl2br(trim($layout_info->description)); - if (!is_object($layout_info->extra_var)) $layout_info->extra_var = new StdClass(); - foreach($layout_info->extra_var as $var_name => $val) - { - if (isset($layout_info->{$var_name}->description)) - $layout_info->{$var_name}->description = nl2br(trim($val->description)); - } - Context::set('selected_layout', $layout_info); + Context::set('content', $content); $this->setTemplateFile('layout_modify'); } diff --git a/modules/layout/tpl/layout_info_view.html b/modules/layout/tpl/layout_info_view.html index 5fabb7dc9..50729da74 100644 --- a/modules/layout/tpl/layout_info_view.html +++ b/modules/layout/tpl/layout_info_view.html @@ -1,7 +1,7 @@
- + @@ -126,6 +126,7 @@
diff --git a/modules/layout/tpl/layout_modify.html b/modules/layout/tpl/layout_modify.html index 34f0c5797..279f8196a 100644 --- a/modules/layout/tpl/layout_modify.html +++ b/modules/layout/tpl/layout_modify.html @@ -1,158 +1,3 @@ -
-

- {$selected_layout->layout_title} - - -

- - - - - - - - -
- -
-
- -
- {$selected_layout->title} ver {$selected_layout->version} ({$selected_layout->layout}) -
-
-
- -
- {$selected_layout->path} -
-
-
- -
- {$selected_layout->description} -
-
-
- - -
-
- -
- - {$lang->about_title} -
-
-
- -
- - {$lang->about_header_script} -
-
- - - -

{$var->group}

- {@$group = $var->group} -
- {@$not_first = true} -
- -
-
- ") !== false)-->{htmlspecialchars($var->value)}{$var->value}" /> -
- -
- {@$use_multilang_textarea = true} - -
- - - -
- -
- -
-
-
- - - - -

- - -

-
-
- - - - - - - - - - -
- -
- {$val->val} -
- -
-
-
-
-
- {$var->description} -
-
-
- -
- -
- - {$lang->cmd_management} -
-
-
- -
- -
-
-
- -
- -
-
- - -
-
- +{$content} diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php index c03b652c6..de59d316b 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -33,6 +33,16 @@ * @var array */ var $insertedMenuItemSrlList = array(); + /** + * home module's mid + * @var string + */ + private $homeModuleMid = NULL; + /** + * home menu cache file + * @var string + */ + private $homeMenuCacheFile = './files/cache/menu/homeSitemap.php'; /** * Initialization @@ -41,6 +51,7 @@ function init() { $this->setTemplatePath($this->module_path.'tpl'); + //$this->homeMenuCacheFile = sprintf('./files/cache/menu/homeSitemap.php'); } /** @@ -778,6 +789,18 @@ $parent_srl = 0; } + if(!$this->homeModuleMid) + { + $oModuleModel = &getModel('module'); + $oMenuAdminController = &getAdminController('menu'); + $columnList = array('modules.mid',); + $output = $oModuleModel->getSiteInfo(0, $columnList); + if($output->mid) + { + $this->homeModuleMid = $output->mid; + } + } + $this->moveMenuItem($menu_srl, $parent_srl, $source_srl, $target_srl, $mode, $originMenu['is_shortcut'], $originMenu['url']); if(count($originMenu['list']) > 0) { @@ -1133,6 +1156,19 @@ $oModuleController = &getController('module'); $output = $oModuleController->updateModule($moduleInfo); } + + // change home menu cache file + if($url == $this->homeModuleMid) + { + if(file_exists($this->homeMenuCacheFile)) + { + @include($this->homeMenuCacheFile); + } + if(!$homeMenuSrl || $homeMenuSrl != $menu_srl) + { + $this->makeHomemenuCacheFile($menu_srl); + } + } } // Add a child } elseif($mode == 'insert') { @@ -1829,5 +1865,18 @@ $ext = $tmp_arr[count($tmp_arr)-1]; return sprintf('%s%d.%s.%s', $path, $menuItemSrl, 'menu_'.$mode.'_btn', $ext); } + + public function makeHomemenuCacheFile($menuSrl) + { + $cacheBuff .= sprintf('homeMenuCacheFile, $cacheBuff); + } + + public function getHomeMenuCacheFile() + { + return $this->homeMenuCacheFile; + } } ?> diff --git a/modules/menu/menu.admin.model.php b/modules/menu/menu.admin.model.php index 701a1f90f..7464f1465 100644 --- a/modules/menu/menu.admin.model.php +++ b/modules/menu/menu.admin.model.php @@ -354,6 +354,7 @@ $menuSrl = Context::get('menu_srl'); $oModuleModel = &getModel('module'); + $oMenuAdminController = &getAdminController('menu'); $columnList = array('modules.mid', 'modules.browser_title', 'sites.index_module_srl'); $start_module = $oModuleModel->getSiteInfo(0, $columnList); @@ -364,6 +365,10 @@ $output = $this->getMenu($menuSrl); $php_file = sprintf('./files/cache/menu/%s.php',$output->menu_srl); if(file_exists($php_file)) @include($php_file); + else + { + $oMenuAdminController->makeXmlFile($menuSrl); + } if(count($menu->list)>0) { @@ -376,7 +381,6 @@ // menu recreate if($isMenuFixed) { - $oMenuAdminController = &getAdminController('menu'); $oMenuAdminController->makeXmlFile($menuSrl); } @@ -400,6 +404,10 @@ unset($menuItems); $value->php_file = sprintf('./files/cache/menu/%s.php',$value->menu_srl); if(file_exists($value->php_file)) @include($value->php_file); + else + { + $oMenuAdminController->makeXmlFile($value->menu_srl); + } $isMenuFixed = false; if(count($menu->list)>0) @@ -413,7 +421,6 @@ // menu recreate if($isMenuFixed) { - $oMenuAdminController = &getAdminController('menu'); $oMenuAdminController->makeXmlFile($value->menu_srl); }