X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=template.php;h=077aa8daf4547b33693af1df1f008811e41862db;hb=6be2bf0ba344177f0d1e57d9135bcb97579c54a3;hp=c1df1c1c1206c9b5870ea83a8af27bbf23077bc6;hpb=719ab8078dd9f802ef8d4ba965d605319248e592;p=wfpl.git
diff --git a/template.php b/template.php
index c1df1c1..077aa8d 100644
--- a/template.php
+++ b/template.php
@@ -99,7 +99,7 @@ function fill_template($template, &$data, &$context = NULL) {
$context['rows'] =& $rows;
foreach($rows as $key => &$row) {
$context['cur'] = $key;
- $output .= fill_template($tem, $row, $context);
+ $output .= tem_apply_encodings($tem['name'], fill_template($tem, $row, $context), $tem['args']);
}
} else { # variable
$output .= tem_encoded_data($tem, $context);
@@ -202,7 +202,11 @@ function &tem_row_data($tem, $context)
if(count($tem['args'])) {
$auto_func = "tem_auto_" . $tem['args'][0];
if (!function_exists($auto_func)) {
- die("ERROR: template auto function '$auto_func' not found.
\n");
+ if (function_exists("enc_" . $tem['args'][0])) {
+ $auto_func = false;
+ } else {
+ die("ERROR: template auto function '$auto_func' not found.
\n");
+ }
}
# NAMESPACIFY $auto_func
}
@@ -219,23 +223,27 @@ function &tem_row_data($tem, $context)
return $rows;
}
-# Return the value for a tag as an encoded string.
-function tem_encoded_data($tag, $context)
-{
- $key = $tag['name'];
- $value = tem_get_data($key, $context);
- foreach($tag['args'] as $encoding) {
+function tem_apply_encodings ($key, $value, $encodings) {
+ if ($encodings) foreach($encodings as $encoding) {
$func = "enc_$encoding";
if (function_exists($func)) {
# NAMESPACIFY $func
$value = $func($value, $key);
- } else {
+ } elseif (!function_exists("tem_auto_$encoding")) {
die("ERROR: encoder function '$func' not found.
\n");
}
}
return $value;
}
+# Return the value for a tag as an encoded string.
+function tem_encoded_data($tag, $context)
+{
+ $key = $tag['name'];
+ $value = tem_get_data($key, $context);
+ return tem_apply_encodings($key, $value, $tag['args']);
+}
+
function is_sub_template(&$piece) {
return is_array($piece) && isset($piece['pieces']);
@@ -424,7 +432,8 @@ function &tem_is_old_sub($name, &$template) {
if($tem) return $tem;
}
}
- return false;
+ $false = false;
+ return $false;
}
class tem {
@@ -462,7 +471,11 @@ class tem {
}
function get($key) {
- return $this->data[$key];
+ if (isset($this->data[$key])) {
+ return $this->data[$key];
+ } else {
+ return;
+ }
}
function show($name) {
@@ -546,7 +559,7 @@ class tem {
}
function tem_init() {
- if(!$GLOBALS['wfpl_template']) {
+ if(!isset($GLOBALS['wfpl_template']) || !$GLOBALS['wfpl_template']) {
$GLOBALS['wfpl_template'] = new tem();
}
}