mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/trunk@1232 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f0c54c5c4d
commit
ed948775fe
17 changed files with 346 additions and 104 deletions
|
|
@ -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
|
||||
|
|
|
|||
194
modules/blog/skins/default/css/layout.css
Normal file
194
modules/blog/skins/default/css/layout.css
Normal 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;
|
||||
}
|
||||
|
||||
60
modules/blog/skins/default/layout.html
Normal file
60
modules/blog/skins/default/layout.html
Normal 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>
|
||||
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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)-->
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@
|
|||
}
|
||||
|
||||
// 레이아웃 삭제
|
||||
$args->layout_srl = $layout_srl;
|
||||
$output = executeQuery("layout.deleteLayout", $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,4 +13,4 @@
|
|||
<title xml:lang="ko">이상한거</title>
|
||||
</color>
|
||||
</colorset>
|
||||
<skin>
|
||||
</skin>
|
||||
|
|
|
|||
|
|
@ -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,21 +212,22 @@
|
|||
}
|
||||
|
||||
// 스킨에서 사용되는 변수들
|
||||
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;
|
||||
$title = $var->title->body;
|
||||
$description = $var->description->body;
|
||||
if($var->default) {
|
||||
unset($default);
|
||||
if(is_array($var->default)) {
|
||||
for($i=0;$i<count($var->default);$i++) $default[] = $var->default[$i]->body;
|
||||
} else {
|
||||
$default = $var->default->body;
|
||||
$name = $var->attrs->name;
|
||||
$type = $var->attrs->type;
|
||||
$title = $var->title->body;
|
||||
$description = $var->description->body;
|
||||
if($var->default) {
|
||||
unset($default);
|
||||
if(is_array($var->default)) {
|
||||
for($i=0;$i<count($var->default);$i++) $default[] = $var->default[$i]->body;
|
||||
} else {
|
||||
$default = $var->default->body;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@
|
|||
<title xml:lang="ko">기본</title>
|
||||
</color>
|
||||
</colorset>
|
||||
<skin>
|
||||
</skin>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue