Programmer avec SPIP 3.0
Documentation technique sur SPIP 3.0

> > > > Contenu des boucles

Contenu des boucles

Le contenu extrait des sélections réalisées avec des boucles SPIP est affiché grâce à des balises. Automatiquement, lorsqu’une table possède un champ SQL « x », SPIP pourra afficher son contenu en écrivant #X.

  1. <BOUCLEx(TABLES)>
  2. #X - #NOM_DU_CHAMP_SQL - #CHAMP_INEXISTANT<br />
  3. </BOUCLEx>

Télécharger

SPIP ne créera pas de requête SQL de sélection totale (SELECT * ...) pour récupérer les informations demandées, mais bien, à chaque fois, des sélections spécifiques : ici, ce serait SELECT x, nom_du_champ_sql FROM spip_tables.

Lorsqu’un champ n’existe pas dans la table SQL, comme ici « champ_inexistant », SPIP ne le demande pas dans la requête, mais essaie alors de le récupérer dans une boucle parente, si il y en a. Si aucune boucle parente ne possède un tel champ, SPIP le cherche alors dans l’environnement, comme si l’on écrivait #ENV{champ_inexistant}.

Exemple

Imaginons une table SQL "chats" contenant 5 colonnes « id_chat », « race », « nom », « age », « couleur ». On pourra lister son contenu de la sorte :

  1. <B_chats>
  2. <table>
  3. <tr>
  4. <th>Nom</th><th>Age</th><th>Race</th>
  5. </tr>
  6. <BOUCLE_chats(CHATS){par nom}>
  7. <tr>
  8. <td>#NOM</td><td>#AGE</td><td>#RACE</td>
  9. </tr>
  10. </BOUCLE_chats>
  11. </table>
  12. </B_chats>

Télécharger

Automatiquement, SPIP, en analysant le squelette, comprendra qu’il doit récupérer les champs nom, age et race dans la table SQL chats. Cependant, il n’ira pas récupérer les champs dont il n’a pas besoin (ici id_chat et couleur), ce qui évite donc de surcharger le serveur de base de données en demandant des champs inutiles.