git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2343 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2007-08-12 04:37:49 +00:00
parent 8cee3b8019
commit 98a27e524f
4 changed files with 0 additions and 451 deletions

View file

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layout version="0.1">
<title xml:lang="ko">견본 레이아웃 (JS 메뉴)</title>
<title xml:lang="zh-CN">样本布局JS 菜单)</title>
<title xml:lang="en">Sample Layout (Menu in JS)</title>
<title xml:lang="es">Diseño predeterminado (menú JS)</title>
<title xml:lang="jp">レイアウトサンプル(JS)</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<name xml:lang="es">zero</name>
<name xml:lang="jp">Zero</name>
<description xml:lang="ko">
가장 기본적인 기능으로 이루어진 견본 레이아웃입니다.
main_menu, bottom_menu 2개의 메뉴로 구성되어 있으며 각 메뉴의 출력은 javascript 함수를 이용해서 출력합니다.
레이아웃을 만들때 편리하지만 자유도가 떨어집니다.
</description>
<description xml:lang="zh-CN">
此布局是最基本的功能形成的样本布局。
此布局由 main_menu, bottom_menu 两个菜单构成,每个菜单的呼出方式是利用 javascript 函数显示。
制作布局的时候方便的同时自由度相对落后。
</description>
<description xml:lang="en">
This is a sample layout consists of the most basic features.
It has two menues each named 'main_menu' and 'bottom_menu', and they are displayed by using Javascript function.
Javascript version is so convenient to create layouts, but reduces the degree of freedom though.
</description>
<description xml:lang="es">
Es el diseño predeterminado para funciónes basicos. Tiene 2 menús de main_menu, bottom_menu. La salida de cada menu usa funciónes de javascript. Es facil de manejar diseño, pero falta de libertad.
</description>
<description xml:lang="jp">
一番基本的な機能で構成されたレイアウトのサンプルです。「main_menu」と「bottom_menu」つのメニューで構成されていて、各メニューは「javascript」関数を用いて 出力します。 レイアウトをデザインする際に便利ですが、自由度は制限されます。
</description>
</author>
<extra_vars>
<var name="colorset" type="select">
<title xml:lang="ko">컬러셋</title>
<title xml:lang="zh-CN">颜色</title>
<title xml:lang="en">Colorset</title>
<title xml:lang="es">collección de colores</title>
<title xml:lang="jp">カラーセット</title>
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>
<description xml:lang="zh-CN">请选择颜色。</description>
<description xml:lang="en">Please select a colorset you want.</description>
<description xml:lang="es">Seleccióne la collección de colores.</description>
<description xml:lang="jp">お好みのカラーセットを選択してください。</description>
<options name="red">
<title xml:lang="ko">적색</title>
<title xml:lang="zh-CN">红色</title>
<title xml:lang="en">Red</title>
<title xml:lang="es">Rojo</title>
<title xml:lang="jp"></title>
<value>red</value>
</options>
<options name="blue">
<title xml:lang="ko">청색</title>
<title xml:lang="zh-CN">青色</title>
<title xml:lang="en">Blue</title>
<title xml:lang="es">Azul</title>
<title xml:lang="jp"></title>
<value>blue</value>
</options>
</var>
<var name="top_title" type="text">
<title xml:lang="ko">상단 제목</title>
<title xml:lang="zh-CN">顶部标题</title>
<title xml:lang="en">Title on the top</title>
<title xml:lang="es">Título</title>
<title xml:lang="jp">上段タイトル</title>
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
<description xml:lang="zh-CN">请输入布局顶部显示的标题。(网站名称)</description>
<description xml:lang="en">Please input a title to be displayed on the top of the layout.</description>
<description xml:lang="es">Escribe el título para la pagína de web.</description>
<description xml:lang="jp">レイアウトの上段に表示するタイトルを入力してください。</description>
</var>
<var name="index_url" type="text">
<title xml:lang="ko">홈 페이지 URL</title>
<title xml:lang="zh-CN">网站 URL</title>
<title xml:lang="en">Home page URL</title>
<title xml:lang="es">URL de pagína de web</title>
<title xml:lang="jp">ホームページ URL</title>
<description xml:lang="ko">로고나 제목을 클릭시에 이동할 홈 페이지 URL을 입력해 주세요.</description>
<description xml:lang="zh-CN">点击网站LOGO或标题时要移动的页面URL。</description>
<description xml:lang="en">Please input URL to the page that you want to be loaded when a logo or title is clicked.</description>
<description xml:lang="es">Escribe el URL para título.</description>
<description xml:lang="jp">ロゴまたはタイトルをクリックした際、移動するホームページの URL を入力してください。</description>
</var>
</extra_vars>
<menus>
<menu name="main_menu" default="true">
<title xml:lang="ko">주 메뉴</title>
<title xml:lang="zh-CN">主 菜单</title>
<title xml:lang="en">Main menu</title>
<title xml:lang="es">menú principal</title>
<title xml:lang="jp">メインメニュー</title>
<maxdepth>2</maxdepth>
</menu>
<menu name="bottom_menu">
<title xml:lang="ko">하단 메뉴 </title>
<title xml:lang="zh-CN">底部菜单</title>
<title xml:lang="en">Menu on the bottom </title>
<title xml:lang="es">sub menú </title>
<title xml:lang="jp">下段メニュー</title>
<maxdepth>1</maxdepth>
</menu>
</menus>
</layout>

View file

@ -1,188 +0,0 @@
@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;
}
/* 좌측 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 {
padding:10px 10px 0px 240px;
}
#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;
}

View file

@ -1,72 +0,0 @@
/**
* @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);
}
}

View file

@ -1,83 +0,0 @@
<!-- 메뉴를 출력하기 위한 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->index_url}"><!--@if(!$layout_info->top_title)-->top title<!--@else-->{$layout_info->top_title}<!--@end--></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_widget_output" widget="login_info" skin="default" colorset="normal" />
<!-- main_menu 2차 시작 -->
<div class="layout_second_menu">
<script type="text/javascript">
xe_print_menu('main_menu', 2, true);
</script>
</div>
<!--@if($grant->is_admin)-->
<!-- 관리자일 경우 레이아웃 관리 메뉴 -->
<div class="layout_admin">
<a href="{getUrl('act','dispLayoutAdminModify','layout_srl',$layout_info->layout_srl)}">{$lang->cmd_layout_management}</a> /
<a href="{getUrl('act','dispLayoutAdminEdit','layout_srl',$layout_info->layout_srl)}">{$lang->cmd_edit}</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>