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
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
{$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 = "
";
- else html = "
";
-
-
- }
-
- // 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 @@
-
-
+
+
-
-
+
+