TYPO3 / Fluid – IF Condition inline

Des öfteren benötige ich für GridElement-Templates, Frontend-Templates oder Extension-Templates immer wieder die in TYPO3 Fluid IF-Abfragen als Inline Aufbau. Immer wieder suche im Netz nach passenden Beispielen wenn es darum geht, z.B. inline CSS styles mit einzubinden.
Daher hier ein paar Beispiele der unterschiedlichen Möglichkeiten für Condition:

Gebe „active“ aus, sobald die Variable „true“ ist!

{f:if(condition: ValueNameHere, then: 'active')}

Prüfe die Variable und gebe dann einen Wert aus

{f:if(condition: '{ValueNameHere} == \'Yes\'', then: 'active')}

{f:if(condition: '{ValueNameHere} == "Yes"', then: 'active')}

oder mit einer Zahl eine Variable prüfen.

{f:if(condition: '{ValueNameHere} == 1', then: 'active')}

Mehrere Variablen prüfen:

{f:if(condition: '{0: ValueNameHere, 1: AbfrageText} == {0: \'Yes\', 1: \'Hier kommt der Text\'}', then: 'active')}

Hier noch ein paar weitere Abfragemöglichkeiten als Beispiel:
https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/If.html
https://wiki.typo3.org/Fluid_Inline_Notation

Gehen wir nun mal davon aus, dass wir einen DIV-Container haben und wollen darin eine Abfrage für eine CSS-Class oder sogar Inline-CSS-Styles aufbauen:

<section class="className {f:if(condition: '{ValueNameHere}', then: 'class-name-2')}" {f:if(condition: '{ValueNameHere}', then: 'style=\"background: url('uploads/{ValueNameHere}\"')')}>
    Content
</section>

Wichtig ist dabei, dass Ihr anfang die Anführungszeichen zu escape! Das geht mit dem \ (Backslash)
In meinen Beispiel gebe ich für die GridElemente Extension Inhalte je nach Backend-Auswahl aus, bzw. kann ich im Backend ein Hintergrund-Bild für einen Container hinterlegen:

<section class="columns-1-col-wrap columns-grid-{data.tx_gridelements_backend_layout} {data.flexform_containerbg} {f:if(condition: '{data.flexform_containerbgimage}', then: 'container-bgimage')}" {f:if(condition: '{data.flexform_containerbgimage}', then: 'style="background-image: url(\'uploads/ContentBackground/{data.flexform_containerbgimage}\'")')}>
    Content
</section>

Schreibt gerne weitere Beispiel in den Kommentaren!

Eure Meinung zu dem Artikel ist gefragt! Schreibt mir ein Kommentar

Hat Euch der Artikel weitergeholfen oder gefallen?
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!

Leave a Reply

Captcha * Time limit is exhausted. Please reload CAPTCHA.

Next ArticleKommunikationskanal für TYPO3