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