Am 9.5.2015 um 15:46 schrieb Manuel Bachl: > Hallo, > > ich habe eine Frage bzgl. Fluid. > > Ich nutze Tags, welche in unterschiedlichen Sys-Ordnern hinterlegt sind. > Bei der Ausgabe dieser Tags nutze ich eine for-Schleife und in dieser > eine Abfrage nach der pid. > > Nun versuche ich die Anzahl an Tags mit der jeweils selben pid zu zählen. > > Mein Code bisher: ... > Mein Ziel ist es, an der Stelle an der "Disziplinen" steht, zu > entscheiden, ob nur eine Disziplin (Tag) hinterlegt ist, dann soll > dort nur "Disziplin" stehen, wenn es mehr als eine ist, dann Disziplinen. > Ich kann mit vorstellen, dass es mit einer weiteren for-Schleife > möglich wäre, und in dieser tagCount.total zu verwenden. Doch mir ist > die korrekte innere for-Schleife nicht ganz klar. Zudem denke ich gibt > es einfacheren Weg. > > Wer kann helfen? > Ist das überhaupt verständlich genug erklärt? > > Grüße > _______________________________________________ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german Hallo Manuel,
Vorschlag Ungetestet. <f:for each="{newsItem.tags}" as="tag" iteration="tagCount"> # sehr ungute if-Abfrage, denn eine PID gehört nicht in das Template. immer per Settings oder als Fluid-Variable übergeben, wenn schon das Template als Modell-Aufräumer auch noch überschüssige Information auszusondern soll. # lib.tagCounter wäre ein einfacher Counter im TypoScript (LOAD_REGISTER) (Snippets leicht per Suchmaschine zu finden) # Besser wäre noch, diese Abfrage im TypoScript so zu beschreiben, dass die Schleife nur auszugebende Informationen enthält. Dann könntest du effizient direkt auf den tagCount.total > '1' testen. <f:if condition="{tag.pid} == 43"> <f:then> <li><f:if condition="{0:'{iterator.isLast}', 1:'{f:cObject( typoscriptObjectPath: 'lib.tagCounter')}' } == {0:'1', 1:'1'}"><f:then> <li>Disziplinen:</li> <li class="unbordered"> <f:link.page pageUid="{settings.backPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{tags: tag}}}"> {tag.title} </f:link.page> </li> </f:then> <f:else> <li> <f:link.page pageUid="{settings.backPid}" additionalParams="{tx_news_pi1:{overwriteDemand:{tags: tag}}}"> {tag.title} </f:link.page> </li> </f:else> </f:if> </f:then> </f:if> </f:for> Anmerkung: Insgesamt finde ich deine Lösung suboptimal, da Sie Logik (hart verdrahtete 43 (Pid)) und View miteinander vermischt und da sie die Teilüberschrift "Disziplinen" aus HTML-Sicht gleichrangig wie eine echte Information "{tag.title} " behandelt. Auch tendiere ich dazu, jeglichen Text im HTML-Template bzw. im TypoScript immer in Fremdsprachendateien (f:translate) auszulagern, um in Anlehnung an das MVC-Prinzip in einer TYPO3-Aufsetzung die Logik, die Darstellung und die Inhalte möglichst sauber getrennt zu halten. Dieter -- Dr. Dieter Porth - Mein kleines TYPO3-Labor: http://www.mobger.de/ _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german