[RSS] Afficher un flux de photos de Flickr

On utilise la boucle DATA de SPIP 3 pour afficher un flux de photos en provenance de Flickr. Ici on prend le flux correspondant au tag "parisweb2011" :
http://api.flickr.com/services/feed...

On utilise un filtre image pour réduire les photos dans une taille vignette de 200px maximum.

Le code

  1. <dl>
  2. <BOUCLE_flickr(DATA)
  3. {source rss, http://api.flickr.com/services/feeds/photos_public.gne?tags=parisweb2011&lang=fr-fr&format=rss_200}{0,5}
  4. >
  5. <dt><a href='#VALEUR{url}'>[(#VALEUR{enclosures}|extraire_attribut{href}|image_reduire{200,0})]</a></dt>
  6. <dd>[(#VALEUR{tags}|implode{', '})]</dd>
  7. </BOUCLE_flickr>
  8. </dl>

Télécharger

Le résultat

Afficher le contenu d’un fichier XML

On affiche le contenu paginé d’un fichier XML disponible en ligne http://zone.spip.org/trac/spip-zone... :

Le code

  1. <B_cite>
  2. <dl>
  3. <BOUCLE_cite(DATA)
  4. {source simplexml, http://zone.spip.org/trac/spip-zone/browser/_plugins_/citation_aleatoire/trunk/citations/citations_fr.xml?format=txt}
  5. {datapath root/children/citation}{pagination 3}>
  6. <dt>#VALEUR{children/auteur/0/text}</dt> <dd>[((#VALEUR{children/texte/0/text}))]</dd>
  7. </BOUCLE_cite>
  8. <dl>
  9. [<div class='pagination'>(#PAGINATION{precedent_suivant})</div>]
  10. </B_cite>

Télécharger

Le résultat

Victor Hugo
(L'Homme est une prison où l'Âme reste libre.)
Pierre Desproges
(En cas de morsure de vipère, sucez-vous le genou, ça fait marrer les écureuils.)
Chateaubriand
(La mémoire est souvent la qualité de la sottise.)

Afficher le cours du dollar des 30 derniers jours

On utilise ici le flux http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml fournit par la BCE qui donne le cours en Euro d’un panier de monnaires sur les 90 derniers jours.

Le flux est XML et peut être lu aisément au moyen d’une boucle DATA :

Le code

  1. <table class='table table-striped'>
  2. <caption>Cours du dollar</caption>
  3. <thead><tr><th>Date</th><th>Cours</th></tr></thead>
  4. <tbody>
  5. <BOUCLE_cours(DATA){source simplexml,http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml?#ENV{date}}{datapath root/children/cube/0/children/cube}{0,30}>
  6. <tr>
  7. <td>[(#VALEUR{attributes/time}|affdate)]</td>
  8. <td>
  9. <BOUCLE_usd(DATA){source tableau,#VALEUR{children/cube}}>[
  10. (#VALEUR{attributes/currency}|=={USD}|oui)
  11. #VALEUR{attributes/rate}&nbsp;EUR
  12. ]</BOUCLE_usd>
  13. </td>
  14. </tr>
  15. </BOUCLE_cours>
  16. </tbody>
  17. </table>

Télécharger

Le résultat

Cours du dollar
DateCours

Les cartes postales de Saône-et-loire avec opendata71.fr

Ici on récupère un flux de données ouvertes (OpenData) depuis http://www.opendata71.fr/interface-....

On s’intéresse aux cartes postales proposées par http://opendata71interactive.clouda... ce qui nous permet au passage d’utiliser un filtre image pour rapatrier une copie locale du fichier et de la redimensionner en 300px de large.

On peut ainsi en moins de 10 lignes :

  • récupérer un flux de données distantes
  • les mettre en cache sur notre site
  • copier les images sur le site et les redimensionner
  • afficher tout cela sans dépendre du temps de réponse du provider (sauf au premier affichage) et indépendamment de sa disponibilité (et en évitant de lui envoyer tout le trafic de notre site).

Le flux est au format ATOM, dont le content contient les données en XML. On utilise deux boucles imbriquées :

Le code

  1. <BOUCLE_open(DATA){source atom,http://opendata71.cloudapp.net/v1/data/INDEXAD71CartesPostales/}{pagination 5}>
  2. <dl>
  3. <BOUCLE_content(DATA){source simplexml,#VALEUR**{content}}>
  4. <dt>[(#VALEUR{children/fichier/0/text}|image_reduire{300,0})]</dt>
  5. <dd><strong>#VALEUR{children/titre1/0/text}</strong></dd>
  6. <dd>&mdash; #VALEUR{children/annee/0/text}[ - (#VALEUR{children/auteur/0/text})][ - (#VALEUR{children/editeur/0/text})]</dd>
  7. </BOUCLE_content>
  8. </dl>
  9. </BOUCLE_open>
  10. [<div class='pagination'>(#PAGINATION{precedent_suivant})</div>]
  11. </B_open>

Télécharger

Le résultat