issue 2760 if module is deleted, menu delete also

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12420 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-12-18 05:00:33 +00:00
parent c21067813c
commit 0dec013b08
2 changed files with 69 additions and 9 deletions

View file

@ -150,7 +150,7 @@ class menuAdminController extends menu
$moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url, $menuInfo->site_srl);
if($moduleInfo->module_srl)
{
$output = $oModuleController->deleteModule($moduleInfo->module_srl);
$output = $oModuleController->onlyDeleteModule($moduleInfo->module_srl);
if(!$output->toBool())
{
$oDB->rollback();
@ -601,9 +601,25 @@ class menuAdminController extends menu
*/
function procMenuAdminDeleteItem()
{
// List variables
$args = Context::getRequestVars();
// argument variables
$args->menu_srl = Context::get('menu_srl');
$args->menu_item_srl = Context::get('menu_item_srl');
$args->is_force = Context::get('is_force');
$returnObj = $this->deleteItem($args);
$this->setMessage('success_deleted');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
$this->setRedirectUrl($returnUrl);
}
/**
* Delete menu item ( Only include BO )
* @args menu_srl, menu_item_srl, is_force
* @return void|Object
*/
public function deleteItem($args)
{
$oModuleModel = &getModel('module');
$oMenuAdminModel = &getAdminModel('menu');
@ -671,10 +687,8 @@ class menuAdminController extends menu
$this->add('xml_file', $xml_file);
$this->add('menu_title', $menu_title);
$this->add('menu_item_srl', $parent_srl);
$this->setMessage('success_deleted');
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMenuAdminManagement', 'menu_srl', $args->menu_srl);
$this->setRedirectUrl($returnUrl);
return new Object(0, 'success_deleted');
}
private function _checkHomeMenuInOriginMenu($originMenu, $startMid, &$isStartmenuInclude)
@ -738,7 +752,7 @@ class menuAdminController extends menu
$moduleInfo = $oModuleModel->getModuleInfoByMid($node['url'], $menuInfo->site_srl);
if($moduleInfo->module_srl)
{
$output = $oModuleController->deleteModule($moduleInfo->module_srl);
$output = $oModuleController->onlyDeleteModule($moduleInfo->module_srl);
if(!$output->toBool())
{
$oDB->rollback();

View file

@ -436,14 +436,60 @@ class moduleController extends module
}
/**
* @brief Delete module
*
* Delete module
* Attempt to delete all related information when deleting a module.
* Origin method is changed. because menu validation check is needed
*/
function deleteModule($module_srl)
{
if(!$module_srl) return new Object(-1,'msg_invalid_request');
$site_module_info = Context::get('site_module_info');
$oModuleModel = &getModel('module');
$output = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
$args->url = $output->mid;
$args->is_shortcut = 'N';
$args->site_srl = $site_module_info->site_srl;
unset($output);
$output = executeQuery('menu.getMenuItemByUrl', $args);
// menu delete
if($output->data)
{
unset($args);
$args->menu_srl = $output->data->menu_srl;
$args->menu_item_srl = $output->data->menu_item_srl;
$args->is_force = 'N';
$oMenuAdminController = &getAdminController('menu');
$output = $oMenuAdminController->deleteItem($args);
if($output->isSuccess)
{
return new Object(0, 'success_deleted');
}
else
{
return new Object($output->error, $output->message);
}
}
// only delete module
else
{
return $this->onlyDeleteModule($modue_srl);
}
}
/**
* Delete module
* Attempt to delete all related information when deleting a module.
*/
public function onlyDeleteModule($module_srl)
{
if(!$module_srl) return new Object(-1,'msg_invalid_request');
// check start module
$oModuleModel = &getModel('module');
$columnList = array('sites.index_module_srl');