From e3be6964f75b7aff7295e59f0b6e893c1673c0bb Mon Sep 17 00:00:00 2001 From: zero Date: Mon, 16 Apr 2007 12:45:11 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@1180 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/layout/layout.controller.php | 23 ++++++++++++++++++- modules/menu/menu.controller.php | 7 ++++-- modules/menu/tpl/filter/update_menu_title.xml | 9 ++++++++ modules/module/module.controller.php | 18 +++++++++++++++ modules/module/queries/updateModuleLayout.xml | 11 +++++++++ modules/module/queries/updateModuleMenu.xml | 11 +++++++++ modules/module/schemas/module_layout.xml | 5 ---- modules/module/schemas/modules.xml | 2 ++ 8 files changed, 78 insertions(+), 8 deletions(-) create mode 100644 modules/menu/tpl/filter/update_menu_title.xml create mode 100644 modules/module/queries/updateModuleLayout.xml create mode 100644 modules/module/queries/updateModuleMenu.xml delete mode 100644 modules/module/schemas/module_layout.xml diff --git a/modules/layout/layout.controller.php b/modules/layout/layout.controller.php index be0e7ed25..ab8ed5d2f 100644 --- a/modules/layout/layout.controller.php +++ b/modules/layout/layout.controller.php @@ -41,10 +41,31 @@ unset($extra_vars->layout); unset($extra_vars->title); - // DB에 입력하기 위한 변수 설정 $args = Context::gets('layout_srl','title'); + + // 레이아웃의 정보를 가져옴 + $oLayoutModel = &getModel('layout'); + $layout_info = $oLayoutModel->getLayout($args->layout_srl); + $menus = get_object_vars($layout_info->menu); + if(count($menus)) { + foreach($menus as $menu_id => $val) { + $menu_srl = Context::get($menu_id); + if($menu_srl) { + $menu_srl_list[] = $menu_srl; + } + } + + // 정해진 메뉴가 있으면 해당 메뉴에 속한 모듈/mid의 layout값을 모두 변경 + if(count($menu_srl_list)) { + $oModuleController = &getController('module'); + $oModuleController->updateModuleLayout($args->layout_srl, implode(',',$menu_srl_list)); + } + } + + // DB에 입력하기 위한 변수 설정 $args->extra_vars = serialize($extra_vars); + $output = executeQuery('layout.updateLayout', $args); if(!$output->toBool()) return $output; diff --git a/modules/menu/menu.controller.php b/modules/menu/menu.controller.php index f2b493ab9..61efa133a 100644 --- a/modules/menu/menu.controller.php +++ b/modules/menu/menu.controller.php @@ -123,8 +123,11 @@ // XML 파일을 갱신하고 위치을 넘겨 받음 $xml_file = $this->makeXmlFile($args->menu_srl); - // url에 mid=? 또는 module=? 가 있을 경우 기록 남김 - if(eregi("^(mid|module)", $args->url)) { + // url에 mid=? 있을 경우 기록 남김 + if(sbustr($args->url,0,4)=='mid=') { + $mid = substr($args->url,4); + $oModuleController = &getController('module'); + $oModuleController->updateModuleMenu($mid, $args->menu_srl); } $this->add('xml_file', $xml_file); diff --git a/modules/menu/tpl/filter/update_menu_title.xml b/modules/menu/tpl/filter/update_menu_title.xml new file mode 100644 index 000000000..0735aeb5c --- /dev/null +++ b/modules/menu/tpl/filter/update_menu_title.xml @@ -0,0 +1,9 @@ + +
+ + + + + + +
diff --git a/modules/module/module.controller.php b/modules/module/module.controller.php index c45b3777e..68a4ebb61 100644 --- a/modules/module/module.controller.php +++ b/modules/module/module.controller.php @@ -268,5 +268,23 @@ $args->module_category_srl = Context::get('module_category_srl'); return executeQuery('module.deleteModuleCategory', $args); } + + /** + * @brief 지정된 menu_srl에 속한 mid 의 menu_srl 을 변경 + **/ + function updateModuleMenu($mid, $menu_srl) { + $args->mid = $mid; + $args->menu_srl = $menu_srl; + return executeQuery('module.updateModuleMenu', $args); + } + + /** + * @brief 지정된 menu_srl에 속한 mid 의 layout_srl을 변경 + **/ + function updateModuleLayout($layout_srl, $menu_srls) { + $args->layout_srl = $layout_srl; + $args->menu_srls = $menu_srls; + return executeQuery('module.updateModuleLayout', $args); + } } ?> diff --git a/modules/module/queries/updateModuleLayout.xml b/modules/module/queries/updateModuleLayout.xml new file mode 100644 index 000000000..152ba681f --- /dev/null +++ b/modules/module/queries/updateModuleLayout.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/modules/module/queries/updateModuleMenu.xml b/modules/module/queries/updateModuleMenu.xml new file mode 100644 index 000000000..831b2a95d --- /dev/null +++ b/modules/module/queries/updateModuleMenu.xml @@ -0,0 +1,11 @@ + + +
+ + + + + + + + diff --git a/modules/module/schemas/module_layout.xml b/modules/module/schemas/module_layout.xml deleted file mode 100644 index 93b50db6b..000000000 --- a/modules/module/schemas/module_layout.xml +++ /dev/null @@ -1,5 +0,0 @@ -
- - - -
diff --git a/modules/module/schemas/modules.xml b/modules/module/schemas/modules.xml index a112cec89..cab7f7e72 100644 --- a/modules/module/schemas/modules.xml +++ b/modules/module/schemas/modules.xml @@ -2,6 +2,8 @@ + +