Les flux RSS sont un moyen d'être tenu rapidement informé lors des mises à jour, de nouveaux articles, ...
Principalement intégrés au navigateur ou au logiciel de messagerie, les lecteurs de ces flux notifient les utilisateurs dès qu'un évènement se produit et peut permettre à l'utilisateur d'être redirigé sur une page web contenant plus d'informations.
J'utilise ce système pour mon blog : lors de la création d'un nouvel article, les visiteurs suivants mon flux RSS sont directement informé ; le titre de mon article est envoyé et ils ont la possibilité d'avoir plus d'informations en étant redirigé vers l'article.
Nous allons voir dans cet article comment ajouter cette fonctionnalité sur votre site (blog, actualité, ...).
Le RSS est à écrire en XML.
On commence tout d'abord notre page en précisant la version du XML :
1 <?xml version="1.0" encoding="utf-8" ?>
On précise ensuite la version du RSS :
1 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 2 ... 3 </rss>
Il nous faut maintenant insérer notre flux à l'intérieur, englobé par la balise <channel>
:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 3 <channel> 4 ... 5 </channel> 6 </rss>
On commence par fournir quelques informations sur ce flux.
1 <atom:link href="http://www.dewep.net/Blog/rss.xml" rel="self" type="application/rss+xml" />
1 <title>Blog Dewep.net</title>
1 <description>Mes derniers articles informatiques.</description>
1 <link>http://www.dewep.net</link>
On y insère ensuite nos derniers items (les 20 derniers par exemple).
Chaque item doit être englobé par la balise <item>
. On peut ensuite y mettre comme informations :
<title>
)<link>
)<pubDate>
) : le format de la date doit être RFC 2822 (date("r")
en PHP).<description>
)<guid>
) : l'attribut isPermaLink="true"
permet de préciser que l'identifiant est un lien (c'est plus facile de mettre le lien de l'article par exemple)<author>
)Exemple :
1 <item> 2 <title>Créer un thème sur GFXBoot (Grub Legacy graphique)</title> 3 <link>http://www.dewep.net/Blog/Article-16/Creer-un-theme-sur-GFXBoot-Grub-Legacy-graphique</link> 4 <guid isPermaLink='true'>http://www.dewep.net/Blog/Article-16/Creer-un-theme-sur-GFXBoot-Grub-Legacy-graphique</guid> 5 <pubDate>Thu, 31 Jan 2013 13:25:47 +0100</pubDate> 6 <description>Ce tutoriel permettra de créer un thème pour son GFXBoot (un Grub Legacy graphique), grâce au fichier menu.lst présent dans /boot/grub.</description> 7 </item>
Il suffit de faire ceci pour chacun de vos items.
Le lecteur de flux RSS de l'utilisateur verra donc dès qu'un nouvel article est disponible.
Si vous souhaitez fournir plus d'informations, vous pouvez regarder la doc du RSS 2.0 : http://feed2.w3.org/docs/rss2.html.
Afin que le lecteur de flux et/ou le navigateur interprète bien votre page comme un fichier RSS, il faut lui préciser dans les headers de la page.
Il suffit de désactiver le cache de la page et lui dire de la considérer comme application/rss+xml.
En PHP, il faut utiliser la fonction header :
1 header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0'); 2 header('Content-Type: application/rss+xml; charset=utf-8');
Si vous souhaitez avoir un fichier complet pour vous aider, vous pouvez tout à fait regarder la source de celui de mon blog : /realisations.rss.