Hallo Leute,
ich taste mich so langsam an die Template Klasse der phplib heran. Und schon hab ich ein Problem mit einem Block, der anscheinend öfters geparst wird, als er soll.
Meine Situation
Ich habe drei Templates:
header (header.txt) mit folgendem Inhalt
footer (footer.txt) mit folgendem Inhalt
index (index.txt) mit folgendem Inhalt:
In meinem Script will ich die Template index so ausgeben, dass {HEADER} und {FOOTER} durch die Templates header bzw. footer ersetzt werden und dass der Block testbit sagen wir mal 3 Mal mit unterschiedlichen Werten für {TESTVAR} geparst wird.
Mein Script sieht wie folgt aus:
Nun zu meinem Problem.
Header und Footer werden erfolgreich geparst.
Doch der Block testbit macht Probleme. Laut for() Schleife soll er 3 Mal geparst werden (mit den Werten 0, 10, 20 für {TESTVAR}).
Die HTML Ausgabe lässt aber vermuten, dass er 8 mal geparst wird, denn der Block erscheint 8 mal - aber nicht mit den Werten 0,10,20 sondern mit den Werten 20,0,10,0,20,0,10,0
Die komplette Ausgabe sieht wie folgt aus:
Wo liegt der Fehler ?
PS: Bin für jede Hilfe oder Link zu einem Tutorial dankbar..
MfG André-Nam
ich taste mich so langsam an die Template Klasse der phplib heran. Und schon hab ich ein Problem mit einem Block, der anscheinend öfters geparst wird, als er soll.
Meine Situation
Ich habe drei Templates:
header (header.txt) mit folgendem Inhalt
Code:
<h2>Header</h2>
Code:
<h3>Footer</h3>
Code:
<html><body> {HEADER} Das ist der Inhalt<br><br> <!-- BEGIN testbit --> <a href="test.php">{TESTVAR}</a><br> <!-- END testbit --> <br><br> {FOOTER} </body></html>
In meinem Script will ich die Template index so ausgeben, dass {HEADER} und {FOOTER} durch die Templates header bzw. footer ersetzt werden und dass der Block testbit sagen wir mal 3 Mal mit unterschiedlichen Werten für {TESTVAR} geparst wird.
Mein Script sieht wie folgt aus:
Code:
<?php include("./template.php"); $tpl = new Template("./tpl", "keep"); $tpl->set_file(array("index" => "index.txt", "header" => "header.txt", "footer" => "footer.txt")); $tpl->set_block("index", "testbit", "testbit"); $tpl->set_var(array("TITLE" => "Startseite")); for($i=0;$i<3;$i++) { $var = 10*$i; $tpl->set_var(array("TESTVAR" => $var)); $tpl->parse("testbit","testbit",true); } $tpl->parse("HEADER","header"); $tpl->parse("FOOTER","footer"); $tpl->pparse("OUTPUT","index"); ?>
Nun zu meinem Problem.
Header und Footer werden erfolgreich geparst.
Doch der Block testbit macht Probleme. Laut for() Schleife soll er 3 Mal geparst werden (mit den Werten 0, 10, 20 für {TESTVAR}).
Die HTML Ausgabe lässt aber vermuten, dass er 8 mal geparst wird, denn der Block erscheint 8 mal - aber nicht mit den Werten 0,10,20 sondern mit den Werten 20,0,10,0,20,0,10,0
Die komplette Ausgabe sieht wie folgt aus:
Code:
<html><body> <h2>Header</h2> Das ist der Inhalt<br><br> <a href="test.php">20</a><br> <a href="test.php">0</a><br> <a href="test.php">10</a><br> <a href="test.php">0</a><br> <a href="test.php">20</a><br> <a href="test.php">0</a><br> <a href="test.php">10</a><br> <a href="test.php">0</a><br> <br><br> <h3>Footer</h3> </body></html>
PS: Bin für jede Hilfe oder Link zu einem Tutorial dankbar..
MfG André-Nam