Popup über PHP Templates

Und warum funktioniert jetzt zB so etwas nicht mehr ...

Müsste jetzt so funktionieren es wird jedoch nur die Variable im Template angezeigt
PHP:
$menu = get_template("menu.htm");

Vorher:
PHP:
eval("\$menu = \"".get_template("menu.htm")."\";");
 
Dann probier mal folgende Funktion:
PHP:
function get_template($filename)
{
	if( !is_readable('templates/'.$filename) ) {
		return false;
	}
	$retVal = file_get_contents('templates/'.$filename);
	$retVal = preg_replace('/\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/', '$GLOBALS[\1]', $retVal);
	eval('$retVal = "'.addcslashes($retVal, '"').'";');
	return $retVal;
}
Den Rest kannst du wie gehabt benutzten.
 
Jetzt funktioniert zwar das Menü usw aber wenn ich mit diesem Code meine Artikel auslesen will kommt nur "Array[name]"!

PHP:
  $res=mysql_query("SELECT * FROM artikel $where"); 
  while($row=mysql_fetch_array($res)) {
    $kaufen_artikel_list .= get_template("kaufen_artikel_list.htm");
  }
  
  $kaufen_artikel = get_template("kaufen_artikel.htm"); ### Variable -> $kaufen_artikel_list

  echo get_template("kaufen.htm");    ### Variable -> $kaufen_artikel
}
 
Ich denke damit den ganzen Variablen das Dollar Zeichen fehlt, hab scho versuch es aus dem Code zu entfernen aber funktioniert nicht!

PHP:
$retVal = preg_replace('/\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/', '$GLOBALS[\1]', $retVal);

Hat da noch jemand eine Idee?
 
Wenn du diese Funktion („get_template()“) wiederum in einer anderen Funktion einsetzt und auf darin enthaltene Variablen zugreifen willst, geht das leider nicht (siehe Geltungsbereich von Variablen).

Wieso benutzt du nicht ein Template-System, bei dem jeder Variable explizit ein Wert zugewiesen wird?
 
Weil mir das zu kompliziert ist und ich bau nicht gerne Scripts ein die ich nicht verstehe aber wenn es keine andere möglich gibt werd ich es eben lernen müssen, trozdem danke für die Hilfe! ;)
 
Zurück