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

This commit is contained in:
zero 2007-04-19 05:38:03 +00:00
parent f0c54c5c4d
commit ed948775fe
17 changed files with 346 additions and 104 deletions

View file

@ -9,22 +9,22 @@
</description>
</author>
<extra_vars>
<var id="top_title">
<var name="top_title">
<name xml:lang="ko">상단 제목</name>
<type>text</type>
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
</var>
<var id="main_menu_name">
<var name="main_menu_name">
<name xml:lang="ko">메인 메뉴 명</name>
<type>text</type>
<description xml:lang="ko">트리메뉴의 가장 상위에 표시될 이름을 입력하세요.</description>
</var>
<var id="home_url">
<var name="home_url">
<name xml:lang="ko">홈 url</name>
<type>text</type>
<description xml:lang="ko">home이나 상단 제목 클릭시 이동할 홈 url을 입력해주세요.</description>
</var>
<var id="colorset">
<var name="colorset">
<name xml:lang="ko">컬러셋</name>
<type>select</type>
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>

View file

@ -10,17 +10,17 @@
</description>
</author>
<extra_vars>
<var id="top_title">
<var name="top_title">
<name xml:lang="ko">상단 제목</name>
<type>text</type>
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
</var>
<var id="main_menu_name">
<var name="main_menu_name">
<name xml:lang="ko">메인 메뉴 명</name>
<type>text</type>
<description xml:lang="ko">트리메뉴의 가장 상위에 표시될 이름을 입력하세요.</description>
</var>
<var id="colorset">
<var name="colorset">
<name xml:lang="ko">컬러셋</name>
<type>select</type>
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>

View file

@ -10,17 +10,17 @@
</description>
</author>
<extra_vars>
<var id="top_title">
<var name="top_title">
<name xml:lang="ko">상단 제목</name>
<type>text</type>
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
</var>
<var id="main_menu_name">
<var name="main_menu_name">
<name xml:lang="ko">메인 메뉴 명</name>
<type>text</type>
<description xml:lang="ko">트리메뉴의 가장 상위에 표시될 이름을 입력하세요.</description>
</var>
<var id="colorset">
<var name="colorset">
<name xml:lang="ko">컬러셋</name>
<type>select</type>
<description xml:lang="ko">원하시는 컬러셋을 선택해주세요.</description>

View file

@ -69,11 +69,17 @@
Context::set('module_info',$this->module_info);
// 기본 모듈 정보들 설정
$this->list_count = $this->module_info->list_count?$this->module_info->list_count:20;
$this->list_count = $this->module_info->list_count?$this->module_info->list_count:1;
$this->page_count = $this->module_info->page_count?$this->module_info->page_count:10;
// 스킨 템플릿 경로 지정
// 스킨 경로 구함
$template_path = sprintf("%sskins/%s/",$this->module_path, $this->skin);
// 레이아웃 지정
$this->setLayoutPath($template_path);
$this->setLayoutFile("layout");
// 템플릿 지정
$this->setTemplatePath($template_path);
// rss url

View file

@ -0,0 +1,194 @@
@charset "utf-8";
body {
margin:0px;
padding:0px;
}
/**
* 레이아웃 style
**/
/**
* 상단 로고 메인 1차 메뉴
**/
.layout_top {
margin:10px 10px 0px 10px;
width:890px;
}
/* 상단 로고 부분 */
.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;
width:660px;
}
#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

@ -0,0 +1,60 @@
<!-- 레이아웃과 연동될 css 파일 import -->
<!--%import("css/layout.css")-->
<!-- 블로그 메뉴를 common/js/tree_menu.js를 이용해서 표시 -->
<script type="text/javascript">
//loadTreeMenu("{$blog_menu->xml_file}", "blog_menu", "menu", "{$layout_info->main_menu_name?$layout_info->main_menu_name:'home'}");
</script>
<!-- 상단 로고 및 상단 메뉴 출력 -->
<div class="layout_top">
<div class="layout_logo">
<a href="{$layout_info->home_url}">{$layout_info->top_title}</a>
</div>
<div class="layout_first_menu">
<!-- top_menu 시작 -->
<!--@foreach($top_menu->list as $key => $val)--><!--@if($val['text'])-->
<!--@if($val['selected'])-->
{@ $class_name = 'first_menu_selected'}
<!--@else-->
{@ $class_name = 'first_menu'}
<!--@end-->
<span class="{$class_name}">
<a href="#" onclick="return move_url('{$val['href']}','{$val['open_window']}');">{$val['text']}</a>
</span>
<!--@end--><!--@end-->
<!-- top_menu 끝 -->
</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;"/>
<!-- 카운터 플러그인 -->
<img src="./common/tpl/images/blank.gif" class="zbxe_plugin_output" plugin="counter_status" skin="default" colorset="normal" style="width:100px;height:100px;"/>
<!-- 블로그 메뉴 출력 -->
<div id="menu"></div>
<!--@if($logged_info->is_admin == 'Y')-->
<!-- 관리자일 경우 레이아웃 관리 메뉴 -->
<div class="layout_admin">
<a href="#" onclick="location.href='{getUrl('act','dispLayoutAdminModify','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>
</div>

View file

@ -14,40 +14,35 @@
</color>
</colorset>
<extra_vars>
<var name="title" type="text">
<title xml:lang="ko">제목</title>
<description xml:lang="ko">그냥 테스트용입니다</description>
</var>
<var name="title2" type="text">
<title xml:lang="ko">제목 2</title>
<default>haha</default>
</var>
<var name="memo" type="textarea">
<title xml:lang="ko">내용</title>
<default lang="ko">내용의 기본값</default>
</var>
<var name="select" type="select">
<title xml:lang="ko">선택1</title>
<default>1</default>
<default>2</default>
<default>3</default>
<default>4</default>
<default>5</default>
</var>
<var name="checkbox" type="checkbox">
<title xml:lang="ko">다중선택</title>
<default>a</default>
<default>b</default>
<default>c</default>
</var>
<var name="radio" type="radio">
<title xml:lang="ko">하나선택</title>
<default>A</default>
<default>B</default>
<default>C</default>
<var name="top_title">
<name xml:lang="ko">상단 제목</name>
<type>text</type>
<description xml:lang="ko">레이아웃의 상단에 표시할 제목을 입력하세요.</description>
</var>
<var name="logo_image" type="image" width="60" height="60">
<title xml:lang="ko">로고이미지</title>
</var>
<var name="home_url">
<name xml:lang="ko">홈 url</name>
<type>text</type>
<description xml:lang="ko">home이나 상단 제목(로고이미지) 클릭시 이동할 홈 url을 입력해주세요.</description>
</var>
<var name="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>
<var name="memo" type="textarea">
<title xml:lang="ko">프로필</title>
<default lang="ko">간단한 프로필을 입력해주세요</default>
</var>
</extra_vars>
<skin>
</skin>

View file

@ -1,6 +1,19 @@
<!--%import("js/board.js")-->
{$module_info->header_text}
<!-- 스킨의 제목/내용으로 내용 구성 -->
<!--@if($module_info->title || $module_info->memo)-->
<div style="border:1px solid #EEEEEE;padding:10px;margin-bottom:10px;">
<!--@if($module_info->title)-->
<span style="font-weight:bold">{$module_info->title}</span><br>
<!--@end-->
<!--@if($module_info->memo)-->
{nl2br($module_info->memo)}
<!--@end-->
</div>
<!--@end-->
<!-- 게시판 정보 -->
<div>
<!--@if($total_count)-->

View file

@ -16,38 +16,11 @@
<extra_vars>
<var name="title" type="text">
<title xml:lang="ko">제목</title>
<description xml:lang="ko">그냥 테스트용입니다</description>
</var>
<var name="title2" type="text">
<title xml:lang="ko">제목 2</title>
<default>haha</default>
<description xml:lang="ko">게시판의 제목을 적어주세요.</description>
</var>
<var name="memo" type="textarea">
<title xml:lang="ko">내용</title>
<title xml:lang="ko">게시판 설명</title>
<default lang="ko">내용의 기본값</default>
</var>
<var name="select" type="select">
<title xml:lang="ko">선택1</title>
<default>1</default>
<default>2</default>
<default>3</default>
<default>4</default>
<default>5</default>
</var>
<var name="checkbox" type="checkbox">
<title xml:lang="ko">다중선택</title>
<default>a</default>
<default>b</default>
<default>c</default>
</var>
<var name="radio" type="radio">
<title xml:lang="ko">하나선택</title>
<default>A</default>
<default>B</default>
<default>C</default>
</var>
<var name="logo_image" type="image" width="60" height="60">
<title xml:lang="ko">로고이미지</title>
</var>
</extra_vars>
<skin>
</skin>

View file

@ -94,6 +94,7 @@
}
// 레이아웃 삭제
$args->layout_srl = $layout_srl;
$output = executeQuery("layout.deleteLayout", $args);
if(!$output->toBool()) return $output;

View file

@ -131,10 +131,10 @@
unset($options);
$var = $extra_vars[$i];
$buff .= sprintf('$layout_info->extra_var->%s->name = "%s";', $var->attrs->id, $var->name->body);
$buff .= sprintf('$layout_info->extra_var->%s->type = "%s";', $var->attrs->id, $var->type->body);
$buff .= sprintf('$layout_info->extra_var->%s->value = $vars->%s;', $var->attrs->id, $var->attrs->id);
$buff .= sprintf('$layout_info->extra_var->%s->description = "%s";', $var->attrs->id, str_replace('"','\"',$var->description->body));
$buff .= sprintf('$layout_info->extra_var->%s->name = "%s";', $var->attrs->name, $var->name->body);
$buff .= sprintf('$layout_info->extra_var->%s->type = "%s";', $var->attrs->name, $var->type->body);
$buff .= sprintf('$layout_info->extra_var->%s->value = $vars->%s;', $var->attrs->name, $var->attrs->name);
$buff .= sprintf('$layout_info->extra_var->%s->description = "%s";', $var->attrs->name, str_replace('"','\"',$var->description->body));
$options = $var->options;
if(!$options) continue;
@ -142,7 +142,7 @@
if(!is_array($options)) $options = array($options);
$options_count = count($options);
for($j=0;$j<$options_count;$j++) {
$buff .= sprintf('$layout_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->id, $options[$j]->value->body, $options[$j]->name->body);
$buff .= sprintf('$layout_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->name, $options[$j]->value->body, $options[$j]->name->body);
}
}

View file

@ -13,4 +13,4 @@
<title xml:lang="ko">이상한거</title>
</color>
</colorset>
<skin>
</skin>

View file

@ -152,8 +152,6 @@
$list = FileHandler::readDir($skin_path);
if(!count($list)) return;
$oXmlParser = new XmlParser();
foreach($list as $skin_name) {
unset($skin_info);
$skin_info = $this->loadSkinInfo($path, $skin_name);
@ -177,10 +175,11 @@
// XmlParser 객체 생성
$oXmlParser = new XmlParser();
$xml_obj = $oXmlParser->loadXmlFile($skin_xml_file);
$_xml_obj = $oXmlParser->loadXmlFile($skin_xml_file);
// 스킨 정보가 없으면 return
if(!$xml_obj) return;
if(!$_xml_obj->skin) return;
$xml_obj = $_xml_obj->skin;
// 스킨이름
$skin_info->title = $xml_obj->title->body;
@ -193,10 +192,10 @@
$skin_info->maker->description = $xml_obj->maker->description->body;
// colorset
if(!is_array($xml_obj->colorset->color)) $colorset[] = $xml_obj->colorset->color;
else $colorset = $xml_obj->colorset->color;
$colorset = $xml_obj->colorset->color;
if($colorset) {
if(!is_array($colorset)) $colorset = array($colorset);
if($colorset[0]->attrs->name) {
foreach($colorset as $color) {
$name = $color->attrs->name;
$title = $color->title->body;
@ -213,10 +212,11 @@
}
// 스킨에서 사용되는 변수들
if(!is_array($xml_obj->extra_vars->var)) $extra_vars[] = $xml_obj->extra_vars->var;
else $extra_vars = $xml_obj->extra_vars->var;
$extra_vars = $xml_obj->extra_vars->var;
if($extra_vars) {
if(!is_array($extra_vars)) $extra_vars = array($extra_vars);
if($extra_vars[0]->attrs->name) {
foreach($extra_vars as $var) {
$name = $var->attrs->name;
$type = $var->attrs->type;

View file

@ -10,4 +10,4 @@
<title xml:lang="ko">기본</title>
</color>
</colorset>
<skin>
</skin>

View file

@ -10,4 +10,4 @@
<title xml:lang="ko">기본</title>
</color>
</colorset>
<skin>
</skin>

View file

@ -10,4 +10,4 @@
<title xml:lang="ko">기본</title>
</color>
</colorset>
<skin>
</skin>

View file

@ -13,4 +13,4 @@
<title xml:lang="ko">푸른계통의 컬러</title>
</color>
</colorset>
<skin>
</skin>