X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=template.php;h=5b03754f5febfdee62db00aad6c19d09a6b24e59;hb=9a2257958f77e293a6f49d741405521f02855896;hp=2a21975f13ef42e35f3e10da09b000ef0c877e01;hpb=bdcec472dcd1e9fc6ff9df137f838f1f3124ec9c;p=wfpl.git diff --git a/template.php b/template.php index 2a21975..5b03754 100644 --- a/template.php +++ b/template.php @@ -62,6 +62,11 @@ class tem { $this->keyval[$key] .= $value; } + # like set() but prepends + function prepend($key, $value) { + $this->keyval[$key] = $value . $this->keyval[$key]; + } + # clear a value. Functionally equivalent to set($key, '') but cleaner and more efficient function clear($key) { unset($this->keyval[$key]); @@ -91,6 +96,13 @@ class tem { } } + function show_separated($sub_template_name) { + if($this->get($sub_template_name)) { + $this->show($sub_template_name . '_sep'); + } + $this->show($sub_template_name); + } + # this is used by tem::load() and should be otherwise useless function _load(&$in, &$out, &$parents, &$parent) { while($in) { @@ -228,6 +240,11 @@ function tem_append($key, $value) { $GLOBALS['wfpl_template']->append($key, $value); } +function tem_prepend($key, $value) { + tem_init(); + $GLOBALS['wfpl_template']->prepend($key, $value); +} + function tem_set($key, $value) { tem_init(); $GLOBALS['wfpl_template']->set($key, $value); @@ -253,6 +270,12 @@ function tem_show($sub_template_name) { $GLOBALS['wfpl_template']->show($sub_template_name); } +function tem_show_separated($sub_template_name) { + tem_init(); + $GLOBALS['wfpl_template']->show_separated($sub_template_name); +} + + function tem_load($filename) { tem_init(); $GLOBALS['wfpl_template']->load($filename); @@ -267,7 +290,8 @@ function tem_output($filename = false) { # this is used in template_run() and should be of no other use function template_filler($matches) { - list($tag, $enc) = explode('.', $matches[1], 2); + $match = array_pop($matches); + list($tag, $enc) = explode('.', $match, 2); $value = $GLOBALS['wfpl_template_keyval'][$tag]; if($enc) { $encs = explode('.', $enc); @@ -289,7 +313,7 @@ function template_filler($matches) { # returns the result. function template_run($template, &$keyval) { $GLOBALS['wfpl_template_keyval'] =& $keyval; - return preg_replace_callback(array('||', '|~([^~]*)~|', '|([^<]*)|', '|

([^<]*)

|'), 'template_filler', $template); + return preg_replace_callback('`|~([^~]*)~|([^<]*)|

([^<]*)

`', 'template_filler', $template); } function tem_top_sub_names() {