레이아웃 설정시 연결된 메뉴의 일괄 레이아웃 조절 기능을 정상적으로 동작하도록 수정

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3982 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2008-03-19 08:57:48 +00:00
parent ffe907403e
commit 996d5c6167
3 changed files with 41 additions and 11 deletions

View file

@ -54,22 +54,28 @@
$oLayoutModel = &getModel('layout');
$layout_info = $oLayoutModel->getLayout($args->layout_srl);
$menus = get_object_vars($layout_info->menu);
if(count($menus)) {
if(count($menus) ) {
foreach($menus as $menu_id => $val) {
$menu_srl = Context::get($menu_id);
if(!$menu_srl) continue;
$menu_srl_list[] = $menu_srl;
}
if(Context::get('apply_layout')=='Y') {
$menu_args = null;
$menu_args->menu_srl = $menu_srl;
$output = executeQueryArray('layout.getLayoutModules', $menu_args);
if($output->data) {
$modules = array();
for($i=0;$i<count($output->data);$i++) {
$modules[] = $output->data[$i]->module_srl;
}
// 정해진 메뉴가 있으면 모듈 및 메뉴에 대한 레이아웃 연동
if(count($menu_srl_list) && Context::get('apply_layout')=='Y') {
// 해당 메뉴와 레이아웃 값을 매핑
$oMenuAdminController = &getAdminController('menu');
$oMenuAdminController->updateMenuLayout($args->layout_srl, $menu_srl_list);
// 해당 메뉴에 속한 mid의 layout값을 모두 변경
$oModuleController = &getController('module');
$oModuleController->updateModuleLayout($args->layout_srl, $menu_srl_list);
if(count($modules)) {
$update_args->module_srls = implode(',',$modules);
$update_args->layout_srl = $args->layout_srl;
$output = executeQuery('layout.updateModuleLayout', $update_args);
}
}
}
}
}

View file

@ -0,0 +1,13 @@
<query id="getLayoutModules" action="select">
<tables>
<table name="menu_item" alais="menu_item" />
<table name="modules" alias="modules" />
</tables>
<columns>
<column name="modules.module_srl" />
</columns>
<conditions>
<condition operation="equal" column="menu_item.menu_srl" var="menu_srl" notnull="notnull" />
<condition operation="equal" column="menu_item.url" default="modules.mid" notnull="notnull" pipe="and" />
</conditions>
</query>

View file

@ -0,0 +1,11 @@
<query id="updateModuleLayout" action="update">
<tables>
<table name="modules" />
</tables>
<columns>
<column name="layout_srl" var="layout_srl" />
</columns>
<conditions>
<condition operation="in" column="module_srl" var="module_srls" notnull="notnull"/>
</conditions>
</query>