From aa71e6c696f55d1fa3af661ad37ec02101ad7a08 Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Fri, 14 Feb 2020 08:01:34 -0500 Subject: [PATCH] support encoding template sections --- template.php | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/template.php b/template.php index 485cc87..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']); -- 1.7.10.4