diff options
Diffstat (limited to 'include')
-rwxr-xr-x | include/template_processor.php | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/include/template_processor.php b/include/template_processor.php index 111fc5849..90c6b2e65 100755 --- a/include/template_processor.php +++ b/include/template_processor.php @@ -160,15 +160,25 @@ private function var_replace($s){ $m = array(); - if (preg_match_all('/\$\[{0,1}([a-zA-Z0-9-_]+\.*)+\]{0,1}/', $s,$m)){ - foreach($m[0] as $var){ - $varn = str_replace(array("[","]"), array("",""), $var); - $val = $this->_get_var($varn, true); + 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); + } if ($val!=KEY_NOT_EXISTS) - $s = str_replace($var, $val, $s); + $s = str_replace($m[0][$id], $val, $s); } } + + return $s; } |