Je Contentelments l'alimentation dans une extension à l'aide du fluide:Typo3 Fluide: Ajouter une classe à l'élément si elle est d'abord
<f:for each="{field.children}" as="myObj" iteration="iterator">
{myObj.render -> f:format.raw()}
</f:for>
qui fonctionne très bien.
éléments ressemblent à ceci:
<div class="childElement">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>
Les éléments sont ensuite affichés d'une certaine manière.
Maintenant, je veux le premier élément d'avoir une classe supplémentaire appelée « premier ». Le premier élément serait alors ressembler à ceci:
<div class="childElement first">
<h1>I'm a Caption!</h1>
<p>I'm some text.....</p>
</div>
J'ai essayé résoudre ce en utilisant un itérateur et de vérifier simplement si le iterator « isFirst ». Quelque chose comme ceci:
<f:for each="{field.children}" as="myObj" iteration="iteration">
<f:if condition="iteration.isFirst">
<f:then>
...
Mais je dois encore insérer la classe et il se sent de toute façon, comme il doit y avoir une meilleure façon de le résoudre. Est-ce que quelqu'un peut me pointer vers la bonne direction?
Edit (Solution):
La réponse acceptée a fonctionné pour moi après que je l'ai fait la "<div class="childElement">"
encartoucher dans l'extension plutôt que dans l'enfant. Ma solution ressemble à ceci maintenant:
<f:for each="{field.children}" as="myObj" iteration="iterator">
<div class="childElement {f:if(condition:iterator.isFirst, then: ' first')}">
{childDce.render -> f:format.raw()}
</div>
</f:for>
Wow c'était rapide! Et a travaillé. (Bien que je devais envelopper l'enfant avant de le rendre, mais puisque je peux juste changer l'enfant ce ne sera pas un problème et est probablement "meilleure pratique" de toute façon ...) Merci! – Simon