Ich hab eben gelesen, dass du dich im Urlaub befindest. Wäre nett, wenn du dich kurz melden würdest (natürlich nach deiner Rückkehr) und wir kurz die Änderung besprechen können. Vielleicht war meine Aktion ja unnötig, da du eine viel bessere Lösung kennst....
Ich kenne eine bessere Lösung, bin aber nicht sicher ob sie Dir gefällt. Ich mache alle Vergleiche soweit es irgendwie geht in PHP. Natürlich ist es manchmal einfach praktischer
mit TMPL_IF zu prüfen, aber es widerspricht dem Gedanken von Templating, aufwendige
- SWITCH-CASE Strukturen
- IF Strukturen
mit Templating umzusetzen.
Ich mache also die meisten IF-Strukturen PHP-seitig und übergebe dann dem Template nur noch Werte.
Beispiel:
Es gibt verschiedene Eskalations- oder Prioritätslevel in einer DB (sagen wir 4 Stück). Diese 4 Stück können in der DB als Name stehen:
- Blau
- Grün
- Gelb
- Rot
oder als Zahlen
- 1, 2, 3, 4
Ich verwende meistens Zahlen (Primary Key) in solchen Fällen. Es gibt jetzt 2 Varianten das zu lösen:
switch priority
{
case 1
prio_gif = blue.gif;
break;
case 2
prio_gif = green.gif;
break;
case 3
prio_gif = yellow.gif;
break;
case 4
prio_gif = red.gif;
break;
default
error_messageNO_PRIORITY;
}
und dann übergibt man das GIF (den Text, das PDF, etc.) mit der Methode "setVar".
oder Du machst eine TMPL_IF, TMPL_ELSEIF Struktur
tmpl_if name=prio op=== value=1
blau
tmpl_elseif name=prio op=== value=2
grün
...
tmpl_else
Fehlermeldung Keine Prio gesetzt
/tmpl_if
Das INCLUDE-Prinzip: Wenn das oben genannte noch nicht ausreicht, kann man auch völlig modular mit
- include header.php (benutzt das Template header.htm)
- include prio_blue.php (benutzt das Template prio_blue.htm)
usw. arbeiten. Damit teilt man nicht nur seine Seite in mehrere logische Bereiche auf, sondern man ist komplett unabhängig von der angesprochenen TMPL_IF Problematik, da alles völlig wahlweise und modular zusammengestellt werden kann.
Ich verwende das INCLUDE-Prinzip auf meiner
Homepage, um "Header", Navigation und "Footer" immer einzubinden, die verschiedenen Inhalte aber dynamisch aus ein DB. Der User bestimmt durch seinen Klick auf verschiedene Navigationspunkte, welche Datei inkludiert werden muss.
So kann ich mit vLIB sehr modular arbeiten. Kein Skript hat mehr als 20 Zeilen und jedes Skript bildet eine logische Einheit. Ich persönlich könnte sogar auf die Vergleichsmöglichkeiten von TMPL_IF verzichten, weil ich alle "komplizierten" IF-Strukturen in PHP mache.
Fazit: Du solltest Dein Problem also mit PHP und nicht mit TMPL_IF lösen.
Ich hoffe, dass hilft Dir etwas.
Gruß
Claus