X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=template.php;h=1c775131981ef81b2e1593e31cbd0a95d20c11c4;hb=608ecf965408645758cdca1e5f01ff5ac3eff166;hp=1caaadc81cbb5cce7bf32922465aa6a1f2887692;hpb=cf5d0ee46eaa0239459a54464e5983a3e2645852;p=wfpl.git diff --git a/template.php b/template.php index 1caaadc..1c77513 100644 --- a/template.php +++ b/template.php @@ -1,23 +1,5 @@ keyval[$key] = $value; } + # like set() but appends + function append($key, $value) { + $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]); @@ -86,6 +78,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) { @@ -218,6 +217,16 @@ function tem_init() { } } +function tem_append($key, $value) { + tem_init(); + $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); @@ -243,6 +252,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); @@ -257,7 +272,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); @@ -279,7 +295,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() {