Frage zu Template Class

Kalma

Erfahrenes Mitglied
Hallo,

habe mir eine neue Template Klasse geschrieben und auch eine Forschleife, die leider nicht läuft.

So soll sie aufgerufen werden:
PHP:
	$peter = array();
	$peter['autor']	= 'Peter Lustig';
	$peter['titel'] = 'my Life';
	$tpl->assign_array("book", $peter);

HTML:
			{foreach $book}
			{$autor} - {$titel}
			{/foreach}

Der KlassenCode sieht so aus:
PHP:
		public function assign_array($var, $replace) 
		{
			$matches		= array();
			$search_for		= '/\{foreach \$'.$var.'\}(.*?)\{\/foreach\}/si';
			$keys			= array_keys($replace, 0);

			if(preg_match($search_for, $this->template, $matches)) {
				$row		= '';

				foreach($replace AS $array)
				{
					$items	= $matches[1];
					foreach($keys AS $key)
					{
						$items	= str_replace($this->leftDelimiterF.$key.$this->rightDelimiterF, $array[$key], $items);
					}
					$row	.= str_replace($matches[1], $row, $items);
					$row	 = rtrim($row);
				}

				$all_rows	= preg_replace('/\r\n/si', '', rtrim($row), 1);
				$this->template = str_replace($matches[0], $all_rows, $this->template);

				return true;
			} else {
				return false;
			}
		}

rightDelimiterF und leftDelimiterF sind lediglich { und } zum einleiten einer Funktion
 
Zurück