[SPIP] PUBLISHED : {si ...}

SPIP

Article validated

The article « {si …} » was validated by Ricardo Porto.


{si …}

Wednesday 5 February 2025, by Ricardo Porto

O critério {si ...} permite condicionar a execução de um loop à condição expressa como argumento no critério.

Table of contents- Ver também

Exemplo:

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

O loop será executado unicamente se no ambiente de execução do loop #ID_RUBRIQUE for igual a « 8 ».

A parte condicional do loop, aquela inscrita entre </B_mat> e <//B_mat>, será executada nos dois casos em que:

  • #ID_RUBRIQUE não exista no ambiente ou não for igual a 8 (considerando o critério {si ...} ;
  • #ID_RUBRIQUE seja igual a 8 mas o loop não retorne nenhum resultado.

Este critério {si ...}, permite superar a impossibilidade de usar-se um loop na parte condicional de uma tag.

Por exemplo, onde era preciso escrever

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

porque minhapagina.html conteria um loop, torna-se possível escrever diretamente no template de chamada (portanto sem INCLURE):

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

Com certeza, o critério {si ...} pode ser aplicado a qualquer tipo de variável (#ENV, #GET,…)
Por exemplo, um loop cuja execução for condicionada pelo resultado de um cálculo envolvendo uma variável de ambiente #ENV{var} (recuperada a partir do URL) e uma variável #GET{val} (previamente definida no template):

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

— Sent by SPIP