mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-31 17:19:59 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/trunk@1162 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
558e884eb5
commit
02d561c1e7
4 changed files with 0 additions and 0 deletions
46
layouts/sample_layout_js_menu/conf/info.xml
Normal file
46
layouts/sample_layout_js_menu/conf/info.xml
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout version="0.1">
|
||||
<title xml:lang="ko">견본 레이아웃</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<description xml:lang="ko">
|
||||
견본 레이아웃입니다.
|
||||
가장 기본적인 기능으로 이루어져 있습니다.
|
||||
</description>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var id="top_title">
|
||||
<name xml:lang="ko">상단 제목</name>
|
||||
<type>text</type>
|
||||
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
|
||||
</var>
|
||||
<var id="main_menu_name">
|
||||
<name xml:lang="ko">메인 메뉴 명</name>
|
||||
<type>text</type>
|
||||
<description xml:lang="ko">트리메뉴의 가장 상위에 표시될 이름을 입력하세요.</description>
|
||||
</var>
|
||||
<var id="colorset">
|
||||
<name xml:lang="ko">컬러셋</name>
|
||||
<type>select</type>
|
||||
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>
|
||||
<options>
|
||||
<name xml:lang="ko">적색</name>
|
||||
<value>red</value>
|
||||
</options>
|
||||
<options>
|
||||
<name xml:lang="ko">청색</name>
|
||||
<value>blue</value>
|
||||
</options>
|
||||
</var>
|
||||
</extra_vars>
|
||||
<menus>
|
||||
<menu id="main_menu" default="true">
|
||||
<name xml:lang="ko">주 메뉴</name>
|
||||
<maxdepth>2</maxdepth>
|
||||
</menu>
|
||||
<menu id="bottom_menu">
|
||||
<name xml:lang="ko">하단 메뉴 </name>
|
||||
<maxdepth>1</maxdepth>
|
||||
</menu>
|
||||
</menus>
|
||||
</layout>
|
||||
192
layouts/sample_layout_js_menu/css/layout.css
Normal file
192
layouts/sample_layout_js_menu/css/layout.css
Normal file
|
|
@ -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;
|
||||
}
|
||||
|
||||
72
layouts/sample_layout_js_menu/js/layout.js
Normal file
72
layouts/sample_layout_js_menu/js/layout.js
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/**
|
||||
* @brief sample_layout 메뉴 출력용 javascript
|
||||
* @author zero (zero@nzeo.com)
|
||||
**/
|
||||
|
||||
/**
|
||||
* 메뉴를 담을 javascript 변수
|
||||
*
|
||||
* xe_layout_menu 구조
|
||||
*
|
||||
* xe_layout_menu[메뉴명][depth][menu_srl] = Object
|
||||
*
|
||||
* Object {
|
||||
* text : 메뉴 명
|
||||
* href : 연결할 주소
|
||||
* open_window : [Y|N] 새창으로 띄울 것인지에 대한 값
|
||||
* normal_btn : 이미지 버튼
|
||||
* hover_btn : 이미지 버튼일 경우 mouseover 일 경우
|
||||
* active_btn : 선택되어 있을 경우의 이미지
|
||||
* className : normal 상태의 className
|
||||
* selectedClassName : 선택된 상태의 className
|
||||
* selected : 선택된 메뉴라면 true, 아니면 false
|
||||
* }
|
||||
**/
|
||||
var xe_layout_menu = new Array();
|
||||
|
||||
/**
|
||||
* @brief sample_layout에서 메뉴를 출력하는 함수
|
||||
* menu_name : 레이아웃 설정상의 메뉴 이름
|
||||
* depth : 입력된 단계
|
||||
* print_child : true로 하면 메뉴 출력중 하위 메뉴가 있을 시 출력
|
||||
**/
|
||||
function xe_print_menu(menu_name, depth, print_child) {
|
||||
if(typeof(xe_layout_menu[menu_name])=='undefined' || typeof(xe_layout_menu[menu_name][depth])=='undefined') return;
|
||||
if(typeof(print_child)=='undefined') print_child = false;
|
||||
|
||||
var menu_list = xe_layout_menu[menu_name][depth];
|
||||
var html = "";
|
||||
|
||||
for(var menu_key in menu_list) {
|
||||
var menu_obj = menu_list[menu_key];
|
||||
if(typeof(menu_obj)=='undefined'||!menu_obj) continue;
|
||||
|
||||
if(!menu_obj.text && !menu_obj.normal_btn) continue;
|
||||
|
||||
var className = menu_obj.className;
|
||||
if(menu_obj.selected) className = menu_obj.selectedClassName;
|
||||
|
||||
if(!menu_obj.href) menu_obj.href = "#";
|
||||
|
||||
// 텍스트일 경우
|
||||
if(!menu_obj.normal_btn) {
|
||||
|
||||
if(menu_obj.open_window == "Y") html = "<span class=\""+className+"\"><a href=\"#\" onclick=\"winopen('"+menu_obj.href+"'); return false;\">"+menu_obj.text+"</a></span>";
|
||||
else html = "<span class=\""+className+"\"><a href=\""+menu_obj.href+"\">"+menu_obj.text+"</a></span>";
|
||||
|
||||
// 이미지 버튼 일 경우
|
||||
} else if(menu_obj.normal_btn) {
|
||||
if(!menu_obj.hover_btn) menu_obj.hover_btn = menu_obj.normal_btn;
|
||||
if(!menu_obj.active_btn) menu_obj.active_btn = menu_obj.normal_btn;
|
||||
|
||||
if(menu_obj.selected) menu_obj.normal_btn = menu_obj.active_btn;
|
||||
|
||||
if(menu_obj.open_window == "Y") html = "<span class=\""+className+"\"><a href=\"#\" onclick=\"winopen('"+menu_obj.href+"'); return false;\"><img src=\""+menu_obj.normal_btn+"\" border=\"0\" alt=\""+menu_obj.text+"\" onmouseover=\"this.src='"+menu_obj.hover_btn+"'\" onmouseout=\"this.src='"+menu_obj.normal_btn+"'\" /></a></span>";
|
||||
else html = "<span class=\""+className+"\"><a href=\""+menu_obj.href+"\"><img src=\""+menu_obj.normal_btn+"\" border=\"0\" alt=\""+menu_obj.text+"\" onmouseover=\"this.src='"+menu_obj.hover_btn+"'\" onmouseout=\"this.src='"+menu_obj.normal_btn+"'\" /></a></span>";
|
||||
}
|
||||
|
||||
if(html) document.write(html);
|
||||
|
||||
if(print_child && menu_obj.selected && typeof(xe_layout_menu[menu_name][depth+1])!='undefined') xe_print_menu('main_menu', depth+1, true);
|
||||
}
|
||||
}
|
||||
82
layouts/sample_layout_js_menu/layout.html
Normal file
82
layouts/sample_layout_js_menu/layout.html
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
<!-- 메뉴를 출력하기 위한 javascript 소스가 담긴 파일을 import -->
|
||||
<!--%import("js/layout.js")-->
|
||||
|
||||
<!-- 레이아웃과 연동될 css 파일 import -->
|
||||
<!--%import("css/layout.css")-->
|
||||
|
||||
<!-- 메뉴를 미리 javscript object에 등록 (이 부분은 그냥 그대로 두면 됨) -->
|
||||
<script type="text/javascript">
|
||||
xe_layout_menu['main_menu'] = new Array();
|
||||
xe_layout_menu['main_menu'][1] = new Array();
|
||||
<!--@foreach($main_menu->list as $first_key => $first_menu)-->
|
||||
xe_layout_menu['main_menu'][1][{$first_key}] = { "text":"{htmlspecialchars($first_menu['text'])}","href":"{htmlspecialchars($first_menu['href'])}","open_window":"{$first_menu['open_window']}","normal_btn":"{$first_menu['normal_btn']}","hover_btn":"{$first_menu['hover_btn']}","active_btn":"{$first_menu['active_btn']}","className":"first_menu", "selectedClassName":"first_menu_selected", "selected":{$first_menu['selected']?'true':'false'}};
|
||||
<!--@if($first_menu['selected'])-->
|
||||
xe_layout_menu['main_menu'][2] = new Array();
|
||||
<!--@foreach($first_menu['list'] as $second_key => $second_menu)-->
|
||||
xe_layout_menu['main_menu'][2][{$second_key}] = { "text":"{htmlspecialchars($second_menu['text'])}","href":"{htmlspecialchars($second_menu['href'])}","open_window":"{$second_menu['open_window']}","normal_btn":"{$second_menu['normal_btn']}","hover_btn":"{$second_menu['hover_btn']}","active_btn":"{$second_menu['active_btn']}","className":"second_menu", "selectedClassName":"second_menu_selected", "selected":{$second_menu['selected']?'true':'false'}};
|
||||
<!--@if($second_menu['selected'])-->
|
||||
xe_layout_menu['main_menu'][3] = new Array();
|
||||
<!--@foreach($second_menu['list'] as $third_key => $third_menu)-->
|
||||
xe_layout_menu['main_menu'][3][{$third_key}] = { "text":"{htmlspecialchars($third_menu['text'])}","href":"{htmlspecialchars($third_menu['href'])}","open_window":"{$third_menu['open_window']}","normal_btn":"{$third_menu['normal_btn']}","hover_btn":"{$third_menu['hover_btn']}","active_btn":"{$third_menu['active_btn']}","className":"third_menu", "selectedClassName":"third_menu_selected", "selected":{$third_menu['selected']?'true':'false'}};
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
<!--@end-->
|
||||
xe_layout_menu['bottom_menu'] = new Array();
|
||||
xe_layout_menu['bottom_menu'][1] = new Array();
|
||||
<!--@foreach($bottom_menu->list as $first_menu)-->
|
||||
xe_layout_menu['bottom_menu'][1][{$first_key}] = { "text":"{htmlspecialchars($first_menu['text'])}","href":"{htmlspecialchars($first_menu['href'])}","open_window":"{$first_menu['open_window']}","normal_btn":"{$first_menu['normal_btn']}","hover_btn":"{$first_menu['hover_btn']}","active_btn":"{$first_menu['active_btn']}","className":"bottom_menu", "selectedClassName":"bottom_menu_selected", "selected":{$first_menu['selected']?'true':'false'}};
|
||||
<!--@end-->
|
||||
</script>
|
||||
|
||||
<!-- 상단 로고 및 main_menu 1차 출력 -->
|
||||
<div class="layout_top">
|
||||
<div class="layout_logo">
|
||||
<a href="./">{$layout_info->top_title}</a>
|
||||
</div>
|
||||
|
||||
<div class="layout_first_menu">
|
||||
<!-- main_menu 1차 시작 -->
|
||||
<script type="text/javascript">
|
||||
xe_print_menu('main_menu', 1);
|
||||
</script>
|
||||
<!-- main_menu 1차 끝 -->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 왼쪽 2차 메뉴 및 로그인과 기타 플러그인 부분 -->
|
||||
<div class="layout_left">
|
||||
<!-- 로그인 플러그인 -->
|
||||
<img src="./common/tpl/images/blank.gif" class="zbxe_plugin_output" plugin="login_info" skin="default" colorset="normal" style="width:100px;height:100px;"/>
|
||||
|
||||
<!-- main_menu 2차 시작 -->
|
||||
<div class="layout_second_menu">
|
||||
<script type="text/javascript">
|
||||
xe_print_menu('main_menu', 2, true);
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<!--@if($logged_info->is_admin == 'Y')-->
|
||||
<!-- 관리자일 경우 레이아웃 관리 메뉴 -->
|
||||
<div class="layout_admin">
|
||||
<a href="#" onclick="location.href='{getUrl('act','dispLayoutAdminMenu','layout_srl',$layout_info->layout_srl)}';return false;">{$lang->cmd_layout_management}</a>
|
||||
</div>
|
||||
<!--@end-->
|
||||
</div>
|
||||
|
||||
<!-- 컨텐츠 출력 부분 -->
|
||||
<div class="layout_content">
|
||||
<div id="content">{$content}</div>
|
||||
|
||||
<!-- bottom_menu 메뉴 시작 -->
|
||||
<div class="layout_bottom">
|
||||
<div class="layout_bottom_menu">
|
||||
<script type="text/javascript">
|
||||
xe_print_menu('bottom_menu', 1);
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue