diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 09c974759..269b86494 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -177,7 +177,8 @@ } // 현재 페이지의 정보를 $zbxe_url이라는 변수로 등록 (common/tpl/common_header.tpl에서 javascript 변수로 설정함) - if($_REQUEST['mid']) $zbxe_url = sprintf('mid=%s',$_REQUEST['mid']); + //if($_REQUEST['mid']) $zbxe_url = sprintf('mid=%s',$_REQUEST['mid']); + if($this->mid) $zbxe_url = sprintf('mid=%s',$this->mid); elseif($_REQUEST['module']) $zbxe_url = sprintf('module=%s',$_REQUEST['module']); elseif($_REQUEST['document_srl']) $zbxe_url = sprintf('mid=%s', $this->mid); else $zbxe_url = Context::getRequestUri(); diff --git a/layouts/sample_blog/conf/info.xml b/layouts/sample_blog/conf/info.xml new file mode 100644 index 000000000..dafba288b --- /dev/null +++ b/layouts/sample_blog/conf/info.xml @@ -0,0 +1,46 @@ + + + 견본 레이아웃 + + 제로 + + 견본 레이아웃입니다. + 가장 기본적인 기능으로 이루어져 있습니다. + + + + + 상단 제목 + text + 레이아웃의 상단에 표시할 제목을 입력하세요. + + + 메인 메뉴 명 + text + 트리메뉴의 가장 상위에 표시될 이름을 입력하세요. + + + 컬러셋 + select + 원하시는 컬러셋을 선택해주세요. + + 적색 + red + + + 청색 + blue + + + + + + 주 메뉴 + 2 + + + 하단 메뉴 + 1 + + + diff --git a/layouts/sample_blog/css/layout.css b/layouts/sample_blog/css/layout.css new file mode 100644 index 000000000..a489162df --- /dev/null +++ b/layouts/sample_blog/css/layout.css @@ -0,0 +1,192 @@ +@charset "utf-8"; + +body { + margin:0px; + padding:0px; +} + +/** + * 레이아웃 style + **/ + +/** + * 상단 로고 및 메인 1차 메뉴 + **/ +.layout_top { + margin:10px 10px 0px 10px; +} + +/* 상단 로고 부분 */ +.layout_logo A { + font-weight:bold; + font-size:16pt; + color:#888888; + text-decoration:none; +} + +/* 상단 1차 메뉴 */ +.layout_first_menu { + border-bottom:2px solid #DDDDDD; + width:100%; + text-align:right; + padding:3px 0px 3px 0px; +} + +/** + * 좌측 메뉴 및 메인 2차 메뉴, 로그인 플러그인 및 기타 + **/ +.layout_left { + width:220px; + float:left; + margin-top:10px; + position:absolute; + left:10px; + z-index:10; +} + +/* 좌측 2차 메뉴 */ +.layout_second_menu { +} + +/* 좌측 관리자 메뉴 */ +.layout_admin { + margin-top:10px; + border:3px solid #EEEEEE; + padding:5px; + text-align:center; +} + +.layout_admin A { + color:#AAAAAA; + text-decoration:none; +} + +/* 컨텐츠 */ +.layout_content { + position:absolute; + left:0px; + padding:10px 10px 0px 240px; + z-index:1; +} + +#content { +} + +/** + * 하단 메뉴 영역 + **/ +.layout_bottom { + clear:both; + margin-top:20px; +} + +/* 하단 메뉴 */ +.layout_bottom_menu { + width:100%; + text-align:center; +} + +/** + * 메뉴 style, main_menu:1~3차, bottom_menu로 구성 + **/ + +/* 1차 메뉴 */ +.first_menu { + background-color:#999999; + padding:3px 10px 3px 10px; + margin-left:5px; +} + +.first_menu A { + font-weight:normal; + color:#FFFFFF; + text-decoration:none; +} + +.first_menu_selected { + background-color:#000000; + padding:3px 10px 3px 10px; + margin-left:5px; +} + +.first_menu_selected A { + color:#FFFFFF; + font-weight:bold; + text-decoration:none; +} + +/* 2차 메뉴 */ +.second_menu { + padding:5px 0px 5px 5px; + background-color:#AAAAAA; + display:block; + border-bottom:1px solid #999999; +} + +.second_menu A { + color:#FFFFFF; + text-decoration:none; + font-weight:normal; +} + +.second_menu_selected { + padding:5px 0px 5px 5px; + background-color:#666666; + display:block; + border-bottom:1px solid #444444; +} + +.second_menu_selected A { + color:#FFFFFF; + font-weight:bold; + text-decoration:none; +} + +/* 3차 메뉴 */ +.third_menu { + padding:5px 0px 5px 20px; + border-bottom:1px solid #EEEEEE; + display:block; +} + +.third_menu A { + color:#000000; + text-decoration:none; +} + +.third_menu_selected { + padding:5px 0px 5px 20px; + border-bottom:1px solid #EEEEEE; + font-weight:bold; + display:block; + background-color:#EFEFEF; +} + +.third_menu_selected A { + color:#000000; + font-weight:bold; + text-decoration:none; +} + +/* 하단 메뉴 */ +.bottom_menu { + margin-right:5px; + font-weight:normal; +} + +.bottom_menu A { + color:#000000; + text-decoration:none; +} + +.bottom_menu_selected { + margin-right:5px; + font-weight:bold; +} + +.bottom_menu_selected A { + color:#000000; + font-weight:bold; + text-decoration:none; +} + diff --git a/layouts/sample_blog/layout.html b/layouts/sample_blog/layout.html new file mode 100644 index 000000000..d03e19cd9 --- /dev/null +++ b/layouts/sample_blog/layout.html @@ -0,0 +1,58 @@ + + + + + + + +
+ + +
+ + + +
+ +
+ + +
+ + + + +
+ +
+ + + +
+ {$lang->cmd_layout_management} +
+ +
+ + +
+
{$content}
+ + +
+
+ +
+
+ +
diff --git a/layouts/sample_layout_js_menu/conf/info.xml b/layouts/sample_layout_js_menu/conf/info.xml index dafba288b..eaab5a308 100644 --- a/layouts/sample_layout_js_menu/conf/info.xml +++ b/layouts/sample_layout_js_menu/conf/info.xml @@ -1,11 +1,12 @@ - 견본 레이아웃 + 견본 레이아웃 (JS 메뉴) 제로 - 견본 레이아웃입니다. - 가장 기본적인 기능으로 이루어져 있습니다. + 가장 기본적인 기능으로 이루어진 견본 레이아웃입니다. + main_menu, bottom_menu 2개의 메뉴로 구성되어 있으며 각 메뉴의 출력은 javascript 함수를 이용해서 출력합니다. + 레이아웃을 만들때 편리하지만 자유도가 떨어집니다. diff --git a/layouts/sample_layout_php_menu/conf/info.xml b/layouts/sample_layout_php_menu/conf/info.xml index 9787870ca..47e3b14fd 100644 --- a/layouts/sample_layout_php_menu/conf/info.xml +++ b/layouts/sample_layout_php_menu/conf/info.xml @@ -1,11 +1,12 @@ - 블로그 견본 레이아웃 + 견본 레이아웃 (PHP 메뉴) 제로 - 블로그 형태의 견본 레이아웃입니다. - 가장 기본적인 기능으로 이루어져 있습니다. + 가장 기본적인 기능으로 이루어진 견본 레이아웃입니다. + main_menu, bottom_menu 2개의 메뉴로 구성되어 있으며 각 메뉴의 출력은 php 코드로 하게 됩니다. + 레이아웃을 만들때 js menu 보다는 복잡하지만 자유도가 높습니다. diff --git a/layouts/sample_layout_php_menu/css/layout.css b/layouts/sample_layout_php_menu/css/layout.css new file mode 100644 index 000000000..a489162df --- /dev/null +++ b/layouts/sample_layout_php_menu/css/layout.css @@ -0,0 +1,192 @@ +@charset "utf-8"; + +body { + margin:0px; + padding:0px; +} + +/** + * 레이아웃 style + **/ + +/** + * 상단 로고 및 메인 1차 메뉴 + **/ +.layout_top { + margin:10px 10px 0px 10px; +} + +/* 상단 로고 부분 */ +.layout_logo A { + font-weight:bold; + font-size:16pt; + color:#888888; + text-decoration:none; +} + +/* 상단 1차 메뉴 */ +.layout_first_menu { + border-bottom:2px solid #DDDDDD; + width:100%; + text-align:right; + padding:3px 0px 3px 0px; +} + +/** + * 좌측 메뉴 및 메인 2차 메뉴, 로그인 플러그인 및 기타 + **/ +.layout_left { + width:220px; + float:left; + margin-top:10px; + position:absolute; + left:10px; + z-index:10; +} + +/* 좌측 2차 메뉴 */ +.layout_second_menu { +} + +/* 좌측 관리자 메뉴 */ +.layout_admin { + margin-top:10px; + border:3px solid #EEEEEE; + padding:5px; + text-align:center; +} + +.layout_admin A { + color:#AAAAAA; + text-decoration:none; +} + +/* 컨텐츠 */ +.layout_content { + position:absolute; + left:0px; + padding:10px 10px 0px 240px; + z-index:1; +} + +#content { +} + +/** + * 하단 메뉴 영역 + **/ +.layout_bottom { + clear:both; + margin-top:20px; +} + +/* 하단 메뉴 */ +.layout_bottom_menu { + width:100%; + text-align:center; +} + +/** + * 메뉴 style, main_menu:1~3차, bottom_menu로 구성 + **/ + +/* 1차 메뉴 */ +.first_menu { + background-color:#999999; + padding:3px 10px 3px 10px; + margin-left:5px; +} + +.first_menu A { + font-weight:normal; + color:#FFFFFF; + text-decoration:none; +} + +.first_menu_selected { + background-color:#000000; + padding:3px 10px 3px 10px; + margin-left:5px; +} + +.first_menu_selected A { + color:#FFFFFF; + font-weight:bold; + text-decoration:none; +} + +/* 2차 메뉴 */ +.second_menu { + padding:5px 0px 5px 5px; + background-color:#AAAAAA; + display:block; + border-bottom:1px solid #999999; +} + +.second_menu A { + color:#FFFFFF; + text-decoration:none; + font-weight:normal; +} + +.second_menu_selected { + padding:5px 0px 5px 5px; + background-color:#666666; + display:block; + border-bottom:1px solid #444444; +} + +.second_menu_selected A { + color:#FFFFFF; + font-weight:bold; + text-decoration:none; +} + +/* 3차 메뉴 */ +.third_menu { + padding:5px 0px 5px 20px; + border-bottom:1px solid #EEEEEE; + display:block; +} + +.third_menu A { + color:#000000; + text-decoration:none; +} + +.third_menu_selected { + padding:5px 0px 5px 20px; + border-bottom:1px solid #EEEEEE; + font-weight:bold; + display:block; + background-color:#EFEFEF; +} + +.third_menu_selected A { + color:#000000; + font-weight:bold; + text-decoration:none; +} + +/* 하단 메뉴 */ +.bottom_menu { + margin-right:5px; + font-weight:normal; +} + +.bottom_menu A { + color:#000000; + text-decoration:none; +} + +.bottom_menu_selected { + margin-right:5px; + font-weight:bold; +} + +.bottom_menu_selected A { + color:#000000; + font-weight:bold; + text-decoration:none; +} + diff --git a/layouts/sample_layout_php_menu/js/layout.js b/layouts/sample_layout_php_menu/js/layout.js deleted file mode 100644 index 7dddafb8b..000000000 --- a/layouts/sample_layout_php_menu/js/layout.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * @brief sample_layout에서 메뉴를 출력하는 함수 - * text : 메뉴 명 - * href : 연결할 주소 - * open_window : [Y|N] 새창으로 띄울 것인지에 대한 값 - * normal_btn : 이미지 버튼 - * hover_btn : 이미지 버튼일 경우 mouseover 일 경우 - * active_btn : 선택되어 있을 경우의 이미지 - * modifier : 구분자 (
또는 null 이 사용 예상) - * selected_class : 이미지 버튼이 아닐 경우 선택된 문자열에 대한 css class (지정 안되어 있으면 ..로 처리 - * selected : 선택된 메뉴라면 true, 아니면 false - **/ -function xe_print_menu(text, href, open_window, normal_btn, hover_btn, active_btn, modifier, selected_class, selected) { - // 텍스트나 이미지 버튼이 없으면 패스~ - if(!text && !normal_btn) return; - - var html = ""; - - // 텍스트일 경우 - if(!normal_btn) { - // 선택되었을 때의 class or style 지정 - if(selected) { - if(!selected_class) selected_class = "style=\"font-weight:bold\""; - else selected_class = "class=\""+selected_class+"\""; - } else { - selected_class = ""; - } - - if(open_window == "Y") html = ""+text+""; - else html = ""+text+""; - - // 이미지 버튼 일 경우 - } else if(normal_btn) { - if(!hover_btn) hover_btn = normal_btn; - if(!active_btn) active_btn = normal_btn; - if(selected) normal_btn = active_btn; - - if(open_window == "Y") html = "\""+text+"\""; - else html = "\""+text+"\""; - - - } - - // modifier 출력 - if(modifier) html += modifier; - - document.write(html); -} diff --git a/layouts/sample_layout_php_menu/layout.html b/layouts/sample_layout_php_menu/layout.html index 9b3e17461..99d7d0ddb 100644 --- a/layouts/sample_layout_php_menu/layout.html +++ b/layouts/sample_layout_php_menu/layout.html @@ -1,123 +1,100 @@ - - + + - - + +
+ +
-
- {$layout_info->top_title} + + -
+ + {@ $class_name = 'first_menu_selected'} + {@ $second_menu_list = $val['list']} + + {@ $class_name = 'first_menu'} + -
- + + {$val['text']} + - - - -
+ + {$v['text']} + + + -
- + + +
- - + +
+ - -
+ + {@ $class_name = 'bottom_menu_selected'} + + {@ $class_name = 'bottom_menu'} + + + {$val['text']} + + +
-
- - - - - - - - - - -
-
- -
- - - - - - - -
- - - - - - - -
- -
-
{$content}
-
-
- - - - - - - - - {@ $selected_style = 'style="font-weight:bold;"'} - - {@ $selected_style = ''; } - - - - {$val['text']} - - - - -
-
-
diff --git a/modules/layout/tpl/layout_menu_info.html b/modules/layout/tpl/layout_menu_info.html index 674fc08ab..bd7121438 100644 --- a/modules/layout/tpl/layout_menu_info.html +++ b/modules/layout/tpl/layout_menu_info.html @@ -19,7 +19,7 @@ {$lang->menu_url} - + {$lang->about_menu_url}