phpbar.de logo

Mailinglisten-Archive

[pear] ITX - Template

[pear] ITX - Template

Thilo Raufeisen pear at unrealforum.de
Fre Jun 13 00:14:33 CEST 2003


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