Les Itérateurs pour SPIP 2.1

Les itérateurs sont une fonctionnalité de la branche SPIP 3.*. Ils permettent de faire des boucles non plus seulement sur des articles et autres objets de la base de données SQL de SPIP, mais sur n’importe quoi : fichiers, tableaux de données, web services, etc. En savoir +

Ce plugin met cette fonctionnalité à disposition dans SPIP 2.1. Prenez le temps de lire la documentation et de regarder les nombreuses démos disponibles dans le plugin “Démos des itérateurs”.

Voici quelques exemples des boucles que permettent les itérateurs de SPIP :

  • lire un tableau de données produit par une fonction quelconque
  • afficher le contenu d’un fichier local au format XML, CSV, JSON, YAML, iCalendar, etc.
  • boucler sur la liste des fichiers présents dans un répertoire du serveur
  • faire une requête sur un webservice et afficher les résultats.

Concrètement, on peut sans grand effort faire des boucles « Web 1.0 » sur toutes sortes de fichiers déposés sur le serveur. On peut aussi boucler en « Web 2.0 » sur des vidéos YouTube, sur des photos Flickr, des livres (par titre ou par numéro ISBN), sur des requêtes de traduction sur google.translate, sur un tableur édité sur Google Documents, etc.

Pour ne prendre qu’un seul exemple, voici une boucle qui permet d’afficher le contenu d’un tableur Google Documents :

Boucle :

[(#REM) Identifiant de notre tableur]
#SET{key,0AolUP3c6K9JodGwxRjJzb2hyTGZLU29qRVItRXk1VXc}
<B_csv>
<table>
<BOUCLE_csv(DATA)
{source csv, https://spreadsheets.google.com/pub?key=#GET{key}&hl=en&output=csv}>
<tr>
<td>#VALEUR{0}</td>
<td>#VALEUR{1}</td>
<td>#VALEUR{2}</td>
</tr>
</BOUCLE_csv>
</table>
</B_csv>

Résultat :

Pays PIB Population
Rémitanie 12 1
Baldoghistan 23 2
Républiques Unies 43 3
Diloduristan 12 4
Zarlatie 9 5

Ce plugin a été intégré dans SPIP 3: https://www.spip.net/fr_article5444.html

Les liens de la documentation originale/officieuse (et en version bêta) :

 

Si vous utilisez ce plugin, n’hésitez pas à partager dans le forum ci-dessous vos formats, et toutes vos astuces pour boucler sur différents services et fichiers.

updated on 2 October 2019

Discussion

24 discussions

  • 2

    Petit exemple pour afficher une image au hasard dans un répertoire :

    <BOUCLE_ls(DATA){datasource #CHEMIN{images/separateurs}/*,glob}{par hasard}{0,1}>
    <img src="#VALEUR" alt="" />
    </BOUCLE_ls>
    • Oui c’est un usage typique. Note qu’on vient de modifier un peu la syntaxe et qu’il vaut mieux désormais utiliser :

      <BOUCLE_ls(DATA){source glob, #CHEMIN{images/separateurs}/*}{par hasard}{0,1}>
      <img src="#VALEUR" alt="" />
      </BOUCLE_ls>

      J’ajoute aussi que si on veut manipuler des attributs des fichiers (date de création, de modification, taille, extension etc.) on peut utiliser le format ls à la place de glob.

    • En fait je n’avais pas vu le dossier de démo... Y’a plein d’exemples dedans, c’est parfait. Encore bravo pour cette écriture qui simplifie la vie... Sans compter le nouveau critère si qui évite l’utilisation de la boucle CONDITION... Bref, merci

    Reply to this message

  • 1

    Petit détail : le lien vers spip-contrib dans le fichier plugin.xml est invalide.
    http://www.spip-contrib.net/3667

    • Merci c’est réparé (le fichier .htaccess de SPIP-Contrib n’était pas à jour).

    Reply to this message

  • 2

    Bonjour, Fil, bonjour, Matthieu,

    Je prendrai le temps de tester cet ensemble de fonctionnalités dès qu’un moment se libèrera. Je lis qu’avec booksearch, on peut pointer sur le webservice d’Amazone, ce qui m’intéresse au plus haut point ! Cette connexion serait-elle possible (en théorie, ou avec un peu d’huile de coude) avec une application comme zotéro ?

    J’ai parcouru très rapidement les différentes publications, mais il me faudra du temps pour que j’entre dans la logique de tout cela. Vous signalez, en début d’article :

    ... de regarder les nombreuses démos disponibles à l’adresse spip.php?page=demo/iterateurs.

    Faites-vous référence à d’autres pages ?

    Quoi qu’il en soit, félicitations pour ce bond en avant ! Comme cela, en fin d’année, c’est comme mettre un pied sur mars en 2011 !!!

    Bonne continuation !
    KMk

    • Zotero est sans aucun doute interrogeable, mais il faudrait trouver exactement comment (sa doc http://www.zotero.org/support/dev/s... n’est pas super claire, ne donnant aucun exemple concret).

      Visiblement leur API renvoie des résultats au format ATOM, du coup on peut déjà par exemple lister les éléments d’un utilisateur via :

      <BOUCLE_zotero(DATA)
      {datasource https://api.zotero.org/users/14509/items,atom}>
      <hr />
      [(#VALEUR|print{<br />})]
      </BOUCLE_zotero>

      mais ce n’est pas très différent d’un flux de syndication... on peut sûrement faire beaucoup plus intéressant.

    • Re- bonjour,

      Dès que se dessine “l’ombre d’une éclaircie”, je m’y mets... l’envie est trop grande !
      Merci pour cette réponse.

      Bonne fin d’année,
      KMk.

    Reply to this message

  • StrangeBlackHole

    Je voulais juste dire un grand merci pour ce superbe plugins qui laisse augurer de grandes choses pour la prochaine version de Spip...

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom