X-Git-Url: https://jasonwoof.com/gitweb/?p=wfpl.git;a=blobdiff_plain;f=template.php;h=077aa8daf4547b33693af1df1f008811e41862db;hp=fa0affbe3268535879395d2c8bf2402049784542;hb=HEAD;hpb=26bad7e66d87374bed4f126c7f202133828e387c diff --git a/template.php b/template.php index fa0affb..077aa8d 100644 --- a/template.php +++ b/template.php @@ -1,19 +1,9 @@ -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# This program is in the public domain within the United States. Additionally, +# we waive copyright and related rights in the work worldwide through the CC0 +# 1.0 Universal public domain dedication, which can be found at +# http://creativecommons.org/publicdomain/zero/1.0/ # This is a simple template-handling system. You pass it a big data @@ -109,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); @@ -212,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 } @@ -229,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']); @@ -434,7 +432,8 @@ function &tem_is_old_sub($name, &$template) { if($tem) return $tem; } } - return false; + $false = false; + return $false; } class tem { @@ -472,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) { @@ -556,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(); } } @@ -642,5 +645,3 @@ function tem_load_new($filename) { function tem_sub($name) { tem_show($name); } - -?>