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:
14216a5
)
* template.php: more renames (specify 'data').
author
Josh Grams
<josh@qualdan.com>
Thu, 6 Aug 2009 14:06:58 +0000
(10:06 -0400)
committer
Josh Grams
<josh@qualdan.com>
Thu, 6 Aug 2009 14:06:58 +0000
(10:06 -0400)
template.php
patch
|
blob
|
history
diff --git
a/template.php
b/template.php
index
3eef030
..
c48d700
100644
(file)
--- a/
template.php
+++ b/
template.php
@@
-67,23
+67,22
@@
function parse_template($string) {
# note: for some reason this captures '<!--' but not '-->'.
$matches = preg_split("/(<!--)?(~[^~]*~)(?(1)-->)/", $string, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach($matches as $match) {
# note: for some reason this captures '<!--' but not '-->'.
$matches = preg_split("/(<!--)?(~[^~]*~)(?(1)-->)/", $string, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach($matches as $match) {
- if(substr($match,0,1) == '~') {
+ if($match == '~~') $match = '~';
+ if(substr($match,0,1) == '~' and strlen($match) > 2) {
$args = explode(' ', substr($match,1,-1));
if(count($args) == 1 and $args[0] == '}') $name = '';
else $name = array_shift($args);
if(last($args) == '{') { # open block
$args = explode(' ', substr($match,1,-1));
if(count($args) == 1 and $args[0] == '}') $name = '';
else $name = array_shift($args);
if(last($args) == '{') { # open block
- array_pop($args);
- # create a new sub-template
- # and add it to the parent.
- $tem =& tem_push($tem);
- $tem['parent']['pieces'][] =& $tem;
+ array_pop($args); # drop '{'
+ $tem =& tem_push($tem); # create a new sub-template
+ $tem['parent']['pieces'][] =& $tem; # as a piece of the parent
$tem['name'] = $name;
$tem['pieces'] = array();
$tem['args'] = $args;
} elseif(last($args) == '}') { # close block
$tem['name'] = $name;
$tem['pieces'] = array();
$tem['args'] = $args;
} elseif(last($args) == '}') { # close block
- array_pop($args);
+ array_pop($args); # drop '}'
$cur = $tem['name'];
if($name && $name != $cur) {
die("Invalid template: tried to close '$name', but '$cur' is current.");
$cur = $tem['name'];
if($name && $name != $cur) {
die("Invalid template: tried to close '$name', but '$cur' is current.");
@@
-108,7
+107,7
@@
function fill_template($template, &$data, &$context = NULL) {
foreach($template['pieces'] as $tem) {
if(is_string($tem)) $output .= $tem;
elseif($tem['pieces']) { # sub-template
foreach($template['pieces'] as $tem) {
if(is_string($tem)) $output .= $tem;
elseif($tem['pieces']) { # sub-template
- $rows =& tem_get_rows($tem, $context);
+ $rows =& tem_row_data($tem, $context);
foreach($rows as $key => &$row) {
$context =& tem_push($context);
$context['data'] =& $row;
foreach($rows as $key => &$row) {
$context =& tem_push($context);
$context['data'] =& $row;
@@
-118,7
+117,7
@@
function fill_template($template, &$data, &$context = NULL) {
}
} else { # variable
}
} else { # variable
- $output .= tem_get_enc($tem, $context);
+ $output .= tem_encoded_data($tem, $context);
}
}
return $output;
}
}
return $output;
@@
-181,7
+180,7
@@
function tem_data_as_rows($value) {
# To look up a key, we check each namespace (starting with the
# innermost one) until a value is found.
# To look up a key, we check each namespace (starting with the
# innermost one) until a value is found.
-function tem_find_scope($key, $context) {
+function tem_data_scope($key, $context) {
$scope = $context;
do{
if(array_key_exists($key, $scope['data'])) {
$scope = $context;
do{
if(array_key_exists($key, $scope['data'])) {
@@
-193,14
+192,14
@@
function tem_find_scope($key, $context) {
return array('parent' => $context);
}
return array('parent' => $context);
}
-function tem_find_value($key, $context) {
- $scope = tem_find_scope($key, $context);
+function tem_get_data($key, $context) {
+ $scope = tem_data_scope($key, $context);
if($scope) return $scope['data'][$key];
}
# Return the value for a tag as a set of rows to fill a sub-template.
# If $tag has an arg, call the tem_auto function to munge the data.
if($scope) return $scope['data'][$key];
}
# Return the value for a tag as a set of rows to fill a sub-template.
# If $tag has an arg, call the tem_auto function to munge the data.
-function &tem_get_rows($tag, $context)
+function &tem_row_data($tag, $context)
{
$key = $tag['name'];
if(count($tag['args'])) {
{
$key = $tag['name'];
if(count($tag['args'])) {
@@
-208,7
+207,7
@@
function &tem_get_rows($tag, $context)
function_exists($func)
or die("ERROR: template auto function '$func' not found.<br>\n");
}
function_exists($func)
or die("ERROR: template auto function '$func' not found.<br>\n");
}
- $scope = tem_find_scope($key, $context);
+ $scope = tem_data_scope($key, $context);
if($func) $value = $func($key, $scope);
else $value = $scope['data'][$key];
if($func) $value = $func($key, $scope);
else $value = $scope['data'][$key];
@@
-220,10
+219,10
@@
function &tem_get_rows($tag, $context)
}
# Return the value for a tag as an encoded string.
}
# Return the value for a tag as an encoded string.
-function tem_get_enc($tag, $context)
+function tem_encoded_data($tag, $context)
{
$key = $tag['name'];
{
$key = $tag['name'];
- $value = tem_find_value($key, $context);
+ $value = tem_get_data($key, $context);
foreach($tag['args'] as $encoding) {
$func = "enc_$encoding";
if(function_exists($func)) $value = $func($value, $key);
foreach($tag['args'] as $encoding) {
$func = "enc_$encoding";
if(function_exists($func)) $value = $func($value, $key);