Toon items in een willekeurige volgorde, hussel je Smarty arrays!

Een board om T&T's te plaatsen m.b.t. CMSMS, PHP of Smarty

Moderator: velden

Post Reply
Jos
Support Guru
Support Guru
Posts: 4017
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Toon items in een willekeurige volgorde, hussel je Smarty arrays!

Post by Jos »

Veel modules voorzien in het tonen van items in een lijst. Meestal kun je de output aanpassen in een "summary template" of "samenvattings sjabloon".

Als je de items in een willekeurige volgorde wilt laten zien, hebben sommige modules een parameter beschikbaar die je kunt instellen. Echter, als een module zo'n "randomize" parameter niet kent, is er ook een andere eenvoudige manier om dit te bereiken met slechts één regeltje Smarty code.

Laten we eens kijken naar de News module
In het samenvattingssjabloon vind je de Smarty array variabele $items, welke alle nieuws-items bevat. Je kunt er ook de regel {foreach from=$items item=entry} herkennen, welke ervoor zorgt om de $items array te doorlopen.

Om de nieuwsitems in een willekeurige volgorde te tonen hoef je alleen de volgende code net vóór de {foreach from=$items item=entry} statement in te voegen:

Code: Select all

{capture}{$items|@shuffle}{/capture}
Ik gebruik capture rondom de shuffle functie om de functie-output '1' te verbergen. Misschien is daar een simpelere manier voor maar dit was mijn eerste ingeving.

Ander voorbeeld: Gallery
De Gallery module kent de parameter action='showrandom', maar als je alleen maar de afbeeldingen in de gekozen subgalerij wil husselen, dan kun je de volgende code

Code: Select all

{capture}{$images|@shuffle}{/capture}
invoegen net voor de {foreach from=$images item=image} statement.

Je kunt deze methode in elke template van elke module gebruiken waar je een array-variabele ziet in een {foreach} of {section} tag.
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Toon items in een willekeurige volgorde, hussel je Smart

Post by Rolf »

Een simpele truc, die ik al vaak gebruikt heb ;)

Thx. Rolf
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
Post Reply

Return to “Tips en Trucs”