mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 17:21:39 +09:00
Dom't delete linked module when deleting menu
This commit is contained in:
parent
912229c881
commit
c9ad195740
1 changed files with 35 additions and 35 deletions
|
|
@ -298,6 +298,7 @@ class menuAdminController extends menu
|
|||
function procMenuAdminDelete()
|
||||
{
|
||||
$menu_srl = Context::get('menu_srl');
|
||||
$delete_module = Context::get('delete_module') === 'Y';
|
||||
|
||||
$oMenuAdminModel = getAdminModel('menu');
|
||||
$menuInfo = $oMenuAdminModel->getMenu($menu_srl);
|
||||
|
|
@ -338,7 +339,7 @@ class menuAdminController extends menu
|
|||
throw new Rhymix\Framework\Exception('msg_cannot_delete_homemenu');
|
||||
}
|
||||
|
||||
$output = $this->deleteMenu($menu_srl);
|
||||
$output = $this->deleteMenu($menu_srl, $delete_module);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
throw new Rhymix\Framework\Exception($output->message);
|
||||
|
|
@ -354,7 +355,7 @@ class menuAdminController extends menu
|
|||
* Delete menu_item and xml cache files
|
||||
* @return Object
|
||||
*/
|
||||
function deleteMenu($menu_srl)
|
||||
function deleteMenu($menu_srl, $delete_module = false)
|
||||
{
|
||||
$oDB = DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
|
@ -365,28 +366,30 @@ class menuAdminController extends menu
|
|||
$oMenuAdminModel = getAdminModel('menu');
|
||||
$menuInfo = $oMenuAdminModel->getMenu($args->menu_srl);
|
||||
|
||||
// Delete modules
|
||||
// Delete menu
|
||||
$output = executeQueryArray('menu.getMenuItems', $args);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
$oModuleController = getController('module');
|
||||
$oModuleModel = getModel('module');
|
||||
|
||||
foreach($output->data as $itemInfo)
|
||||
// Delete linked module
|
||||
if ($delete_module)
|
||||
{
|
||||
if($itemInfo->is_shortcut != 'Y' && strncasecmp('http', $itemInfo->url, 4) !== 0)
|
||||
$oModuleController = ModuleController::getInstance();
|
||||
foreach($output->data as $itemInfo)
|
||||
{
|
||||
$moduleInfo = $oModuleModel->getModuleInfoByMid($itemInfo->url, $menuInfo->site_srl);
|
||||
if($moduleInfo->module_srl)
|
||||
if ($itemInfo->is_shortcut != 'Y' && strncasecmp('http', $itemInfo->url, 4) !== 0)
|
||||
{
|
||||
$output = $oModuleController->onlyDeleteModule($moduleInfo->module_srl);
|
||||
if(!$output->toBool())
|
||||
$moduleInfo = ModuleModel::getModuleInfoByMid($itemInfo->url, $menuInfo->site_srl);
|
||||
if ($moduleInfo->module_srl)
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
$output = $oModuleController->onlyDeleteModule($moduleInfo->module_srl);
|
||||
if (!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -399,6 +402,7 @@ class menuAdminController extends menu
|
|||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
// Delete the menu
|
||||
$output = executeQuery("menu.deleteMenu", $args);
|
||||
if(!$output->toBool())
|
||||
|
|
@ -407,6 +411,8 @@ class menuAdminController extends menu
|
|||
return $output;
|
||||
}
|
||||
|
||||
$oDB->commit();
|
||||
|
||||
// Delete cache files
|
||||
$cache_list = FileHandler::readDir("./files/cache/menu","",false,true);
|
||||
if(count($cache_list))
|
||||
|
|
@ -421,8 +427,6 @@ class menuAdminController extends menu
|
|||
$image_path = sprintf('./files/attach/menu_button/%d', $menu_srl);
|
||||
FileHandler::removeDir($image_path);
|
||||
|
||||
$oDB->commit();
|
||||
|
||||
return new BaseObject(0,'success_deleted');
|
||||
}
|
||||
|
||||
|
|
@ -870,8 +874,9 @@ class menuAdminController extends menu
|
|||
$args->menu_srl = Context::get('menu_srl');
|
||||
$args->menu_item_srl = Context::get('menu_item_srl');
|
||||
$args->is_force = Context::get('is_force');
|
||||
$delete_module = Context::get('delete_module') === 'Y';
|
||||
|
||||
$returnObj = $this->deleteItem($args);
|
||||
$returnObj = $this->deleteItem($args, $delete_module);
|
||||
if(is_object($returnObj))
|
||||
{
|
||||
$this->setError($returnObj->error);
|
||||
|
|
@ -891,7 +896,7 @@ class menuAdminController extends menu
|
|||
* @args menu_srl, menu_item_srl, is_force
|
||||
* @return void|Object
|
||||
*/
|
||||
public function deleteItem($args)
|
||||
public function deleteItem($args, $delete_module = false)
|
||||
{
|
||||
$oModuleModel = getModel('module');
|
||||
$oMenuAdminModel = getAdminModel('menu');
|
||||
|
|
@ -950,7 +955,7 @@ class menuAdminController extends menu
|
|||
$oDB = DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
||||
$this->_recursiveDeleteMenuItem($oDB, $menuInfo, $originMenu);
|
||||
$this->_recursiveDeleteMenuItem($oDB, $menuInfo, $originMenu, $delete_module);
|
||||
|
||||
$oDB->commit();
|
||||
|
||||
|
|
@ -980,11 +985,10 @@ class menuAdminController extends menu
|
|||
}
|
||||
}
|
||||
|
||||
private function _deleteMenuItem(&$oDB, &$menuInfo, $node)
|
||||
private function _deleteMenuItem(&$oDB, &$menuInfo, $node, $delete_module = false)
|
||||
{
|
||||
// Remove from the DB
|
||||
$args = new stdClass();
|
||||
$args->menu_srl = $menuSrl;
|
||||
$args->menu_item_srl = $node['node_srl'];
|
||||
$output = executeQuery("menu.deleteMenuItem", $args);
|
||||
if(!$output->toBool())
|
||||
|
|
@ -1001,11 +1005,8 @@ class menuAdminController extends menu
|
|||
if($node['active_btn']) FileHandler::removeFile($node['active_btn']);
|
||||
|
||||
// Delete module
|
||||
if($node['is_shortcut'] != 'Y' && strncasecmp('http', $node['url'], 4) !== 0)
|
||||
if($delete_module && $node['is_shortcut'] != 'Y' && strncasecmp('http', $node['url'], 4) !== 0)
|
||||
{
|
||||
$oModuleController = getController('module');
|
||||
$oModuleModel = getModel('module');
|
||||
|
||||
// reference menu's url modify
|
||||
$args->url = $node['url'];
|
||||
$args->site_srl = $menuInfo->site_srl;
|
||||
|
|
@ -1023,7 +1024,8 @@ class menuAdminController extends menu
|
|||
}
|
||||
}
|
||||
|
||||
$moduleInfo = $oModuleModel->getModuleInfoByMid($node['url'], $menuInfo->site_srl);
|
||||
$oModuleController = ModuleController::getInstance();
|
||||
$moduleInfo = ModuleModel::getModuleInfoByMid($node['url'], $menuInfo->site_srl);
|
||||
if($moduleInfo->module_srl)
|
||||
{
|
||||
$output = $oModuleController->onlyDeleteModule($moduleInfo->module_srl);
|
||||
|
|
@ -1037,9 +1039,9 @@ class menuAdminController extends menu
|
|||
return new BaseObject(0, 'success');
|
||||
}
|
||||
|
||||
private function _recursiveDeleteMenuItem(&$oDB, &$menuInfo, $node)
|
||||
private function _recursiveDeleteMenuItem(&$oDB, &$menuInfo, $node, $delete_module = false)
|
||||
{
|
||||
$output = $this->_deleteMenuItem($oDB, $menuInfo, $node);
|
||||
$output = $this->_deleteMenuItem($oDB, $menuInfo, $node, $delete_module);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
throw new Rhymix\Framework\Exception($output->message);
|
||||
|
|
@ -1049,7 +1051,7 @@ class menuAdminController extends menu
|
|||
{
|
||||
foreach($node['list'] AS $key=>$value)
|
||||
{
|
||||
$this->_recursiveDeleteMenuItem($oDB, $menuInfo, $value);
|
||||
$this->_recursiveDeleteMenuItem($oDB, $menuInfo, $value, $delete_module);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1136,6 +1138,7 @@ class menuAdminController extends menu
|
|||
{
|
||||
if(is_array($node))
|
||||
{
|
||||
$oModuleController = ModuleController::getInstance();
|
||||
foreach($node AS $key=>$node)
|
||||
{
|
||||
$args = new stdClass();
|
||||
|
|
@ -1146,12 +1149,10 @@ class menuAdminController extends menu
|
|||
//module's menu_srl move also
|
||||
if($node['is_shortcut'] == 'N' && !empty($node['url']))
|
||||
{
|
||||
$oModuleModel = getModel('module');
|
||||
$moduleInfo = $oModuleModel->getModuleInfoByMid($node['url']);
|
||||
$moduleInfo = ModuleModel::getModuleInfoByMid($node['url']);
|
||||
if($menu_srl != $moduleInfo->menu_srl)
|
||||
{
|
||||
$moduleInfo->menu_srl = $menu_srl;
|
||||
$oModuleController = getController('module');
|
||||
$output = $oModuleController->updateModule($moduleInfo);
|
||||
}
|
||||
}
|
||||
|
|
@ -1493,12 +1494,11 @@ class menuAdminController extends menu
|
|||
//module's menu_srl move also
|
||||
if($isShortcut == 'N' && !empty($url))
|
||||
{
|
||||
$oModuleModel = getModel('module');
|
||||
$moduleInfo = $oModuleModel->getModuleInfoByMid($url);
|
||||
$moduleInfo = ModuleModel::getModuleInfoByMid($url);
|
||||
if($menu_srl != $moduleInfo->menu_srl)
|
||||
{
|
||||
$moduleInfo->menu_srl = $menu_srl;
|
||||
$oModuleController = getController('module');
|
||||
$oModuleController = ModuleController::getInstance();
|
||||
$output = $oModuleController->updateModule($moduleInfo);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue