aboutsummaryrefslogtreecommitdiffstats
path: root/include/template_processor.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/template_processor.php')
-rwxr-xr-xinclude/template_processor.php29
1 files changed, 14 insertions, 15 deletions
diff --git a/include/template_processor.php b/include/template_processor.php
index 90c6b2e65..8671587fc 100755
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -160,25 +160,24 @@
private function var_replace($s){
$m = array();
- if (preg_match_all('/(\$\[{0,1}([a-zA-Z0-9-_]+\.*)+)(\|[a-zA-Z0-9-_]+)*\]{0,1}/', $s,$m)){
- foreach($m[1] as $id=>$var){
- $var = str_replace("[", "", $var);
- $val = $this->_get_var($var, true);
-
- // apply filters
- if ($m[3][$id]!=""){
- $filters = explode("|",trim($m[3][$id],"|"));
- foreach($filters as $filter)
- if (function_exists($filter))
- $val=$filter($val);
- }
+ /** regexp:
+ * \$ literal $
+ * (\[)? optional open square bracket
+ * ([a-zA-Z0-9-_]+\.?)+ var name, followed by optional
+ * dot, repeated at least 1 time
+ * (?(1)\]) if there was opened square bracket
+ * (subgrup 1), match close bracket
+ */
+ if (preg_match_all('/\$(\[)?([a-zA-Z0-9-_]+\.?)+(?(1)\])/', $s,$m)){
+
+ foreach($m[0] as $var){
+ $varn = str_replace(array("[","]"), array("",""), $var);
+ $val = $this->_get_var($varn, true);
if ($val!=KEY_NOT_EXISTS)
- $s = str_replace($m[0][$id], $val, $s);
+ $s = str_replace($var, $val, $s);
}
}
-
-
return $s;
}