Templates - ich verstehs net

sorashi

Mitglied
Hi,
kann mir jemand mal erklären, wie templates .
Also ich meine jetzt nicht nur "einfache" preg_replaces.
Denn ich zu meinem Teil habe eine *.html Datei immer per file() und implode() in einen String umgewandelt und dann eben replaced, was ich so brauchte urls usw.

Aber wie so Systeme, bei denen man auch if-Abfragen und Schleifen per <if(Abfrage)><then>....</then></if> (so ist es im wbb)

Also ich meine, irgendwas muss man ja replacen, <if((.*))> z.B., aber mir was...

Ich bekomms zumindest nicht hin, würde es wirklich gern wissen.
Wäre froh über eine Erklärung...
 
Hi,
kann mir jemand mal erklären, wie templates .
Also ich meine jetzt nicht nur "einfache" preg_replaces.
Denn ich zu meinem Teil habe eine *.html Datei immer per file() und implode() in einen String umgewandelt und dann eben replaced, was ich so brauchte urls usw.

Aber wie so Systeme, bei denen man auch if-Abfragen und Schleifen per <if(Abfrage)><then>....</then></if> (so ist es im wbb)

Also ich meine, irgendwas muss man ja replacen, <if((.*))> z.B., aber mir was...

Ich bekomms zumindest nicht hin, würde es wirklich gern wissen.
Wäre froh über eine Erklärung...
Ich würde es dir gerne erklären, aber ich habe absolut keine Ahnung, wovon du sprichst.
 
ich will einfach wissen, wie man in Templates if-Abfragen und Schleifen verwenden kann.

Habs mir schonmal in fertigen scripts (wbb <- das ist ein Forensystem) angeschaut, versteh es aber einfach nicht
 
Ich glaube er will selbst ein System schreiben ,aber das ist eine zu umfangreiche Antwort für einen Thread ,denke ich.
Lade dir doch mal die » Smarty« Klasse runter.
Schau dir den ,zugegebenermassen umfangreichen Quelltext an .
Am besten lädst du dir eine frühere Version runter ,da ist noch nicht so viel »Zeugs« drin ,und du versteht es sicher besser.
Die Klasse ist möglicherweise unnötig aufgebläht ,aber es sollte auch nur ein Tipp sein ,und dich darauf hinweisen ,das du mal im Quelltext schnuppern kannst (geht übrigens auhc mit dem WBB).

<if(Abfrage)><then>....</then></if>
Die <if(abfrage)> Klausel ist wohl recht einfach..
Die <then> Blöcke stellen wohl die Klammern dar und das </if> wird wohl irgendetwas abschliessendes sein ,nur was weiss ich selbst nicht.
Vielleicht ist auch einfach nur ein Abschliessend Statement ,was sagen soll das der Nächste Block kommt -da die Klammern ja nicht eindeutig sind (vgl. else)
 
Zuletzt bearbeitet:
ja so mein ich es.

Aber eigentlich will ich eben nur wissen, wie ich eine if-Abfrage, Schleife usw. in einen String bekomme.

Weil wenn ich den Inhalt einer Datei (=Template) mit Hilfe von file()/implode() benütze, wird aus der Datei ja ein String. => wie bekomme ne if for while switch usw. in nen String

da gibts bei mir einfach nen aussetzer.
 
Wenn du deine If-Abfrage in irgendeiner Form vorliegen hast (also im Template) und diese schon mit preg_replace, str_replace oder was auch immer angepasst hast (und du somit die eigentliche if-Abfrage im PHP-Code in einem String stehen hast), dann kannst du den Code im String mit eval() ausführen.

Ich hoffe das hilft dir ein bischen weiter.
 
*** edit ***
habs geschafft.
Für jeden, den es interessiert, wie ich es gemacht hab hier mal kurz ein Beispielcode:
$dateistring = implode(file("DATEI));

$out = preg_replace("|<echo>(.*)</echo>|", "echo \"$1\"", $dateistring);
$out = preg_replace("|<if((.*))>|", "if$1 {", $out);
ect.

#ausgabe
eval($out);

thx4help
 
Zuletzt bearbeitet:
Zurück