Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84
Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84
Mit Typo3 8 wurde Fluid als Standalone Plugin weiterentwickelt und einigen Änderungen und Erweiterungen unterzogen. Da die Frage immer wieder mal auftaucht – hier eine kurze Übersicht die der if Viewhelper in Typo3 Fluid aufgebaut ist. Einmal in Typo3 7 und früher, einmal in Typo3 ab Version 8.
Fluid if Viewhelper in Typo3 7 und früher
Hier gab es das elseif-Konstrukt noch nicht, und man musste die if-Conditions in der Regel verschachteln:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<f:if condition="{variable} == 'bestimmterWert'"> <f:then> // dann führe folgendes aus </f:then> <f:else> <f:if condition="{andereVariable} == 'bestimmterWert'"> <f:then> // dann führe folgendes aus </f:then> <f:else> // dann führe diese Anweisungen aus </f:else> </f:if> </f:else> </f:if> |
Eine Ausnahme gab es, um ohne die if-Verschachtelung auszukommen – man konnte via Arrays die logische UND-Verknüpfung (&&) wie folgt nachbauen, und sich somit das Verschachteln der if-Anweisungen sparen:
1 2 3 |
<f:if condition="{0: jahre, 1: monate} == {0: vergleichsJahr, 1: vergleichsMonat}"> // dann führe folgendes aus </f:if> |
Fluid if-Viewhelper in Typo3 8 und höher
1 2 3 4 5 6 7 8 9 10 11 |
<f:if condition="{variable} == 'bestimmterWert'"> <f:then> // dann führe folgendes aus </f:then> <f:else if="{andereVariable} == 'bestimmterWert'"> // dann führe folgendes aus </f:else> <f:else> // für den Rest führe folgendes aus.. </f:else> </f:if> |
Möglich ist auch, diese Abfragen mit logischen UND bzw. ODER in kürzerer Schreibweise zu schreiben:
1 2 3 4 |
<f:if condition="({variableOne} && {variableTwo}) || {variableThree} || {variableFour}"> // Done if both variable one and two evaluate to true, // or if either variable three or four do. </f:if> |
Weitere Beispiele:
1 2 3 4 |
<f:if condition="{variable} || {andereVariable}"> // dann führe folgendes aus </f:if> |
Ist wahr, wenn eine der beiden Variablen gesetzt ist.
Inline Schreibweise von if-Conditions:
If – Abfragen können auch inline geschrieben werden. Das ist z.B. sinnvoll, wenn in Fluid-Templates je nach gesetzten Variablen oder bei bestimmten Varialben-Werten bestimmte CSS-Klassen ausgegeben werden sollen.
Beispielsweise wenn im Backend bei Inhaltselementen im Reiter „Erscheinungsbild“ bestimmte Layouts, Frames oder Abstände ausgewählt werden.
Hier die generelle Schreibweise:
1 2 3 |
{f:if(condition: variable1, then: 'bestimmterWert')} // Hier wird "bestimmterWert" ausgegeben, wenn die Variable "variable1" gesetzt ist |
1 2 3 |
{f:if(condition: '{variable1} == "Yes"', then: 'bestimmterWert')} // Hier wird "bestimmterWert" ausgegeben, wenn die Variable "variable1" dem String "Yes" entspricht |
1 2 3 |
{f:if(condition: '{variable1} == 1', then: 'bestimmterWert')} // Hier wird die Variable "bestimmterWert" ausgegeben, wenn die Variable "variable1" der Zahl 1 entspricht. |
1 2 3 |
{f:if(condition: '{variable1} == 1', then: 'bestimmterWert', else: 'andererWert')} // Wenn die Variable "variable1" der Zahl 1 entspricht wird "bestimmterWert" ausgegeben, in allen anderen Fällen "andererWert". |