<?php
class template 
{
 var $layoutname;
   
 function Template($layoutname) 
 {
	 	$this->layoutname=$layoutname;
 }

 //öffnet Datei und übergibt Inahlt
 function setFile($filename) 
 {
		if (file_exists(ROOT_DIR."/".SCRIPT_PATH."/template/{$this->layoutname}/$filename.htm"))
      return implode("", file(ROOT_DIR."/".SCRIPT_PATH."/template/{$this->layoutname}/$filename.htm"));
    elseif (file_exists(ROOT_DIR."/".SCRIPT_PATH."/template/default/$filename.htm"))
      return implode("", file(ROOT_DIR."/".SCRIPT_PATH."/template/default/$filename.htm"));
		else
      die ("<br><b>Layout incomplete:</b> file <tt>/template/default/$filename.lay</tt> was not found!<br>");
 }

 //gibt den Befehl $filename zu öffnen und mit $params zu parsen
 function layoutparser($filename,$params) 
 {
		$output = $this->setFile($filename);
		
		return $this->parse($output,$params);
 }
 
 //parst den Inhalt aus $text mit $params
 function parse($text,$params)
 {
 		// die übergebene Liste wird jetzt abgearbeitet
		foreach($params as $key=>$value)
    {
			if(!is_array($value)) 
				$text = $this->setOne($text,$key, $value);
			//wenn sichs bei $value um eine array handelt, soll ein Block behandelt werden.
			elseif (is_array($value))
				$text = $this->setLoop($text,$key, $value);
			else
				die("Parameter in der Klasse Vorlage wurden falsch übergeben.");
    }
		return $text;
 }

 //sucht ein Wort in der Aktuellen Datei und ersetzt dieses

 function setOne($text,$suchWort, $substitution) 
 {
		return str_replace("[".$suchWort."]",$substitution,$text);
 }

 function setLoop($text,$block, $Array) 
 {
 		$str = explode("<!--start:".$block."!-->",str_replace("<!--end:".$block."!-->","<!--start:".$block."!-->",$text));
 		$teilStr = "";
		if(count($Array) > 0)
 		{
			foreach($Array as $item)
				$teilStr .= $this->parse($str[1],$item);
		}
 		return $str[0] . $teilStr . $str[2];
 	}

 }

 ?>