Leider ist es mit dem normalen TYPO3 Fluid nicht möglich eine for each Schleife als Random Sortierung auszugeben.
Hier benötigen wir die Extension VHS um das Fluid um weitere ViewHelper zu erweitern.
Installiert somit die Extension: VHS
Fügt dann in dem Fluid-Template wo die for each Schleife liegt, den namespace von der Ext:VHS hinzu:
{namespace v=FluidTYPO3\Vhs\ViewHelpers}
Tauscht nun den Fluid „f:for each“ Teil aus:
<f:for each="{addresses->v:iterator.sort(order: 'SHUFFLE', sortBy: 'company')}" as="address" iteration="iterator">
Info: Name der Variable tauschen und den sortBy Feld bearbeiten.
Erklärung:
order
ASC, DESC, RAND or SHUFFLE. RAND preserves keys, SHUFFLE does not – but SHUFFLE is faster
Beispiel/Beschreibung:
https://fluidtypo3.org/viewhelpers/vhs/master/Iterator/SortViewHelper.html
Da die meisten Fluid-Template in den Cache abgelegt werden, solltet Ihr ggf. das Template noch als „uncache“ ausgeben.
Dafür stellt die EXT:VHS einen weiteren VH zur Verfügung: v:render.uncache
Die komplette for:each sieht dann bei mir so aus:
<f:for each="{addresses->v:iterator.sort(order: 'SHUFFLE', sortBy: 'company')}" as="address" iteration="iterator">
<v:render.uncache partial="ListItem" arguments="{_all}"/>
</f:for>
Nun sollte sich bei jedem Browser-Reload die Ausgaben unterscheiden.
Ursprünglich erschienen am 12.09.2019 auf typo3-probleme.de.