Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
wfpl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
19e2f5c
)
support encoding template sections
author
Jason Woofenden
<jason@jasonwoof.com>
Fri, 14 Feb 2020 13:01:34 +0000
(08:01 -0500)
committer
Jason Woofenden
<jason@jasonwoof.com>
Sun, 22 Mar 2020 02:02:08 +0000
(22:02 -0400)
template.php
patch
|
blob
|
history
diff --git
a/template.php
b/template.php
index
485cc87
..
077aa8d
100644
(file)
--- 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;
$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);
}
} 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)) {
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.<br>\n");
+ if (function_exists("enc_" . $tem['args'][0])) {
+ $auto_func = false;
+ } else {
+ die("ERROR: template auto function '$auto_func' not found.<br>\n");
+ }
}
# NAMESPACIFY $auto_func
}
}
# NAMESPACIFY $auto_func
}
@@
-219,23
+223,27
@@
function &tem_row_data($tem, $context)
return $rows;
}
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);
$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.<br>\n");
}
}
return $value;
}
die("ERROR: encoder function '$func' not found.<br>\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']);
function is_sub_template(&$piece) {
return is_array($piece) && isset($piece['pieces']);