mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-23 05:09:56 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/trunk@432 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
0b1e0c5b2d
commit
56cf43fd4b
4 changed files with 41 additions and 1 deletions
|
|
@ -8,6 +8,11 @@
|
||||||
|
|
||||||
class PluginHandler extends Object {
|
class PluginHandler extends Object {
|
||||||
|
|
||||||
|
function executePlugin($plugin, $args) {
|
||||||
|
debugPrint($plugin);
|
||||||
|
debugPrint($args);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,9 @@
|
||||||
// import xml filter/ css/ js <!--%filename-->
|
// import xml filter/ css/ js <!--%filename-->
|
||||||
$buff = preg_replace_callback('!<\!--%import\(\"([^\"]*?)\"\)-->!is', array($this, '_compileImportCode'), $buff);
|
$buff = preg_replace_callback('!<\!--%import\(\"([^\"]*?)\"\)-->!is', array($this, '_compileImportCode'), $buff);
|
||||||
|
|
||||||
|
// plugin 코드 변경
|
||||||
|
$buff = preg_replace_callback('!<div plugin=([^<]*?)<\/div>!is', array($this, '_compilePluginCode'), $buff);
|
||||||
|
|
||||||
// 파일에 쓰기 전에 직접 호출되는 것을 방지
|
// 파일에 쓰기 전에 직접 호출되는 것을 방지
|
||||||
$buff = sprintf('%s%s%s','<?php if(!__ZB5__) exit();?>',"\n",$buff);
|
$buff = sprintf('%s%s%s','<?php if(!__ZB5__) exit();?>',"\n",$buff);
|
||||||
|
|
||||||
|
|
@ -269,6 +272,36 @@
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 플러그인 코드를 실제 php코드로 변경
|
||||||
|
**/
|
||||||
|
function _compilePluginCode($matches) {
|
||||||
|
$oXmlParser = new XmlParser();
|
||||||
|
$xml_doc = $oXmlParser->parse($matches[0]);
|
||||||
|
$vars = $xml_doc->div->attrs;
|
||||||
|
|
||||||
|
if(!$vars->plugin) return "";
|
||||||
|
|
||||||
|
// 플러그인의 이름을 구함
|
||||||
|
$plugin = $vars->plugin;
|
||||||
|
unset($vars->plugin);
|
||||||
|
|
||||||
|
// 플러그인의 변수들을 세팅
|
||||||
|
$vars_count = get_object_vars($vars);
|
||||||
|
if($vars_count) {
|
||||||
|
foreach($vars as $key => $val) {
|
||||||
|
$key = str_replace('"','\"', $key);
|
||||||
|
$val = str_replace('"','\"', $val);
|
||||||
|
$args_list[] = sprintf('"%s"=>"%s"', $key, $val);
|
||||||
|
}
|
||||||
|
$args = sprintf('array(%s)', implode(',',$args_list));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 플러그인 실행코드를 삽입
|
||||||
|
$output = sprintf('<?php PluginHandler::executePlugin("%s", %s); ?>', $plugin, $args);
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief $tpl_file로 compiled_tpl_file이름을 return
|
* @brief $tpl_file로 compiled_tpl_file이름을 return
|
||||||
**/
|
**/
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
/**
|
/**
|
||||||
* @brief debug mode = true 일때 files/_debug_message.php 에 디버그 내용이 쌓임
|
* @brief debug mode = true 일때 files/_debug_message.php 에 디버그 내용이 쌓임
|
||||||
**/
|
**/
|
||||||
define('__DEBUG__', true);
|
define('__DEBUG__', false);
|
||||||
if(__DEBUG__) {
|
if(__DEBUG__) {
|
||||||
|
|
||||||
// php5이상이면 error handling을 handleError() 로 set
|
// php5이상이면 error handling을 handleError() 로 set
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,8 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div plugin="newest_document" title="asdf" order_target="list_order" order_type="desc" list_count="asdf" ></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue