Manchmal möchte man im Fluid-Template etwas vom Content abhängig machen. So ist es manchmal nützlich zu prüfen, ob in einer Contentspalte (colpos x) ein Inhaltselement existiert.
Dies ist garnicht schwer und lässt sich folgendermaßen lösen:
Extension VHS (FluidTYPO3)
VHS ist eine sehr umfangreiche Sammlung an Viewhelpern für extrem viele Anwendungsfälle.
Mit VHS lässt sich eine Contantspalte ganz einfach auf Inhaltselemente prüfen:
<f:if condition="{v:content.get(column:1) -> v:iterator.first()}">
<div class="myAmazingClass">
</div>
</f:if>
Hiermit wird einfach der Content aus Spalte 1 geholt, und durch v:iterator.first das erste Element selektiert. Wenn dieses Selektieren möglich ist, dann muss es Inhalt geben und die IF-Condition ist wahr.
Fügt man in die Condition noch ein slide ein, dann kann man auf Unterseiten prüfen ob es einen Inhalt gibt, der oberhalb dieser Seite platziert wurde. Dafür muss die Condition wie folgt angepasst werden:
{v:content.get(column:1, slide:'-1') -> v:iterator.first()}
Ich hoffe dieser Artikel war hilfreich für dich. Falls du noch Fragen hast oder du mir deinen Erfolg melden möchtest, hinterlasse gern einen Kommentar oder Teile diesen Beitrag 🙂
Danke und viele Grüße
Naderio / Thomas
12. Dezember 2018 um 14:55
Hallo,
sehr guter Tipp. Lässt sich dieses Konstrukt auch dafür einsetzen, um herauszufinden ob es sich bei einem cObject um das Erste handelt?
Anwendungsfall: Das erste cObject in einer bestimmten Spalte erhält immer eine h1-Headline, alle anderen nicht.
Ich google mir gerade einen Wolf, komme nicht drauf, lande aber immer wieder auf deiner Seite und dachte, ich schreibe jetzt einfach mal.
12. Dezember 2018 um 15:30
Hi Ronny,
Du könntest theoretisch auch fragen:
< f:if condition="{v:content.get(column:1) -> v:iterator.first()} == {deinCObject}" >...< /f:if >
(Musste Leerzeichen einfügen, die Kommentarfunktion ließ den Code nicht zu :P)
Das dann innerhalb von einer foreach Schleife, dann kannst du das damit prüfen. Aber eine besonders schöne Lösung wäre das nicht.