Mettre en place un fil RSS simple

Utiliser l'extension RSS Editor pour Firefox

Logiciel:	Extension RSS Editor pour Firefox

Auteur(s):

Plateforme(s):	Windows, Linux, Mac

Version:	0.0.8

Licence:	MPL

Site:	http://rsseditor.mozdev.org/

Par

Dan

13 juillet 2005

Publié sous licence Creative Commons By-NonCommercial-ShareAlike

http://creativecommons.org/licenses/by-nc-sa/2.0/

Table des matières

1. Créer le fichier contenant les nouvelles	3

1.1. La partie Channel : les informations sur votre fil RSS	4

1.2. L'Item: votre texte et un lien vers l'article complet.	5

2. Rendre le fil RSS accessible	6

3. Proposer une version HTML grâce à PHP	7

Créer le fichier contenant les nouvelles

Parmi les nombreux éditeurs de fils RSS (RSS builder, ssrss, Feededit...), j'ai choisi d'utiliser une extension de Firefox qui se nomme RSS Editor(http://rsseditor.mozdev.org/)

Une fois cette extension installée, on trouvera dans le menu Outils plusieurs possibilités de création de fichier.

Choisissez celle qui vous convient le mieux.

Nous allons créer le fichier news.xml (on peut aussi utiliser news.rss) et remplir la partie Channel.

La partie Channel : les informations sur votre fil RSS

Title	le titre du fil. (ici news)
Link	L'URL vers votre site HTML. (ici http://www.site.com)
Description	Une phrase décrivant le "channel", ce dont parle votre fil. (ici c'est un test)
Language	Une valeur autorisée du langage utilisé. (ici en)
Copyright notice	Le "Copyright" relatif au contenu du "channel". (par exemple Copyright 2005, nom du propriétaire)
Managing Editor	Si le SPAM ne vous gêne pas, l'adresse email de la personne responsable du contenu. (par exemple D @ site.com)
Web Master	Si le SPAM ne vous gêne pas, l'adresse email de la personne responsable du côté technique du fil. (par exemple D @ site.com)
Publication Date	La date de publication du fil. (remplie par RSS Editor mais vous pouvez la modifier)
Last Built Date	La date de la dernière mise à jour du fil. (remplie par RSS Editor mais vous pouvez la modifier)
Channel Image	url, le titre et le lien vers une image qui peut être affichée avec le fil.

Puis nous allons rédiger une information dans la partie Items (Items/Insert).

L'Item: votre texte et un lien vers l'article complet. Un "channel" peut comporter n'importe quelle quantité d'<item>s.
Title	Le titre de votre article. (ici test 1)
Link	L'URL de l'article complet. (ici http://www.site.com/site1.html)
Description	Le synopsis de l'article. (ici test1)
Author	Si le SPAM ne vous gêne pas, l'adresse email de l'auteur de l'item. (par exemple D @ site.com)
Category	inclus l'item dans une ou plusieurs catégories. (par exemple RSS)
GUID	Un identificateur unique pour l'item. (remplie par RSS Editor mais vous pouvez en générer un)
Publication Date	La date de publication du fil. (remplie par RSS Editor mais vous pouvez la modifier)
Comments URL	L'URL d'une page pour des commentaires sur l'item. (par exemple http://www.site.com/comments.html)
Source	Le fil RSS d'où provient l'item.
Source feed URL	l'url de cette source.

Grâce aux deux icônes, on peut ajouter ou insérer d'autres nouvelles.

On sauvegarde et on place le fichier news.xml dans un répertoire du site (dans la racine ici).

Ce fichier ne comporte que les informations minimales.

Voici son contenu :

- <rss version="2.0"> - <channel> <title>news</title> <link>http://www.site.com</link> <description>test</description> <language>en</language> <lastBuildDate>Fri, 24 Jun 2005 08:17:57 GMT</lastBuildDate> - <item> <title>test 1</title> <link>http://ww.site.com/test1.html</link> <description>test1</description> <guid isPermaLink="false">{1653cf16-d30-16f0-84b-a0bdf2b54a59}</guid> <pubDate>Fri, 24 Jun 2005 08:17:57 GMT</pubDate> </item> </channel> </rss>

Rendre le fil RSS accessible

Pour que le fichier (dans la racine ici) soit repérable et que l'extension Sage (http://sage.mozdev.org/) (ou un autre agrégateur) puisse lire le fil, il faut ajouter dans la partie <head> de notre fichier HTML la ligne suivante :

Pour un fichier HTML :

<link rel="alternate" title="test RSS" type="application/rss+xml" href="/news.xml">

Pour un fichier XHTML :

<link rel="alternate" title="test RSS" type="application/rss+xml" href="/news.xml" />

Avec Firefox, notre fil apparaît au bas de l'écran avec le titre que lui nous avons donné dans la ligne d'HTML :

Avec l'extension Sage , on peut lire :

Proposer une version HTML grâce à PHP

Comme peu de visiteurs ont effectivement accès au fil RSS, il est possible d'avoir une version HTML du fichier : news.php.

Le script PHP suivant que j'utilise permet de récupérer les nouvelles du fichier news.xml, d'en extraire les informations et les présenter simplement.

La routine accepte toute balise HTML mais ne vérifie pas la syntaxe. De même, elle n'affiche pas d'adresse email cliquable.

Si nécessaire, elle doit donc être adaptée.

Le script pourrait écrire la version analysée et, lors de son exécution, comparer sa date avec celle du fil RSS puis envoyer la version statique si elle est plus récente.

<?php

$buffer="";

$fp=@fopen("/news.xml","r");

while ($b=@fgets($fp,1024))

{ $buffer.=$b; }

@fclose($fp);

$patterns=array ( "/<title>/","/<pubDate>/","/<\/pubDate>/","/<lastBuildDate>/","/<\/lastBuildDate>/","/<\/(item|image)>/", "/<(link|comments)>/","/<\/link>/","/<\/comments>/", "/<source url/","/<\/source>/", "/&lt;/","/&gt;/","/&amp;/","/<(item|channel|image)>/", "/<\/?(\?xml|item|rs|channe)[^>]+>|<(guid|\/?languag|\/?webMaste)[^>]+>[^>]+>/" ,"/(title|description|copyright|managingEditor|author|url|category)>/","/\n\n/","/></");

$replacements=array ( "<p class=\"title\">","<p><u>Date de publication :</u> ","</p>","<p><u>Derni&egrave;re mise &agrave; jour :</u> ","</p></div>","</div>", "<a href=\"","\">Lien</a>","\">commentaires</a>", "<a href","</a>", "<",">","&","<div class=\"item\">", "", "p>","\n",">\n<" );

$buffer=preg_replace($patterns,$replacements,$buffer);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Version HTML du fil RSS</title>

<meta name="GENERATOR" content="RSS editor">

<meta http-equiv="Content-type" content="text/html; charset=UTF-8">

<link rel="alternate" title="test RSS" type="application/rss+xml" href="/news.xml">

<style type="text/css">

<!--

body{ background-color:#C9DDE4; color:#0A00BB; font:1em "times new roman",Geneva,Arial,Helvetica,sans-serif; margin:10px 0; padding:0; }

html{ margin:0; padding:0; }

.item{ border:1px solid #FAAAFF; background:#E9F5FE; padding:5px 15px; margin:0 10px; height:1%;/*ie*/ }

.title{ margin:-5px -15px 0 -15px; padding:4px 0 4px 3em; font-weight:bold; background:#C9DDE4; border-bottom:1px solid #FAAAFF; }

h1{ text-align:center; }

--> </style>

</head>

<body>

<div class="item">

<h1>Version HTML du fil RSS</h1>

<?php echo $buffer;

?>

</div>

</body>

</html>

La routine :

Lit le fichier news.xml et le place dans la variable $buffer (il ne devrait pas y avoir de problème de mémoire si le fil est de taille raisonnable).

Remplace dans $buffer les balises rss/xml par des balises html.

Envoie au navigateur un fichier HTML avec les éléments de style à adapter.

Insère $buffer dans le fichier HTML.

S'il n'y a pas d'erreur de syntaxe dans les balises HTML du fichier xml, pas de problème, la page s'affichera avec n'importe quel navigateur.

Comme cette page sera liée à une ou plusieurs pages du site, elle sera aussi référencée comme n'importe quelle autre page du site.

Tutoriel Framasoft

Http://www.framasoft.net	8/8

Dans la série

Les tutoriels libres

présentés par le site FRAMASOFT

Framasoft

« Partir de Windows pour découvrir le libre... »

http://www.framasoft.net

D A

2005-07-13T11:21:15