SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 222 visiteurs en ce moment

Accueil > Squelettes > Tutoriels pour squelettes > Comment utiliser un tableau (array) dans un squelette ?

Comment utiliser un tableau (array) dans un squelette ?

16 mars 2009 – par cy_altern, Gilles Vincent – commentaires

Toutes les versions de cet article : [English] [français]

3 votes

Les tableaux PHP (array) sont vraiment utiles lorsque vous avez à manipuler les mêmes éléments plusieurs fois.

Ils ont étés introduits avec la version 1.9.2 : #ARRAY{clé1,valeur1,clé2,valeur2...} pour autoriser la création d’un tableau (indexé) de taille variable par exemple pour utiliser dans un #SET ou un critère IN dynamique.

Cette balise vous autorise à faire de nombreuses opération sur les tableaux.

Voir la doc officielle de #ARRAY sur spip.net

Les tableaux PHP (array) sont vraiment utiles lorsque vous avez à manipuler les mêmes éléments plusieurs fois.

Ils ont étés introduits avec la version 1.9.2 : #ARRAY{clé1,valeur1,clé2,valeur2...} pour autoriser la création d’un tableau (indexé) de taille variable par exemple pour utiliser dans un #SET ou un critère IN dynamique.

Cette balise vous autorise à faire de nombreuses opération sur les tableaux.

Exemple

Cet exemple est extrait de spipbb

  1. #SET{modos,#ARRAY}
  2. <BOUCLE_modo_art(AUTEURS){id_article}>
  3. #SET{modos,#GET{modos}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#ID_AUTEUR}}}
  4. </BOUCLE_modo_art>
  5.  
  6. <BOUCLE_art_rub(ARTICLES){id_article}>
  7. <BOUCLE_rub_admin(AUTEURS_RUBRIQUES){id_auteur !IN
  8. #GET{modos}}{id_rubrique=#ID_RUBRIQUE}>
  9. <BOUCLE_aut_admin(AUTEURS){id_auteur}>
  10.  
  11. #SET{modos,#GET{modos}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#_aut_admin:ID_AUTEUR}}}
  12. </BOUCLE_aut_admin>
  13. </BOUCLE_rub_admin>
  14. </BOUCLE_art_rub>

Télécharger

  1. Création d’un tableau vide.
  2. dans la boucle _modo_art #ARRAY{#COMPTEUR_BOUCLE,#ID_AUTEUR} crée un array qui contient un élément de valeur id_auteur indexé par la valeur de #COMPTEUR_BOUCLE (donc pas encore utilisé). La fonction standard array_merge() de PHP réalise ensuite le boulot : cette valeur est alors stockée comme dernier élément du tableau ’modos’.
  3. Un autre ensemble de boucles complète ce tableau avec les auteurs d’articles de la même rubrique.

Notez que la fonction PHP est utilisée comme un filtre : ce n’est possible que parce que son premier argument est l’array à manipuler.

Bien sûr tout ceci pourrait être fait avec du PHP directement dans le squelette. L’avantage d’utiliser la balise #ARRAY est que le résultat est géré par le cache de SPIP.

Remarque : en SPIP 2.0, le plugin spip-bonux permet de raccourcir considérablement la syntaxe d’intégration des éléments dans l’#ARRAY grâce aux balises #SET_PUSH et #SET_MERGE

P.-S.

Voir la doc officielle de #ARRAY sur spip.net

L’auteur original :
Gilles Vincent ( Gilles Vincent )

Dernière modification de cette page le 5 avril 2010

Retour en haut de la page

Vos commentaires

  • Le 27 août 2009 à 15:34, par Valéry En réponse à : Comment utiliser un tableau (array) dans un squelette ?

    Bonjour Gilles,

    Comment faire pour afficher toutes les valeurs d’un tableau dans la page ? Histoire de vérifier ce que l’on est en train de faire.

    En fait j’essaye de lister tous les contenus publiés (articles, brèves, documents...) par date (pour construire un flux d’activités). Je crois que ça devrait être possible avec les #ARRAY, en y insérant des valeurs pour chaque boucle, mais pour l’instant je n’arrive pas à faire quoi que ce soit. La doc semble s’adresser plutôt à des développeurs qui savent de quoi on parle :-)

    Qu’en penses-tu ?

    Valéry

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Newsletters

    16 janvier 2013 – 405 commentaires

    Ce plugin permet de composer des Info-lettres. Par info-lettre, on désigne ici le contenu éditorial qui va être composé et envoyé par courriel à une liste d’inscrits. Le plugin permet de composer une info-lettre à partir d’un modèle pré-composé, (...)

  • GIS 4

    11 août 2012 – 1335 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Mailshot

    16 janvier 2013 – 252 commentaires

    Ce plugin prend en charge l’envoi en nombre d’info-lettres par email. Mailshot permet l’envoi en nombre d’emails au moyen d’un SMTP (ou d’un service externe) dédié à cet effet. Il permet de limiter la cadence d’envoi. Enfin, ce plugin implémente la (...)

  • Une loupe pour vos vignettes

    9 décembre 2005 – commentaires

    Voici un petit exemple de comment utiliser un javascript pour ajouter une loupe sur vos vignettes de documents.

  • Plugin Download Dump

    26 décembre 2007 – 26 commentaires

    Plugin qui permet de télécharger la sauvegarde SPIP de la base de donnée, depuis l’espace privé sans utiliser de client ftp.

Ça spipe par là