issue 2522 shortcut update bug fix

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11978 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-10-31 02:04:39 +00:00
parent 0dcca96b1b
commit 10b39198ba

View file

@ -423,7 +423,7 @@
{ {
$request = Context::getRequestVars(); $request = Context::getRequestVars();
if(!$request->menu_item_srl || !$request->url || !$request->menu_name) if(!$request->menu_item_srl || !$request->menu_name)
{ {
return new Object(-1, 'msg_invalid_request'); return new Object(-1, 'msg_invalid_request');
} }
@ -435,9 +435,35 @@
// Get original information // Get original information
$oMenuAdminModel = &getAdminModel('menu'); $oMenuAdminModel = &getAdminModel('menu');
$itemInfo = $oMenuAdminModel->getMenuItemInfo($request->menu_item_srl); $itemInfo = $oMenuAdminModel->getMenuItemInfo($request->menu_item_srl);
$args = $itemInfo;
// if menu type is module, check exists module and update // if menu type is module, check exists module and update
if($itemInfo->is_shortcut != 'Y' && !preg_match('/^http/i',$itemInfo->url)) if($itemInfo->is_shortcut == 'Y')
{
// type is url
if(preg_match('/^http/i', $request->shortcut_target))
{
$args->url = $request->shortcut_target;
}
// type is module short cut
else if(is_numeric($request->shortcut_target))
{
// Get new original information
$newItemInfo = $oMenuAdminModel->getMenuItemInfo($request->shortcut_target);
if(!$newItemInfo->menu_item_srl)
{
return new Object(-1, 'msg_invalid_request');
}
$args->url = $newItemInfo->url;
$args->is_shortcut = 'Y';
}
else
{
return new Object(-1, 'msg_invalid_request');
}
}
else
{ {
// check already created module instance // check already created module instance
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
@ -451,7 +477,6 @@
} }
$moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url); $moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url);
// if not exist module, return error // if not exist module, return error
if(!$moduleInfo) if(!$moduleInfo)
{ {
@ -461,29 +486,29 @@
$moduleInfo->mid = $request->url; $moduleInfo->mid = $request->url;
$oModuleController = &getController('module'); $oModuleController = &getController('module');
$oModuleController->updateModule($moduleInfo); $oModuleController->updateModule($moduleInfo);
$args->url = $request->url;
} }
if($request->menu_name_key) if($request->menu_name_key)
{ {
$itemInfo->name = $request->menu_name_key; $args->name = $request->menu_name_key;
} }
else else
{ {
$itemInfo->name = $request->menu_name; $args->name = $request->menu_name;
} }
$itemInfo->url = $request->url; if(count($args->group_srls) == 0)
if(count($itemInfo->group_srls) == 0)
{ {
unset($itemInfo->group_srls); unset($args->group_srls);
} }
$itemInfo->open_window = $request->menu_open_window; $args->open_window = $request->menu_open_window;
$itemInfo->expand = $request->menu_expand; $args->expand = $request->menu_expand;
$output = executeQuery('menu.updateMenuItem', $itemInfo); $output = executeQuery('menu.updateMenuItem', $args);
$this->makeXmlFile($itemInfo->menu_srl); $this->makeXmlFile($args->menu_srl);
$this->add('menu_item_srl', $itemInfo->menu_item_srl); $this->add('menu_item_srl', $args->menu_item_srl);
$this->setMessage('success_updated', 'info'); $this->setMessage('success_updated', 'info');
} }