• Configuration de l'affichage du site :
  • Affichage en pleine largeur
  • Affichage en basse résolution (800px)
  • Affichage en texte seul


Référencement :
conseils, outils, actualité, forum
tout ça gratuit !



Vous êtes ici : Analyses » Articles » Syndication de contenu (Flux RSS, Atom, ...)


Intégrer un flux RSS externe

Imprimer cet article

Par Olivier Duffez, le 28/06/2004

Dans le cas qui nous intéresse, la syndication de contenu correspond à la mise à disposition par un éditeur de site web d'une sorte de résumé des dernières mises à jour effectuées sur son site, de façon que d'autres éditeurs puissent intégrer ce résumé sur leur site ou le consulter à l'aide d'un logiciel spécifique (appelé "agrégateur").
L'exemple le plus courant est celui d'un site d'actualités qui propose sous la forme d'un fichier XML la liste des derniers messages d'actualité (titre + introduction + lien vers l'article). Les formats les plus courants sont RSS et Atom.

Exemple de flux XML

Un exemple étant bien plus efficace qu'un long discours, je vous invite à regarder la page de WRI listant les dernières actus d'une sélection de blogs sur Google. Les flux XML de ces blogs me permettent d'afficher les titres des derniers articles, avec un lien.
Notez qu'il s'agit d'une intégration complète avec des liens "en dur", à la différence des solutions basées sur un code JavaScript.

Intégration

Cet article n'aborde pas la création d'un flux RSS (ceci pourra faire l'objet d'un autre article).

Si vous souhaitez afficher de cette façon des liens vers les derniers articles de l'actualité de WebRankInfo (ou de votre site préféré...), il faut utiliser un code qui sache lire le fichier XML situé sur WebRankInfo. Je vous propose d'utiliser un outil en PHP disponible sous licence GPL : il s'agit de MagpieRSS - "a simple RSS integration tool".

Parmi les fonctionnalités de MagpieRSS, citons :

  • support des formats RSS v0.91 et v1.0 (et dans une moindre mesure la v2.0)
  • support du format Atom (testé sur des blogs de Blogger par exemple)
  • interface très simple, orientée objet
  • code accompagné de nombreux commentaires

Pour l'installer, il suffit de copier le répertoire quelque part sur votre site. Dans mon exemple je l'ai copié dans un répertoire nommé magpierss situé à la racine de mon site.

La seule configuration à effectuer se trouve dans le fichier rss_cache.inc dans lequel vous pouvez choisir le répertoire utilisé pour la gestion du cache, et la durée de vie du cache en secondes (si vous mettez 300, le cache sera recréé si le fichier dans le cache date de plus de 300 secondes).

Pour l'utiliser, je vous conseille de créer une fonction nommée FeedParser() qui sera chargée de formater la liste des derniers éléments des flux à lire. De cette façon, si vous souhaitez changer l'aspect, vous n'aurez qu'à le changer à cet endroit. Voici le code de cette fonction, que j'ai écrit dans le fichier feedparser.php stocké à la racine de mon site :

<?php
// inclusion de la classe magpierss
require_once("magpierss/rss_fetch.inc");

function FeedParser($url_feed, $nb_items_affiches=10)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee,
  // on lit les elements
  if (is_array($rss->items))
  {
   // on ne recupere que les elements les + recents
   $items = array_slice($rss->items,
    0, $nb_items_affiches);

   // debut de la liste
   // (vous pouvez indiquer un style CSS
   // pour la formater)
   $html = "<ul>\n";

   // boucle sur tous les elements
   foreach ($items as $item)
   {
    $html .= "<li>";
    $html .= "<a href=\"".$item['link']."\">";
    $html .= $item['title']."</a></li>\n";
   }
   $html .= "</ul>\n";
 }

 // retourne le code HTML a inclure dans la page
 return $html;
}
?>

Exemples d'intégration

Pour intégrer une liste à puces contenant les derniers éléments d'un flux XML, il suffit de deux lignes de code.

Par exemple pour intégrer les 10 derniers messages de l'actualité de WebRankInfo, il suffit de mettre ce code sur votre page :

<?php
require_once("feedparser.php");
echo
 FeedParser("http://www.webrankinfo.com/rss.php");
?>

Si vous souhaitez afficher des liens vers les 5 dernières définitions du Dico du Net, il suffit de mettre ce code sur votre page :

<?php
require_once("feedparser.php");
echo
 FeedParser("http://www.dicodunet.com/rss.php", 5);
?>

L'URL du fichier XML à utiliser est indiquée en général par un petit logo RSS, Atom, ou XML.

Autre solution : utiliser actifpub

Actifpub est un annuaire de flux RSS, blogs et sites d'actualité qui propose également un service intéressant de mise en page à partir d'un flux XML (formats gérés : RSS 0.9, RSS 1.0, RSS 2.0, Atom, RDF).

Toutes les explications sont données sur la page Afficher l'actualité WebRankInfo grâce à Actifpub qui vous montre un exemple de rendu et vous guide dans l'intégration sur vos pages d'un flux d'actualités.

Ressources

Discussion

Si vous avez des questions ou des commentaires à apporter, venez en discuter dans la discussion qui a déjà commencé sur le forum !