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
This commit is contained in:
ovclas 2012-11-09 02:48:02 +00:00
parent 35b35d24d3
commit 8417509874
8 changed files with 113 additions and 196 deletions

View file

@ -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('<?php if(!defined("__ZBXE__")) exit();');
$cacheBuff .= sprintf('$homeMenuSrl = %d;', $menuSrl);
FileHandler::writeFile($this->homeMenuCacheFile, $cacheBuff);
}
public function getHomeMenuCacheFile()
{
return $this->homeMenuCacheFile;
}
}
?>