X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=template.php;h=2a21975f13ef42e35f3e10da09b000ef0c877e01;hb=332683184a73f7c141132c20c715cd731687f835;hp=24252757a919ab5e1a25bc1bc317d3dfb76c1e5a;hpb=7add2ea3f61e40c5f0f5539ac6e02533c9390db4;p=wfpl.git diff --git a/template.php b/template.php index 2425275..2a21975 100644 --- a/template.php +++ b/template.php @@ -57,6 +57,11 @@ class tem { $this->keyval[$key] = $value; } + # like set() but appends + function append($key, $value) { + $this->keyval[$key] .= $value; + } + # clear a value. Functionally equivalent to set($key, '') but cleaner and more efficient function clear($key) { unset($this->keyval[$key]); @@ -67,10 +72,15 @@ class tem { return $this->keyval[$key]; } + # depricated (renamed show()) + function sub($sub_template_name) { + $this->show($sub_template_name); + } + # run the template engine on one of the sub-templates and append the result # to the keyval in the main array. See tem_test.php for an example of how # this can be used. - function sub($sub_template_name) { + function show($sub_template_name) { $this->keyval[$sub_template_name] .= template_run($this->sub_templates[$sub_template_name], $this->keyval); # after running a sub-template, clear its sub-templates @@ -177,19 +187,27 @@ class tem { print($this->run($templ)); } + # return the names of the top level subs, or an empty array + function top_sub_names() { + if(isset($this->sub_subs['top_level_subs'])) { + return $this->sub_subs['top_level_subs']; + } else { + return array(); + } + } + # return the contents of the top-level sub-templates # - # this does not run the sub-templates, so if you've not called tem_sub() on them, they will be blank. + # this does not run the sub-templates, so if you've not called tem_show() on them, they will be blank. # # Return a hash. # keys: name of top level sub-template. # values: contents of said sub-template. function top_subs() { $ret = array(); - if(isset($this->sub_subs['top_level_subs'])) { - foreach($this->sub_subs['top_level_subs'] as $name) { - $ret[$name] = $this->get($name); - } + $names = $this->top_sub_names(); + foreach($names as $name) { + $ret[$name] = $this->get($name); } return $ret; } @@ -205,6 +223,11 @@ function tem_init() { } } +function tem_append($key, $value) { + tem_init(); + $GLOBALS['wfpl_template']->append($key, $value); +} + function tem_set($key, $value) { tem_init(); $GLOBALS['wfpl_template']->set($key, $value); @@ -220,9 +243,14 @@ function tem_run($templ = false) { return $GLOBALS['wfpl_template']->run($templ); } +# depricated (renamed tem_show()) function tem_sub($sub_template_name) { + tem_show($sub_template_name); +} + +function tem_show($sub_template_name) { tem_init(); - $GLOBALS['wfpl_template']->sub($sub_template_name); + $GLOBALS['wfpl_template']->show($sub_template_name); } function tem_load($filename) { @@ -264,9 +292,22 @@ function template_run($template, &$keyval) { return preg_replace_callback(array('||', '|~([^~]*)~|', '|([^<]*)|', '|

([^<]*)

|'), 'template_filler', $template); } +function tem_top_sub_names() { + tem_init(); + return $GLOBALS['wfpl_template']->top_sub_names(); +} + function tem_top_subs() { tem_init(); return $GLOBALS['wfpl_template']->top_subs(); } +# replaces currently set template, and returns the old. +function tem_load_new($file) { + $old = $GLOBALS['wfpl_template']; + $GLOBALS['wfpl_template'] = new tem(); + $GLOBALS['wfpl_template']->load($file); + return $old; +} + ?>