mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-11 04:52:14 +09:00
#225 module update에서 처리하지 않고, 메뉴 사이트맵 관리 페이지 접근시 작동되도록 수정
This commit is contained in:
parent
d48d9d80a7
commit
cf09c05f8a
4 changed files with 154 additions and 192 deletions
|
|
@ -104,6 +104,149 @@ class menuAdminController extends menu
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function linkAllModuleInstancesToSitemap()
|
||||||
|
{
|
||||||
|
$unlinked_modules = false;
|
||||||
|
$args = new stdClass;
|
||||||
|
$args->site_srl = 0;
|
||||||
|
$output = executeQueryArray('module.getNotLinkedModuleBySiteSrl',$args);
|
||||||
|
if($output->toBool() && $output->data && count($output->data) > 0)
|
||||||
|
{
|
||||||
|
$unlinked_modules = $output->data;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($unlinked_modules)
|
||||||
|
{
|
||||||
|
$unlinked_menu_srl = $this->getUnlinkedMenu();
|
||||||
|
$output = $this->updateLinkModule($unlinked_modules, $unlinked_menu_srl);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* // for 1.7.4 update, 기존에 생성된 Temporary menu 항목 정리
|
||||||
|
$oMenuAdminModel = getAdminModel('menu');
|
||||||
|
$args = new stdClass();
|
||||||
|
$args->title = array("Temporary menu");
|
||||||
|
$temp_menus = executeQueryArray('menu.getMenuByTitle', $args);
|
||||||
|
|
||||||
|
$args = new stdClass();
|
||||||
|
if($temp_menus->toBool())
|
||||||
|
{
|
||||||
|
foreach($temp_menus->data as $menu)
|
||||||
|
{
|
||||||
|
$args->current_menu_srl = $menu->menu_srl;
|
||||||
|
$args->menu_srl = $moduleConfig->unlinked_menu_srl;
|
||||||
|
$output3 = executeQuery('menu.updateMenuItems', $args);
|
||||||
|
|
||||||
|
if($output3->toBool())
|
||||||
|
{
|
||||||
|
// delete
|
||||||
|
$oMenuAdminController = getAdminController('menu');
|
||||||
|
$oMenuAdminController->deleteMenu($menu->menu_srl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUnlinkedMenu()
|
||||||
|
{
|
||||||
|
// 'unlinked' menu 존재여부 확인
|
||||||
|
$oModuleModel = getModel('module');
|
||||||
|
$moduleConfig = $oModuleModel->getModuleConfig('menu');
|
||||||
|
|
||||||
|
if($moduleConfig->unlinked_menu_srl)
|
||||||
|
{
|
||||||
|
$menuArgs = new stdClass;
|
||||||
|
$menuArgs->menu_srl = $moduleConfig->unlinked_menu_srl;
|
||||||
|
$menuOutput = executeQuery('menu.getMenu', $menuArgs);
|
||||||
|
if(!$menuOutput->data)
|
||||||
|
{
|
||||||
|
unset($moduleConfig->unlinked_menu_srl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!$moduleConfig->unlinked_menu_srl)
|
||||||
|
{
|
||||||
|
$output = $this->addMenu('unlinked', 0);
|
||||||
|
if($output->toBool())
|
||||||
|
{
|
||||||
|
$moduleConfig->unlinked_menu_srl = $output->get('menuSrl');
|
||||||
|
$oModuleController = getController('module');
|
||||||
|
$oModuleController->updateModuleConfig('menu', $moduleConfig);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $moduleConfig->unlinked_menu_srl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* insert menu when not linked module.
|
||||||
|
*
|
||||||
|
* @param array $moduleInfos
|
||||||
|
* @param int $menuSrl
|
||||||
|
*
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
function updateLinkModule($moduleInfos, $menuSrl)
|
||||||
|
{
|
||||||
|
if(!$moduleInfos || !is_array($moduleInfos) || count($moduleInfos) == 0 || $menuSrl == 0)
|
||||||
|
{
|
||||||
|
return new Object(-1, 'msg_invalid_request');
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($moduleInfos as $moduleInfo)
|
||||||
|
{
|
||||||
|
// search menu.
|
||||||
|
$args = new stdClass;
|
||||||
|
$args->url = $moduleInfo->mid;
|
||||||
|
$args->site_srl = $moduleInfo->site_srl;
|
||||||
|
$args->is_shortcut = 'N';
|
||||||
|
|
||||||
|
$output = executeQuery('menu.getMenuItemByUrl', $args);
|
||||||
|
|
||||||
|
if($output->toBool() && $output->data)
|
||||||
|
{
|
||||||
|
$moduleInfo->menu_srl = $output->data->menu_srl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// create menu item.
|
||||||
|
$item_args->menu_srl = $menuSrl;
|
||||||
|
$item_args->url = $moduleInfo->mid;
|
||||||
|
$item_args->name = $moduleInfo->mid;
|
||||||
|
$item_args->menu_item_srl = getNextSequence();
|
||||||
|
$item_args->listorder = -1*$item_args->menu_item_srl;
|
||||||
|
|
||||||
|
$output = executeQuery('menu.insertMenuItem', $item_args);
|
||||||
|
if(!$output->toBool())
|
||||||
|
{
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
$moduleInfo->menu_srl = $menuSrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
$output = executeQuery('module.updateModule', $moduleInfo);
|
||||||
|
|
||||||
|
$oCacheHandler = CacheHandler::getInstance('object', null, true);
|
||||||
|
if($oCacheHandler->isSupport())
|
||||||
|
{
|
||||||
|
$oCacheHandler->invalidateGroupKey('site_and_module');
|
||||||
|
}
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
$oMenuAdminController = getAdminController('menu');
|
||||||
|
$oMenuAdminController->makeXmlFile($menuSrl);
|
||||||
|
|
||||||
|
return new Object();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Change the menu title
|
* Change the menu title
|
||||||
* @return void|object
|
* @return void|object
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ class menuAdminView extends menu
|
||||||
$this->setTemplatePath($this->module_path.'tpl');
|
$this->setTemplatePath($this->module_path.'tpl');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Site map admin menu index page
|
* Site map admin menu index page
|
||||||
* @return void
|
* @return void
|
||||||
|
|
@ -39,6 +40,13 @@ class menuAdminView extends menu
|
||||||
else $site_srl = (int)$site_module_info->site_srl;
|
else $site_srl = (int)$site_module_info->site_srl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// process for unlinked modules
|
||||||
|
if($site_srl == 0)
|
||||||
|
{
|
||||||
|
$oMenuController = getAdminController('menu');
|
||||||
|
$oMenuController->linkAllModuleInstancesToSitemap();
|
||||||
|
}
|
||||||
|
|
||||||
$oAdmin = getClass('admin');
|
$oAdmin = getClass('admin');
|
||||||
|
|
||||||
$oMenuAdminModel = getAdminModel('menu');
|
$oMenuAdminModel = getAdminModel('menu');
|
||||||
|
|
|
||||||
|
|
@ -108,26 +108,6 @@ class module extends ModuleObject
|
||||||
$oModuleModel = getModel('module');
|
$oModuleModel = getModel('module');
|
||||||
$moduleConfig = $oModuleModel->getModuleConfig('module');
|
$moduleConfig = $oModuleModel->getModuleConfig('module');
|
||||||
if(!$moduleConfig->isUpdateFixedValue) return true;
|
if(!$moduleConfig->isUpdateFixedValue) return true;
|
||||||
|
|
||||||
// 'unlinked' menu 존재여부 확인
|
|
||||||
if(!$moduleConfig->unlinked_menu_srl) return true;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$menuArgs = new stdClass;
|
|
||||||
$menuArgs->menu_srl = $moduleConfig->unlinked_menu_srl;
|
|
||||||
$menuOutput = executeQuery('menu.getMenu', $menuArgs);
|
|
||||||
if(!$menuOutput->data) return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// menu_srl이 등록되지 않은 mid가 있는지 검사(지정된 menu_srl이 있을 경우, 지정된 menu_item도 있다고 가정)
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->site_srl = 0;
|
|
||||||
$output = executeQueryArray('module.getNotLinkedModuleBySiteSrl',$args);
|
|
||||||
if($output->toBool() && $output->data && count($output->data) > 0)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -436,152 +416,9 @@ class module extends ModuleObject
|
||||||
$output = $oModuleController->updateModuleConfig('module', $moduleConfig);
|
$output = $oModuleController->updateModuleConfig('module', $moduleConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
// menu(sitemap)에 링크되지 않은 모듈인스턴스 링크
|
|
||||||
if(Context::isInstalled())
|
|
||||||
{
|
|
||||||
$output1 = $this->linkAllModuleInstancesToSitemap();
|
|
||||||
if(!$output1->toBool()) return $output1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Object(0, 'success_updated');
|
return new Object(0, 'success_updated');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function linkAllModuleInstancesToSitemap()
|
|
||||||
{
|
|
||||||
// 'unlinked' menu가 지정돼 있는지 검사
|
|
||||||
$oModuleController = getController('module');
|
|
||||||
$oModuleModel = getModel('module');
|
|
||||||
$moduleConfig = $oModuleModel->getModuleConfig('module');
|
|
||||||
|
|
||||||
// 지정돼 있지 않다면 'unlinked' menu 생성
|
|
||||||
$created_menu_srl = 0;
|
|
||||||
if(!$moduleConfig->unlinked_menu_srl)
|
|
||||||
{
|
|
||||||
$created_menu_srl = $oModuleController->makeUnlinkedMenu();
|
|
||||||
}
|
|
||||||
// 지정돼 있지만 실제로 없다면 생성
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$menuArgs = new stdClass;
|
|
||||||
$menuArgs->menu_srl = $moduleConfig->unlinked_menu_srl;
|
|
||||||
$menuOutput = executeQuery('menu.getMenu', $menuArgs);
|
|
||||||
if(!$menuOutput->data)
|
|
||||||
{
|
|
||||||
$created_menu_srl = $oModuleController->makeUnlinkedMenu();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 'unlinked' menu가 새로 생성되었다면 module config에 저장
|
|
||||||
if($created_menu_srl)
|
|
||||||
{
|
|
||||||
$moduleConfig->unlinked_menu_srl = $created_menu_srl;
|
|
||||||
$oModuleController->updateModuleConfig('module', $moduleConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
// for 1.7.4 update, 기존에 생성된 Temporary menu 항목 정리
|
|
||||||
$oMenuAdminModel = getAdminModel('menu');
|
|
||||||
$args = new stdClass();
|
|
||||||
$args->title = array("Temporary menu");
|
|
||||||
$temp_menus = executeQueryArray('menu.getMenuByTitle', $args);
|
|
||||||
|
|
||||||
$args = new stdClass();
|
|
||||||
if($temp_menus->toBool())
|
|
||||||
{
|
|
||||||
foreach($temp_menus->data as $menu)
|
|
||||||
{
|
|
||||||
$args->current_menu_srl = $menu->menu_srl;
|
|
||||||
$args->menu_srl = $moduleConfig->unlinked_menu_srl;
|
|
||||||
$output3 = executeQuery('menu.updateMenuItems', $args);
|
|
||||||
|
|
||||||
if($output3->toBool())
|
|
||||||
{
|
|
||||||
// delete
|
|
||||||
$oMenuAdminController = getAdminController('menu');
|
|
||||||
$oMenuAdminController->deleteMenu($menu->menu_srl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// menu_srl이 지정되지 않은 mmodule instance가 있는지 검사
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->site_srl = 0;
|
|
||||||
$output1 = executeQueryArray('module.getNotLinkedModuleBySiteSrl',$args);
|
|
||||||
if($output1->toBool() && $output1->data && count($output1->data) > 0)
|
|
||||||
{
|
|
||||||
$output2 = $this->updateLinkModule($output1->data, $moduleConfig->unlinked_menu_srl);
|
|
||||||
if(!$output2->toBool())
|
|
||||||
{
|
|
||||||
return $output2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Object(0,'success');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* insert menu when not linked module.
|
|
||||||
*
|
|
||||||
* @param array $moduleInfos
|
|
||||||
* @param int $menuSrl
|
|
||||||
*
|
|
||||||
* @return Object
|
|
||||||
*/
|
|
||||||
private function updateLinkModule($moduleInfos, $menuSrl)
|
|
||||||
{
|
|
||||||
if(!$moduleInfos || !is_array($moduleInfos) || count($moduleInfos) == 0 || $menuSrl == 0)
|
|
||||||
{
|
|
||||||
return new Object(-1, 'msg_invalid_request');
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($moduleInfos as $moduleInfo)
|
|
||||||
{
|
|
||||||
// search menu.
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->url = $moduleInfo->mid;
|
|
||||||
$args->site_srl = $moduleInfo->site_srl;
|
|
||||||
$args->is_shortcut = 'N';
|
|
||||||
|
|
||||||
$output = executeQuery('menu.getMenuItemByUrl', $args);
|
|
||||||
|
|
||||||
if($output->toBool() && $output->data)
|
|
||||||
{
|
|
||||||
$moduleInfo->menu_srl = $output->data->menu_srl;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// create menu item.
|
|
||||||
$item_args->menu_srl = $menuSrl;
|
|
||||||
$item_args->url = $moduleInfo->mid;
|
|
||||||
$item_args->name = $moduleInfo->mid;
|
|
||||||
$item_args->menu_item_srl = getNextSequence();
|
|
||||||
$item_args->listorder = -1*$item_args->menu_item_srl;
|
|
||||||
|
|
||||||
$output = executeQuery('menu.insertMenuItem', $item_args);
|
|
||||||
if(!$output->toBool())
|
|
||||||
{
|
|
||||||
return $output;
|
|
||||||
}
|
|
||||||
$moduleInfo->menu_srl = $menuSrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
$output = executeQuery('module.updateModule', $moduleInfo);
|
|
||||||
if(!$output->toBool())
|
|
||||||
{
|
|
||||||
$oCacheHandler = CacheHandler::getInstance('object', null, true);
|
|
||||||
if($oCacheHandler->isSupport())
|
|
||||||
{
|
|
||||||
$oCacheHandler->invalidateGroupKey('site_and_module');
|
|
||||||
}
|
|
||||||
return $output;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$oMenuAdminController = getAdminController('menu');
|
|
||||||
$oMenuAdminController->makeXmlFile($menuSrl);
|
|
||||||
|
|
||||||
return new Object();
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateForUniqueSiteDomain()
|
function updateForUniqueSiteDomain()
|
||||||
{
|
{
|
||||||
$output = executeQueryArray("module.getNonuniqueDomains");
|
$output = executeQueryArray("module.getNonuniqueDomains");
|
||||||
|
|
|
||||||
|
|
@ -423,20 +423,11 @@ class moduleController extends module
|
||||||
// if menu is not created, create menu also. and does not supported that in virtual site.
|
// if menu is not created, create menu also. and does not supported that in virtual site.
|
||||||
if(!$menuOutput->data && !$args->site_srl)
|
if(!$menuOutput->data && !$args->site_srl)
|
||||||
{
|
{
|
||||||
|
debugPrint($args->menu_srl);
|
||||||
$oMenuAdminModel = getAdminModel('menu');
|
$oMenuAdminModel = getAdminModel('menu');
|
||||||
|
|
||||||
$oModuleModel = getModel('module');
|
$oMenuAdminController = getAdminController('menu');
|
||||||
$moduleConfig = $oModuleModel->getModuleConfig('module');
|
$menuSrl = $oMenuAdminController->getUnlinkedMenu();
|
||||||
|
|
||||||
$menuSrl = $moduleConfig->unlinked_menu_srl;
|
|
||||||
if(!$menuSrl)
|
|
||||||
{
|
|
||||||
$menuSrl = $this->makeUnlinkedMenu();
|
|
||||||
|
|
||||||
// 'unlinked' menu를 module config에 저장
|
|
||||||
$moduleConfig->unlinked_menu_srl = $menuSrl;
|
|
||||||
$this->updateModuleConfig('module', $moduleConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
$menuArgs->menu_srl = $menuSrl;
|
$menuArgs->menu_srl = $menuSrl;
|
||||||
$menuArgs->menu_item_srl = getNextSequence();
|
$menuArgs->menu_item_srl = getNextSequence();
|
||||||
|
|
@ -455,7 +446,6 @@ class moduleController extends module
|
||||||
return $menuItemOutput;
|
return $menuItemOutput;
|
||||||
}
|
}
|
||||||
|
|
||||||
$oMenuAdminController = getAdminController('menu');
|
|
||||||
$oMenuAdminController->makeXmlFile($menuSrl);
|
$oMenuAdminController->makeXmlFile($menuSrl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -484,22 +474,6 @@ class moduleController extends module
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
function makeUnlinkedMenu()
|
|
||||||
{
|
|
||||||
$args = new stdClass();
|
|
||||||
$args->title = 'unlinked';
|
|
||||||
$menuSrl = $args->menu_srl = getNextSequence();
|
|
||||||
$args->listorder = $args->menu_srl * -1;
|
|
||||||
|
|
||||||
$output = executeQuery('menu.insertMenu', $args);
|
|
||||||
if($output->toBool())
|
|
||||||
{
|
|
||||||
return $menuSrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Modify module information
|
* @brief Modify module information
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue