From 0afef6b17e622d1fabd0f499ac206e8924278dfb Mon Sep 17 00:00:00 2001 From: Fabio Comuni Date: Thu, 14 Apr 2011 09:22:38 +0200 Subject: arrays and simple conditional blocks in template, template for nav, load templates from themes --- include/template_processor.php | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 include/template_processor.php (limited to 'include/template_processor.php') diff --git a/include/template_processor.php b/include/template_processor.php new file mode 100644 index 000000000..f6d0264df --- /dev/null +++ b/include/template_processor.php @@ -0,0 +1,50 @@ + $v ) { + if (is_array($v)) + $this->_build_replace($v, "$prefix$k."); + + $this->search[] = $prefix . $k; + $this->replace[] = $v; + } + } + } + + private function _replcb_if($m){ + //echo "
"; var_dump($m);
+			$keys = explode(".",$m[1]);
+			$val = $this->r;
+			foreach($keys as $k) {
+				$val = $val[$k];
+			}
+			
+			//echo $val;
+			return ($val?$m[2]:"");
+		}
+		
+		public function replace($s, $r) {
+			$this->s = $s;
+			$this->r = $r;
+			$this->search = array();
+			$this->replace = array();
+	
+			$this->_build_replace($r, "");
+	
+			
+			$s = preg_replace_callback("|{{ *if *([^ }]*) *}}([^{]*){{ *endif *}}|", array($this, "_replcb_if"), $s);
+			
+			return str_replace($this->search,$this->replace,$s);
+		}
+		
+	}	
+	$t = new Template;
-- 
cgit v1.2.3