aboutsummaryrefslogtreecommitdiffstats
path: root/include/template_processor.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/template_processor.php')
-rwxr-xr-xinclude/template_processor.php23
1 files changed, 13 insertions, 10 deletions
diff --git a/include/template_processor.php b/include/template_processor.php
index 0d476f0e6..28c3f07dd 100755
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -32,11 +32,12 @@
if(is_array($r) && count($r)) {
foreach ($r as $k => $v ) {
- if (is_array($v))
+ if (is_array($v)) {
$this->_build_replace($v, "$prefix$k.");
-
- $this->search[] = $prefix . $k;
- $this->replace[] = $v;
+ } else {
+ $this->search[] = $prefix . $k;
+ $this->replace[] = $v;
+ }
}
}
}
@@ -53,7 +54,7 @@
$keys = array_map('trim',explode(".",$name));
$val = $this->r;
foreach($keys as $k) {
- $val = $val[$k];
+ $val = (isset($val[$k]) ? $val[$k] : null);
}
return $val;
}
@@ -79,8 +80,8 @@
} else {
$val = $this->_get_var($args[2]);
}
- list($strue, $sfalse)= preg_split("|{{ *else *}}|", $args[3]);
- return ($val?$strue:$sfalse);
+ $x = preg_split("|{{ *else *}}|", $args[3]);
+ return ( $val ? $x[0] : (isset($x[1]) ? $x[1] : ""));
}
/**
@@ -159,7 +160,8 @@
krsort($this->nodes);
return $s;
}
-
+
+ /*
private function _str_replace($str){
#$this->search,$this->replace,
$searchs = $this->search;
@@ -182,7 +184,7 @@
}
return str_replace($this->search,$this->replace, $str);
- }
+ }*/
public function replace($s, $r) {
@@ -204,7 +206,8 @@
$os = ""; $count=0;
while($os!=$s && $count<10){
$os=$s; $count++;
- $s = $this->_str_replace($s);
+ //$s = $this->_str_replace($s);
+ $s = str_replace($this->search, $this->replace, $s);
}
return template_unescape($s);
}