From 1a62c23c7043cf5c6c82e5b204ee0bc9a075d4e8 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 8 Mar 2007 05:54:13 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@329 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/display/DisplayHandler.class.php | 2 +- classes/module/ModuleHandler.class.php | 12 +++++++++++- layouts/sample_layout/layout.html | 10 ++++++++++ modules/layout/layout.controller.php | 17 +++++++++++++++-- modules/layout/tpl.admin/layout_menu_info.html | 10 +++++----- 5 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 layouts/sample_layout/layout.html diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 19fd3b602..097ad0121 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -33,7 +33,7 @@ require_once("./classes/template/TemplateHandler.class.php"); $oTemplate = new TemplateHandler(); - $output = $oTemplate->compile($oModule->layout_path, $oModule->layout_file); + $output = $oTemplate->compile($oModule->getLayoutPath(), $oModule->getLayoutFile()); } else { $output = $content; } diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index c933f2870..0bc942509 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -162,9 +162,19 @@ } } + // 해당 모듈에 layout_srl이 있는지 확인 + if($oModule->module_info->layout_srl) { + // layout_srl이 있으면 해당 레이아웃 정보를 가져와 layout_path/ layout_file 위치 변경 + $oLayoutModel = &getModel('layout'); + $layout_info = $oLayoutModel->getLayout($oModule->module_info->layout_srl); + Context::set('layout_info', $layout_info); + + $oModule->setLayoutPath($layout_info->path); + $oModule->setLayoutFile('layout'); + } + // 컨텐츠 출력 $oDisplayHandler = new DisplayHandler(); - $oDisplayHandler->printContent($oModule); // DB 및 기타 자원의 종결 처리 diff --git a/layouts/sample_layout/layout.html b/layouts/sample_layout/layout.html new file mode 100644 index 000000000..55096b5d1 --- /dev/null +++ b/layouts/sample_layout/layout.html @@ -0,0 +1,10 @@ + + + + + +
{$content}
+ + diff --git a/modules/layout/layout.controller.php b/modules/layout/layout.controller.php index 69dcaa07b..08df777ec 100644 --- a/modules/layout/layout.controller.php +++ b/modules/layout/layout.controller.php @@ -242,6 +242,7 @@ $tree[$parent_srl][$menu_srl] = $node; } + // 파일 생성 $xml_buff = "".$this->getXmlTree($tree[0], $tree).""; @@ -261,9 +262,21 @@ $child_buff = ""; if($menu_srl&&$tree[$menu_srl]) $child_buff = $this->getXmlTree($tree[$menu_srl], $tree); + + $attribute = sprintf( + 'node_srl="%s" text="%s" url="%s" open_window="%s" normal_btn="%s" hover_btn="%s" active_btn="%s" group_srls="%s"', + $node->menu_srl, + str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->name), + str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->url), + $node->open_window, + str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->normal_btn), + str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->hover_btn), + str_replace(array('&','"','<','>'),array('&','"','<','>'),$node->active_btn), + $node->group_srls + ); - if($child_buff) $buff .= sprintf('%s', $node->menu_srl, $node->name, $child_buff); - else $buff .= sprintf('', $node->menu_srl, $node->name); + if($child_buff) $buff .= sprintf('%s', $attribute, $child_buff); + else $buff .= sprintf('', $attribute); } return $buff; } diff --git a/modules/layout/tpl.admin/layout_menu_info.html b/modules/layout/tpl.admin/layout_menu_info.html index fc0e5a280..d28665683 100644 --- a/modules/layout/tpl.admin/layout_menu_info.html +++ b/modules/layout/tpl.admin/layout_menu_info.html @@ -12,14 +12,14 @@ {$lang->menu_name} - + {$lang->about_menu_name} {$lang->menu_url} - + {$lang->about_menu_url} @@ -37,15 +37,15 @@ {$lang->menu_normal_btn} - + {$lang->menu_hover_btn} - + {$lang->menu_active_btn} - + {$lang->menu_group_srls}