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

This commit is contained in:
zero 2007-03-14 08:23:12 +00:00
parent 76aea1928e
commit 5dfec5a0c4
6 changed files with 118 additions and 89 deletions

View file

@ -1,49 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<layout version="0.1">
<title xml:lang="ko">견본 레이아웃</title>
<title xml:lang="en">sample layout</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">
견본 레이아웃입니다.
가장 기본적인 기능으로 이루어져 있습니다.
</description>
<description xml:lang="en">sample layout</description>
</author>
<extra_vars>
<var id="top_title">
<name xml:lang="ko">상단 제목</name>
<name xml:lang="en">top title</name>
<type>text</type>
</var>
<var id="main_menu_name">
<name xml:lang="ko">메인 메뉴 명</name>
<name xml:lang="en">main_menu_name</name>
<type>text</type>
</var>
<var id="colorset">
<name xml:lang="ko">컬러셋</name>
<name xml:lang="en">colorset</name>
<type>select</type>
<options>
<value>red</value>
<value>blue</value>
<value>green</value>
<value>rightred</value>
</options>
</var>
</extra_vars>
<menus>
<menu id="main_menu">
<name xml:lang="ko">주메뉴</name>
<name xml:lang="en">main menu</name>
<maxdepth>2</maxdepth>
</menu>
<menu id="bottom_menu">
<name xml:lang="ko">하단 메뉴 </name>
<name xml:lang="en">bottom menu</name>
<maxdepth>1</maxdepth>
</menu>
</menus>
<title xml:lang="ko">견본 레이아웃</title>
<title xml:lang="en">sample layout</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">
견본 레이아웃입니다.
가장 기본적인 기능으로 이루어져 있습니다.
</description>
<description xml:lang="en">sample layout</description>
</author>
<extra_vars>
<var id="top_title">
<name xml:lang="ko">상단 제목</name>
<name xml:lang="en">top title</name>
<type>text</type>
</var>
<var id="main_menu_name">
<name xml:lang="ko">메인 메뉴 명</name>
<name xml:lang="en">main_menu_name</name>
<type>text</type>
</var>
<var id="colorset">
<name xml:lang="ko">컬러셋</name>
<name xml:lang="en">colorset</name>
<type>select</type>
<options>
<name xml:lang="ko">적색</name>
<name xml:lang="en">red</name>
<value>red</value>
</options>
<options>
<name xml:lang="ko">청색</name>
<name xml:lang="en">blue</name>
<value>blue</value>
</options>
</var>
</extra_vars>
<menus>
<menu id="main_menu">
<name xml:lang="ko">주메뉴</name>
<name xml:lang="en">main menu</name>
<maxdepth>2</maxdepth>
</menu>
<menu id="bottom_menu">
<name xml:lang="ko">하단 메뉴 </name>
<name xml:lang="en">bottom menu</name>
<maxdepth>1</maxdepth>
</menu>
</menus>
</layout>

View file

@ -136,23 +136,23 @@
$buff .= sprintf('$layout_info->extra_var_count = "%s";', $extra_var_count);
for($i=0;$i<$extra_var_count;$i++) {
unset($var);
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);
$options = $var->options->value;
$options = $var->options;
if(!$options) continue;
if(!is_array($options)) $options = array($options);
$options_count = count($options);
for($i=0;$i<$options_count;$i++) {
$buff .= sprintf('$layout_info->extra_var->%s->options[] = "%s";', $var->attrs->id, $options[$i]->body);
$buff .= sprintf('$layout_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->id, $options[$i]->value->body, $options[$i]->name->body);
}
}
// 메뉴
if(!is_array($xml_obj->menus->menu)) $menus[] = $xml_obj->menus->menu;
else $menus = $xml_obj->menus->menu;

View file

@ -59,7 +59,7 @@
<td>
<select name="{$id}">
<!--@foreach($var->options as $key => $val)-->
<option value="{$val}" <!--@if($val==$var->value)-->selected="true"<!--@end-->>{$val}</option>
<option value="{$key}" <!--@if($key==$var->value)-->selected="true"<!--@end-->>{$val}</option>
<!--@end-->
</select>
<!--@end-->

View file

@ -70,6 +70,7 @@
$cache_file = sprintf('./files/cache/plugin/%s.cache.php', $plugin);
if(file_exists($cache_file)&&filectime($cache_file)>filectime($xml_file)) {
include $cache_file;
debugPrint($plugin_info);
return $plugin_info;
}
@ -103,20 +104,22 @@
$buff .= sprintf('$plugin_info->extra_var_count = "%s";', $extra_var_count);
for($i=0;$i<$extra_var_count;$i++) {
unset($var);
unset($options);
$var = $extra_vars[$i];
$buff .= sprintf('$plugin_info->extra_var->%s->name = "%s";', $var->attrs->id, $var->name->body);
$buff .= sprintf('$plugin_info->extra_var->%s->type = "%s";', $var->attrs->id, $var->type->body);
$buff .= sprintf('$plugin_info->extra_var->%s->value = $vars->%s;', $var->attrs->id, $var->attrs->id);
$options = $var->options->value;
$options = $var->options;
if(!$options) continue;
if(!is_array($options)) $options = array($options);
$options_count = count($options);
for($i=0;$i<$options_count;$i++) {
$buff .= sprintf('$plugin_info->extra_var->%s->options[] = "%s";', $var->attrs->id, $options[$i]->body);
$buff .= sprintf('$plugin_info->extra_var->%s->options["%s"] = "%s";', $var->attrs->id, $options[$i]->value->body, $options[$i]->name->body);
}
}
$buff = '<?php if(!__ZB5__) exit(); '.$buff.' ?>';

View file

@ -20,9 +20,10 @@
<td>
<select name="{$id}">
<!--@foreach($var->options as $key => $val)-->
<option value="{$val}" <!--@if($val==$var->value)-->selected="true"<!--@end-->>{$val}</option>
<option value="{$key}" <!--@if($key==$var->value)-->selected="true"<!--@end-->>{$val}</option>
<!--@end-->
</select>
</td>
<!--@end-->
</tr>
<!--@end-->

View file

@ -1,37 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<plugin version="0.1">
<title xml:lang="ko">최근 문서</title>
<title xml:lang="en">newest document </title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">최근 문서 (document)를 출력하는 플러그인입니다.</description>
<description xml:lang="en">display newest document</description>
</author>
<extra_vars>
<var id="title">
<name xml:lang="ko">제목</name>
<name xml:lang="en">title</name>
<type>text</type>
</var>
<var id="order_type">
<name xml:lang="ko">정렬 방법</name>
<name xml:lang="en">order type</name>
<type>select</type>
<options>
<value>regdate</value>
<value>last update</value>
</options>
</var>
<var id="list_count">
<name xml:lang="ko">목록수</name>
<name xml:lang="en">list_count</name>
<type>text</type>
</var>
<var id="module_srls">
<name xml:lang="ko">대상 모듈</name>
<name xml:lang="en">target modules</name>
<type>module_list</type>
</var>
</extra_vars>
<title xml:lang="ko">최근 문서</title>
<title xml:lang="en">newest document </title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">최근 문서 (document)를 출력하는 플러그인입니다.</description>
<description xml:lang="en">display newest document</description>
</author>
<extra_vars>
<var id="title">
<name xml:lang="ko">제목</name>
<name xml:lang="en">title</name>
<type>text</type>
</var>
<var id="order_target">
<name xml:lang="ko">정렬 대상</name>
<name xml:lang="en">order target</name>
<type>select</type>
<options>
<name xml:lang="ko">시간순</name>
<name xml:lang="en">regdate</name>
<value>list_order</value>
</options>
<options>
<name xml:lang="ko">업데이트순</name>
<name xml:lang="en">last update</name>
<value>update_order</value>
</options>
</var>
<var id="order_type">
<name xml:lang="ko">정렬 방법</name>
<name xml:lang="en">order type</name>
<type>select</type>
<options>
<name xml:lang="ko">내림차순</name>
<name xml:lang="en">desc</name>
<value>desc</value>
</options>
<options>
<name xml:lang="ko">올림차순</name>
<name xml:lang="en">asc</name>
<value>asc</value>
</options>
</var>
<var id="list_count">
<name xml:lang="ko">목록수</name>
<name xml:lang="en">list_count</name>
<type>text</type>
</var>
<var id="module_srls">
<name xml:lang="ko">대상 모듈</name>
<name xml:lang="en">target modules</name>
<type>module_list</type>
</var>
</extra_vars>
</plugin>