Zum Hauptinhalt springen

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>