Mailinglisten-Archive |
Hallo, ich habe mich ein wenig mit der ITX-Templateklasse auseinandergesetzt. Mit den Funktionen addblockfile und replaceblockfile hat man ja doch nette Möglichkeiten. Jedoch ist mir aufgefallen, das auch Blöcke mit Variablen geparsed werden, die nie mittels setcurrentBlock gesetzt wurden. Dadurch wird das Feature zum automatischen entfernen unbenutzter Blöcke nutzlos. Man muss dann sämtliche unbenutzten (bzw nicht erwünschten) Blöcke "von Hand" mittels replaceblockfile entfernen. Mir ist aufgefallen, das dieses Problem nicht auftritt, wenn man nur 1 Datei benutzt. Nur bei mehreren. Hier mal ein Beispiel: Datei: index.html (für Header, Navmenü etc) <html> <body> ... {content} ... </body> </html> Datei uebersicht.html (das, was in {content} rein soll) <table> <tr> <td>{var1}</td> <td>{var2}</td> </tr> <!-- BEGIN auflistung --> <tr> <td>{wert1}</td> <td>{wert2}</td> </tr> <!-- END auflistung --> <!-- BEGIN andereliste --> <tr> <td>{wert2}</td> <td>{wert3}</td> </tr> <!-- END andereliste --> </table> Wenn man nun mittels $tpl -> addBlockFile("content","content","uebersicht.html"); die uebersicht.html in die index.html einfügt geht das soweit noch gut. Wenn ich nun jedoch ein Array mit den Keys wert1 und wert2 in auflistung setzen will, wird wert2 in andereliste dennoch geparsed: $tpl -> setCurrentBlock("auflistung"); while(....){ $tpl -> setVariable($array); $tpl -> parseCurrentBlock(); } Mir scheint so, als würde bei einem SetVariable die Zuordnung zum Block fehlen. Die beiden alternativen (clearcacheonparse und replaceblockfile) sind doch ein wenig umständlicher, wenn man mit vielen und umfangreichen Templates rumhantiert. Hab ich in meinen Überlegungen einen Fehler oder ist das so "gewollt"? Gruß Thilo
php::bar PHP Wiki - Listenarchive