Twee eenvoudige iterators: lijsten en opsommingen

Onder de vele krachtige iterators die SPIP 3 huisvest, zijn er twee die zich onderscheiden door hun eenvoud: lijsten en opsommingen.

  • Apparu en : SPIP 3.0

Lijsten

Met deze iterator kan een lijst van elementen worden doorlopen. Deze elementen mogen bestaan uit woorden, getallen of tekstfragmenten. Ze wordt opgeroepen met de voorwaarde liste in de DATA lus die de lijst van elementen zal doorlopen.

Dit voorbeeld werkt met een lijst van priemgetallen:

<ul>
   <BOUCLE_priem(DATA){liste 2, 3, 5, 7, 11, 13}>
       <li>#VALEUR</li>
   </BOUCLE_priem>
</ul>

Je kunt alle voowaardes toepassen die voor alle lussen gelden.

Het scheidingsteken aangeven:

<BOUCLE_maand(DATA){liste januari, februari, maart, april}{"; "}>
      #VALEUR ([(#VALEUR|couper{3})])
</BOUCLE_maand>

geeft weer: januari (jan); februari (feb); maart (maa); april (apr)

De volgorde van de lus omkeren:

<BOUCLE_abc(DATA){liste 1, 10, 100, 1000}{", "}{inverse #ENV{omgekeerd}}>
      #VALEUR
</BOUCLE_abc>

Resulteert in: 1, 10, 100, 1000 of 1000, 100, 10, 1, afhankelijk van de waarde van ’omgekeerd’ in de context (of als parameter in de URL).

Alleen een deel van de lijst gebruiken:

<BOUCLE_abc(DATA){liste januari, februari, maart, april, mei, juni, juli}{", "}{3,2}>
      #VALEUR
</BOUCLE_abc>

begint bij het vierde elementen (het eerste is 0) over en selecteert de volgende 2, wat resulteert in: april, mei.

De waarden kunnen variabelen zijn:

<BOUCLE_kleuren(DATA){liste #GET{voorkeurkleuren}, #ENV{gekozenkleur}}{", "}>
      #VALEUR
</BOUCLE_kleuren>

Opsomming

Ook de iterator voor de omsomming is een eenvoudige lus.

Zijn meest gebruikte toepassing is in deze vorm:

<BOUCLE_opsomming(DATA){enum waarde1, waarde2}>
      #VALEUR
</BOUCLE_opsomming>

of:

<BOUCLE_opsomming(DATA){enum waarde1, waarde2, stap}>
      #VALEUR
</BOUCLE_opsomming>

waarde1 en waarde2 zijn twee numerieke waarden, of twee lettertekens. De lus gaat opsommen vanaf waarde1 tot waarde2. In het eerste voorbeeld is geen stap aangegeven en wordt de standaardwaarde 1 gebruikt.

Gehele getallen in stappen van 1:

<BOUCLE_enum(DATA){enum 10,15}{", "}>#VALEUR</BOUCLE_enum>
</BOUCLE_enum>

De lus begint bij waarde 10 en stopt bij 15. Het resultaat is dus: 10, 11, 12, 13, 14, 15.

Decimalen in stappen van 1:

<BOUCLE_stap(DATA){enum 15.5,10.3}{", "}>
#VALEUR
</BOUCLE_stap>

De lus begint bij 15.5 en stopt vóór 10.3 en resulteert dus in: 15.5, 14.5, 13.5, 12.5, 11.5, 10.5.

Gehele getallen in stappen van 2:

<BOUCLE_stap(DATA){enum 10, 15, 2}{", "}>
#VALEUR
</BOUCLE_stap>

Een lus op de waardes vanaf 10 tot 15 in stappen van 2, wat dus als resultaat geeft: 10, 12, 14.

Letters:

<BOUCLE_abc(DATA){enum g,m}{", "}>
#VALEUR
</BOUCLE_abc>

De lus begint bij de letter "g" en somt op tot letter "m" en stuurt dus terug: g, h, i, j, k, l, m.

Auteur Hanjo Gepubliceerd op: Aangepast: 21/03/23

Vertalingen: English, français, Nederlands