PUBLISHED : {si ...}

**SPIP**

# Article validated

The article "**{si ...}** ({si ...} - SPIP)" was
validated by <multi>[ar]جورج[fr]George [en]George</multi>.

* * *

## {si ...}

Sunday 24 May 2020 , by [jack](.././?page=auteur&id_auteur=593&)

The **`{si ...}`** criterion is used to condition the execution of a loop
to the condition expressed as an argument in the criterion.

Example :

    <BOUCLE_art

    (ARTICLES)

    {si
    
    #ID_RUBRIQUE

    |==

    {8}
    
    }

    {par date}

    >

      <a href="
    
    #URL_ARTICLE
    
    ">
    
    #TITRE
    
    </a>

    </BOUCLE_art>

The loop will be executed only if, in the execution environment of the
loop, `#ID_RUBRIQUE` is equal to "8".

The *conditional* part of the loop, the one written between ` </B_art> `
and ` <//B_art> `, will be executed in the two cases where :

* *either* #ID_RUBRIQUE does not exist in the environment or is not equal
to 8 (taking into account the criterion `{si ...}` ;
* *or* #ID_RUBRIQUE is indeed equal to 8 but the loop does not return any
result.

This new criterion **`{si ...}`**, available from SPIP 3.0
(SPIP), allows to at
last get rid of the impossibility to use a loop in the conditional part of
a tag.
For example, where it was necessary to write

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

... ]

because `mypage.html` contained a loop, it is now possible to write
directly into the calling template (without INCLURE):

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

Of course, the criterion **`{si ...}`** can be related to any type of
variables (#ENV, #GET,...)
For example, a loop whose execution will be conditioned by the result of a
calculation involving a variable from the environment `#ENV{var}`
(retrieved from the url) and a variable `#GET{val}` (previously defined in
the template):

    #SET

    {val, 2}

    <BOUCLE_a

    (ARTICLES)

    {si
    
    #ENV

    {var}

    |plus

    {
    
    #GET
    
    {val}}

    |==

    {5}
    
    }

    >

    ...

## See also

The CONDITION loop
(SPIP)

— Sent by SPIP (https://www.spip.net/)

rubon199.jpg