Proposé : La boucle DATA

**SPIP**

# Article proposé

L’article "**La boucle DATA**
(SPIP)" est proposé
à la publication depuis le mardi 27 février 2018.

* * *

## La boucle DATA

mardi 27 février 2018 , par [BoOz](.././?page=auteur&id_auteur=1524&)

La boucle DATA est capable d’itérer sur un jeu de donnée `data` de type
`source`.

Sa syntaxe de base est la suivante :

``<BOUCLE_afficher(DATA){source `source`,`data`}> <br />
[(#CLE)] - [(#VALEUR|print_r{1})] <br />
</BOUCLE_afficher>``

SPIP connait par défaut les types de données `source` suivant :

- Tableau ou objet php : `table|tableau`
- Emplacement des fichiers locaux : `ls|preg_files`
- Contenu des fichiers locaux : `file|csv|json|...`
- Commandes : `sql|liste|...`

On peut ajouter facilement un type de donnée `ma_source` en créant un
fichier `inc/ma_source_to_array.php`

`<?php<br />
function inc_ma_source_to_array_dist($data,$param1='',$param2=''){<br />
     // $data contient le {{contenu}} du fichier (local | distant) ou bien
la valeur de la variable passée dans le critère.<br />
    // $param1, $param2... sont des paramètres facultatifs<br />
    if($data == "test")<br />
        $data = array(<br />
            array("couleur"=>"vert"),<br />
            array("couleur"=>"bleu"),<br />
        ) ;<br />
    return $data ;<br />
}`

`<BOUCLE_exemple(DATA){source ma_source,test}{"<br>"}><br />
#COULEUR<br />
</BOUCLE_exemple>`

Résultat :
vert
bleu

**À noter :** `#VALEUR` étant un tableau, on peut accéder à

`#VALEUR{couleur}` qui est équivalent à `#COULEUR`

**Bon à savoir :** Le résultat d’une boucle DATA est enregistré en
cache. On peut désactiver ce comportement avec le critère `{datacache 0}`

Un chapitre complet détaille l’usage des boucle DATA et propose des
exemples d’usage : Les itérateurs de SPIP - la boucle (DATA)
(SPIP).

— Envoyé par SPIP (https://www.spip.net/)

rubon143-b1fe1.jpg

puce.gif