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

View file

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

View file

@ -59,7 +59,7 @@
<td> <td>
<select name="{$id}"> <select name="{$id}">
<!--@foreach($var->options as $key => $val)--> <!--@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--> <!--@end-->
</select> </select>
<!--@end--> <!--@end-->

View file

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

View file

@ -20,9 +20,10 @@
<td> <td>
<select name="{$id}"> <select name="{$id}">
<!--@foreach($var->options as $key => $val)--> <!--@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--> <!--@end-->
</select> </select>
</td>
<!--@end--> <!--@end-->
</tr> </tr>
<!--@end--> <!--@end-->

View file

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