$this->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]);
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
}
}
+ 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) {
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;
}
}
}
+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);
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_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);
return preg_replace_callback(array('|<!--~([^~]*)~-->|', '|~([^~]*)~|', '|<span class="template">([^<]*)</span>|', '|<p class="template">([^<]*)</p>|'), '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;
+}
+
?>