git-svn-id: http://xe-core.googlecode.com/svn/trunk@1154 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-04-16 03:47:04 +00:00
parent 1cd21bc261
commit 6d512d606e
4 changed files with 217 additions and 7 deletions

View 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>

View file

@ -0,0 +1,48 @@
/**
* @brief sample_layout에서 메뉴를 출력하는 함수
* text : 메뉴
* href : 연결할 주소
* open_window : [Y|N] 새창으로 띄울 것인지에 대한
* normal_btn : 이미지 버튼
* hover_btn : 이미지 버튼일 경우 mouseover 경우
* active_btn : 선택되어 있을 경우의 이미지
* modifier : 구분자 ( <br /> 또는 null 사용 예상)
* selected_class : 이미지 버튼이 아닐 경우 선택된 문자열에 대한 css class (지정 안되어 있으면 <span style="font-weight:bold">..</span>
* 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 = "<span "+selected_class+"><a href=\"#\" onclick=\"winopen('"+href+"'); return false;\">"+text+"</a></span>";
else html = "<span "+selected_class+"><a href=\""+href+"\">"+text+"</a></span>";
// 이미지 버튼 일 경우
} 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 = "<a href=\"#\" onclick=\"winopen('"+href+"'); return false;\"><img src=\""+normal_btn+"\" border=\"0\" alt=\""+text+"\" onmouseover=\"this.src='"+hover_btn+"'\" onmouseout=\"this.src='"+normal_btn+"'\" /></a>";
else html = "<a href=\""+href+"\"><img src=\""+normal_btn+"\" border=\"0\" alt=\""+text+"\" onmouseover=\"this.src='"+hover_btn+"'\" onmouseout=\"this.src='"+normal_btn+"'\" /></a>";
}
// modifier 출력
if(modifier) html += modifier;
document.write(html);
}

View file

@ -0,0 +1,123 @@
<!-- 메뉴를 출력하기 위한 javascript 소스가 담긴 파일을 import -->
<!--%import("js/layout.js")-->
<!-- tree_menu.js를 이용한 트리 메뉴 호출 -->
<script type="text/javascript">
loadTreeMenu("{$main_menu->xml_file}", "main_menu", "menu", "{$layout_info->main_menu_name?$layout_info->main_menu_name:'home'}");
</script>
<div style="height:50px;border:1px solid;margin-bottom:10px;">
{$layout_info->top_title}
<div style="float:right">
<div>
<!-- main_menu 1차 시작 -->
<!-- 메뉴 표시 시작 : js/layout.js의 xe_print_menu() 함수를 이용해서 메뉴를 출력한다 (텍스트 혹은 이미지 버튼에 대한 처리를 위해서) -->
<script type="text/javascript">
<!--@foreach($main_menu->list as $key => $val)-->
xe_print_menu("{htmlspecialchars($val['text'])}","{htmlspecialchars($val['href'])}","{$val['open_window']}","{$val['normal_btn']}","{$val['hover_btn']}","{$val['active_btn']}","", "", {$val['selected']?'true':'false'});
<!-- 선택된 메뉴의 경우 2차 메뉴를 $second_menu_list에 설정 -->
<!--@if($val['selected'])-->
{@ $second_menu_list = $val['list']; }
<!--@end-->
<!--@end-->
<!-- 메뉴 표시 끝 -->
</script>
<!-- main_menu 1차 끝 -->
</div>
<div>
<!-- main_menu 2차 시작 -->
<!-- 메뉴 표시 시작 : js/layout.js의 xe_print_menu() 함수를 이용해서 메뉴를 출력한다 (텍스트 혹은 이미지 버튼에 대한 처리를 위해서) -->
<script type="text/javascript">
<!--@foreach($second_menu_list as $key => $val)-->
xe_print_menu("{htmlspecialchars($val['text'])}","{htmlspecialchars($val['href'])}","{$val['open_window']}","{$val['normal_btn']}","{$val['hover_btn']}","{$val['active_btn']}","", "", {$val['selected']?'true':'false'});
<!-- 선택된 메뉴의 경우 3차 메뉴를 $third_menu_list에 설정 -->
<!--@if($val['selected'])-->
{@ $third_menu_list = $val['list']; }
<!--@end-->
<!--@end-->
<!-- 메뉴 표시 끝 -->
</script>
<!-- main_menu 2차 끝 -->
</div>
</div>
</div>
<div>
<table border="0" width="100%" style="table-layout:fixed">
<col width="220" />
<col width="*" />
<tr valign="top">
<td>
<div>
<img src="./common/tpl/images/blank.gif" class="zbxe_plugin_output" plugin="login_info" skin="default" colorset="normal" style="width:100px;height:100px;"/>
</div>
<div id="menu"></div>
<!--@if($logged_info->is_admin == 'Y')-->
<div>
<a href="#" onclick="location.href='{getUrl('act','dispLayoutAdminMenu','layout_srl',$layout_info->layout_srl)}';return false;">{$lang->cmd_layout_management}</a>
</div>
<!--@end-->
<!--@if($third_menu_list)-->
<div>
<!-- main_menu 3차 시작 -->
<!-- 메뉴 표시 시작 : js/layout.js의 xe_print_menu() 함수를 이용해서 메뉴를 출력한다 (텍스트 혹은 이미지 버튼에 대한 처리를 위해서) -->
<script type="text/javascript">
<!--@foreach($third_menu_list as $key => $val)-->
xe_print_menu("{htmlspecialchars($val['text'])}","{htmlspecialchars($val['href'])}","{$val['open_window']}","{$val['normal_btn']}","{$val['hover_btn']}","{$val['active_btn']}","<br>","",{$val['selected']?'true':'false'});
<!--@end-->
<!-- 메뉴 표시 끝 -->
</script>
<!-- main_menu 3차 끝 -->
</div>
<!--@end-->
</td>
<td>
<div id="content">{$content}</div>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<div style="margin-top:20px;">
<!-- bottom_menu 메뉴 시작 -->
<!--@foreach($bottom_menu->list as $key => $val)--><!--@if($val['text'])-->
<!-- 1. 이미지 버튼일 경우 -->
<!-- 2. 이미지 버튼이 아닐 경우 -->
<!-- 선택된 메뉴일 경우의 class(or style) 지정 -->
<!--@if($val['selected'])-->
{@ $selected_style = 'style="font-weight:bold;"'}
<!--@else-->
{@ $selected_style = ''; }
<!--@end-->
<span {$selected_style}>
<a href="#" onclick="return move_url('{$val['href']}','{$val['open_window']}');">{$val['text']}</a>
</span>
<!-- 메뉴 표시 끝 -->
<!--@end--><!--@end-->
</div>
</td>
</tr>
</table>
</div>

View file

@ -1,12 +1,6 @@
<!-- 메뉴를 출력하기 위한 javascript 소스가 담긴 파일을 import --> <!-- 메뉴를 출력하기 위한 javascript 소스가 담긴 파일을 import -->
<!--%import("js/layout.js")--> <!--%import("js/layout.js")-->
<!-- tree_menu.js를 이용한 트리 메뉴 호출 -->
<script type="text/javascript">
loadTreeMenu("{$main_menu->xml_file}", "main_menu", "menu", "{$layout_info->main_menu_name?$layout_info->main_menu_name:'home'}");
</script>
<div style="height:50px;border:1px solid;margin-bottom:10px;"> <div style="height:50px;border:1px solid;margin-bottom:10px;">
{$layout_info->top_title} {$layout_info->top_title}
@ -66,7 +60,6 @@
<img src="./common/tpl/images/blank.gif" class="zbxe_plugin_output" plugin="login_info" skin="default" colorset="normal" style="width:100px;height:100px;"/> <img src="./common/tpl/images/blank.gif" class="zbxe_plugin_output" plugin="login_info" skin="default" colorset="normal" style="width:100px;height:100px;"/>
</div> </div>
<div id="menu"></div>
<!--@if($logged_info->is_admin == 'Y')--> <!--@if($logged_info->is_admin == 'Y')-->
<div> <div>
<a href="#" onclick="location.href='{getUrl('act','dispLayoutAdminMenu','layout_srl',$layout_info->layout_srl)}';return false;">{$lang->cmd_layout_management}</a> <a href="#" onclick="location.href='{getUrl('act','dispLayoutAdminMenu','layout_srl',$layout_info->layout_srl)}';return false;">{$lang->cmd_layout_management}</a>