TYPO3 Fluid: f:if inline
Es gibt immer wieder Situaionen in denen es einfacher ist mit inline f:if zu arbeiten. Dies ist zum Beispiel der Fall, wenn man in einer Schleife beim ersten Durchlauf eine andere CSS Klasse setzten möchte.
Die einfachste Variante
Hier wird nur überprüft ob eine Variable gesetzt wurde, also "true" ist.
Es wird überprüft ob eine Variable "true" ist
{f:if(condition: variable, then: 'ist true', else: 'ist nicht true')}
{f:if(condition: '{variable}', then: 'ist true', else: 'ist nicht true')}
Beispiele mit komplexeren Abfragen
Es ist auch möglich zwei Variablen auf einmal zu prüfen. Je nach Prüfung kann es auch nötig sein die Werte zu escapen.
Weitere Varianten
{f:if(condition: '{variable} == 1', then: 'ist 1', else: 'ist nicht 1')}
{f:if(condition: '{variableA} && {variableB}', then: 'ist beides true')}
{f:if(condition: '{variableA} || {variableB}', then: 'mindestens eine von beiden ist true')}
{f:if(condition: '{variable} == \'Text\'', then: 'variable ist gleich Text')}
{f:if(condition: '{variable} == "Text"', then: 'variable ist gleich Text')}
Praktisches Beispiel
In diesem Beispiel wird eine f:for Schleife durchlaufen. Die erste Zeile erhält die CSS Klasse "erstezeile".
Die erste Zeile erhält die CSS Klasse "erstezeile"
<f:for each="{items}" as="item" iteration="iterator">
<div {f:if(condition: '{iterator.isFirst}', then: ' class="erstezeile"')}></div>
</f:for>