{si ...}

-  {si ...} biedt de mogelijkheid de uitvoering van een lus te laten voldoen aan een voorwaarde die als argument wordt meegegeven.

  • Apparu en : SPIP 3.0

{si ...} biedt de mogelijkheid de uitvoering van een lus te laten voldoen aan een voorwaarde die als argument wordt meegegeven aan dit criterium.

Het Franse woord si betekent onder andere "als", "wanneer", maar ook "jawel!".

Bijvoorbeeld:

<BOUCLE_art(ARTICLES) {si #ID_RUBRIQUE=={8}} {par date}>
  <a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_art>

De lus wordt uitsluitend uitgevoerd wanneer, in de context waarin de lus wordt uitgevoerd #ID_RUBRIQUE gelijk is aan "8".

Het conditionele gedeelte van de lus, dat wat staat geschreven tussen </B_art> en <//B_art>, wordt uitgevoerd in de volgende twee situaties:

  • ofwel #ID_RUBRIQUE is niet in de context van de lus aanwezig of is niet gelijk aan "8" (dit is dus de toepassing van de voorwaarde {si ...};
  • ofwel #ID_RUBRIQUE is gelijk aan "8", maar de lus levert geen enkel resultaat.

Het criterium {si ...}, wat beschikbaar is sinds SPIP 3.0, verlost ons dus van de beperking dat in het conditionele deel van een baken geen lus kan worden gebruikt. Waar het bijvoorbeeld noodzakelijk was hetvolgende te programmeren

  [(#SESSION{statut}|=={1comite}|oui) <INCLURE{fond=mijnpagina, ...}> ... ]

omdat mijnpagina.html een lus bevatte, kan nu dus direct in het opgeroepen skelet worden geprogrammeerd (dus zonder complexe INCLURE):

  <BOUCLE_xy(AUTEURS) {si #SESSION{statut}|=={1comite}}> ...

En het criterium {si ...} kan worden toegepast op alle soorten variabelen (#ENV, #GET,...)
Bijvoorbeeld: een lus waarvan de uitvoering afhankelijk moet worden gesteld van het resultaat van een berekening, kan hiertoe gebruik maken van een omgevingsvariabele #ENV{var} (doorgegeven via de URL) en een variabele #GET{val} (die eerder in het skelet werd gedefinieerd):

#SET{val, 2}
<BOUCLE_a(ARTICLES) {si #ENV{var}|plus{#GET{val}}|=={5}}>
...
  
  

Auteur Hanjo Gepubliceerd op:

Vertalingen: English, français, Nederlands