Templates, Probleme
Aus eZ Wiki
Der Template-Parser ist immer wieder für Überraschungen gut. Hier eine Sammlung diverser Nickeligkeiten die schon die eine oder andere Stunde Lebenszeit vergeudet haben.
* Whitespace bei Funktionen, z.B. hash ('a', 'b') ist falsch.
* Berechnungen mit üblichen Operatoren sind nicht möglich. Also sub() und sum() statt - oder + verwenden.
* Einige Funktionen erlauben sowohl piping als auch Parameterübergabe in Klammern, andere nicht. Das scheint in manchen Fällen inkonsequent zu sein. Zum Beispiel count_chars().
* Die Fehlertoleranz der Templatesprache ist eher Plage als Nutzen. Da kann es bei fehlenden Klammern zu seltsamem Verhalten kommen.
* Quotes hash(), Bei der Definition von hash() kann man nur eingeschränkt Quotes verwenden, da das escapen hier nicht richtig funktioniert.
Inhaltsverzeichnis |
CHARSET Angabe in Templates
Eine Charset-Angabe muss zwingend als erste Zeile gemacht werden. Steht z.B. auch nur ein Kommentar in der ersten Zeile funktioniert es nicht.
{*?template charset=utf-8?*}
Variablen müssen definiert sein
template.tpl
[...]
{def $a='AINIT'}
{set $a='Apfel'}
{set $b='Banane'}
<h4>a = {$a}</h4>
<h4>b = {$b}</h4>
[...]
Browser
[...]
a = Apfel
b =
[...]
Klammern
Ein Ausdruck wie
{if (MyExpression)}wahr{/if}
funktioniert nicht! Klammern können nicht neutral eingesetzt werden. Es muss also
{if MyExpression}wahr{/if}
der Ausdruck ohne Klammern formuliert werden.
Klammern2
Bei geschweiften Klammern ohne Inhalt bricht der Template-Parser stillschweigend ab.
{}
attribute_filter
Der "like"-Filter muss in Kleinschreibung definiert werden. Angenommen der "title" ist "Beispiel 1", so findet dieser Filter nichts:
$attribute_filter = array( array( 'article/title', 'like', 'Beispiel*' ))
Dieser hier aber schon
$time_filter = array( array( 'article/title', 'like', 'beispiel*' ))
