From 49ffd30e1c2d5901d74f2c6724841b7e36f0947a Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Thu, 8 Sep 2011 14:09:45 +0200 Subject: [PATCH] global lang array in templates --- include/template_processor.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/include/template_processor.php b/include/template_processor.php index 83f680f026..459ffb2d11 100644 --- a/include/template_processor.php +++ b/include/template_processor.php @@ -1,5 +1,6 @@ $v ) { if (is_array($v)) $this->_build_replace($v, "$prefix$k."); + if (is_object($v)) + $this->_build_replace($v->getKeys(), "$prefix$k."); $this->search[] = $prefix . $k; $this->replace[] = $v; @@ -153,19 +158,36 @@ krsort($this->nodes); return $s; } + + private function _get_lang(){ + if ($this->lang!=null) return $this->lang; + + $a = get_app(); + $this->lang=array(); + foreach ($a->strings as $k=>$v){ + $k = preg_replace("/[^a-z0-9-]/", "", str_replace(" ","-", strtolower($k))); + $this->lang[$k] = $v; + } + return $this->lang; + } + public function replace($s, $r) { + if (!x($r,'$lang')){ + $r['$lang'] = &$this->_get_lang(); + } $this->r = $r; $this->search = array(); $this->replace = array(); - $this->_build_replace($r, ""); - #$s = str_replace(array("\n","\r"),array("§n§","§r§"),$s); $s = $this->_build_nodes($s); $s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s); if ($s==Null) $this->_preg_error(); + // remove comments block + $s = preg_replace('/{#[^#]*#}/', "" , $s); + // replace strings recursively (limit to 10 loops) $os = ""; $count=0; while($os!=$s && $count<10){