Créez votre flux RSS
Signature : | Mis en ligne le : 29/11/2007
Catégorie(s) :
  • Linux Pratique
  • | Domaine :
    Commentez

    Retrouvez cet article dans : Linux Pratique 37

    Vous êtes sûrement abonné aux flux d'informations générés par vos sites Web préférés et vous trouvez ça vraiment pratique. Pourquoi ne pas proposer alors le même service sur votre propre site ? C'est très simple à réaliser et, de cette façon, les lecteurs intéressés par votre contenu pourront s'abonner à votre flux d'actualités, sans être obligés de visiter votre site à chaque fois. Les applications " toutes faites " comme les CMS et moteurs de blogs intègrent pour la plupart la génération automatique de flux RSS (ou Atom). Mais si vous n'êtes pas dans ce cas, voici la procédure à suivre...

    Quel intérêt ?

    Une méthode pour informer les internautes de votre mise à jour de contenu est de mettre en place une Newsletter. Mais ceci peut s'avérer très fastidieux : inscription de la part des Internautes, risque de spam pour eux, et de votre côté il vous faudra créer cette fameuse newsletter, veiller à ce que la liste des abonnés soit à jour, effectuer les envois, etc. C'est pourquoi les flux de syndication sont tout indiqués, car ils simplifient la vie du webmaster et des internautes. L'autre intérêt d'un flux RSS, c'est que d'autres sites (spécialisés en cela) peuvent le récupérer et afficher les dernières nouvelles de votre site. Ainsi, en cliquant sur ce fil de nouvelles, les lecteurs seront dirigés sur votre site. Un flux RSS est un simple fichier texte que vous hébergez sur votre site, dans un répertoire de votre choix. Il vous faudra le mettre à jour manuellement ou, cas le plus fréquent, faire en sorte qu'il soit géré de façon dynamique.

    Mise à jour manuelle

    Un flux RSS s'écrit en langage XML (Extensible Markup Language). Le XML, standard du W3C, est utilisé principalement pour éditer des données structurées, à l'aide de balises spécifiques. L'objectif de ce langage est d'ailleurs de faciliter le partage et l'échange de données en séparant le contenu du contenant. Un fichier XML contient des " éléments ", chacun étant entouré de balises spécifiques. Pour utiliser correctement le langage XML, il faut respecter des règles strictes, à savoir :
    • ne pas oublier de déclarer qu'il s'agit d'un document XML au début du document (version utilisée, codage des caractères, etc.) ;
    • le document ne doit avoir qu'un seul élément racine, qui contiendra tous les autres éléments ;
    • chaque balise ouvrante doit être associée à sa balise fermante (et attention, XML est sensible à la casse des caractères !) ;
    • les valeurs des attributs doivent être spécifiées entre guillemets.
    Pour + d'infos à ce sujet : La spécification du W3C : http://www.w3.org/XML/ [en] La traduction de la recommandation XML 1.1 : http://www.yoyodesign.org/doc/w3c/xml11/ [fr] Présentation, règles et définitions XML : http://fr.selfhtml.org/xml/ [fr] La structure de notre fichier va donc être la suivante :
    • Au début, on indique qu'il s'agit d'un fichier XML et on précise la version et l'encodage du texte. Il faut ensuite préciser la version de RSS utilisée, puis ouvrir le canal avec la balise <channel>.
    • Suivent les informations d'ordre général sur votre site : titre, URL, description, etc. Vous pouvez même préciser la langue utilisée, ajouter une image caractéristique, des informations de copyright, une date de mise à jour, etc.
    • Puis, chaque nouvelle est définie entre une paire de balises <item></item>. Vous devez y mettre un titre, le lien vers le contenu complet de la nouvelle (URL en absolu) et une description.
    Voici un exemple de flux RSS (les éléments en bleu sont obligatoires) : Il ne vous reste plus qu'à éditer et enregistrer ce fichier (ex. : mes_actus.xml), puis à le transférer à la racine de votre serveur Web. Vous pouvez alors ouvrir votre navigateur et saisir l'URL suivante : http://URL_de_votre_site/votre_fichier.xml. Vous devriez observer la même chose que sur la figure 1. Pour s'abonner à votre flux d'informations, les internautes devront ajouter cette URL à leur agrégateur de flux RSS favori. Remplir à la main ce type de fichier ne pose aucun souci lorsque les actualités sont peu nombreuses, mais cela peut vite devenir très contraignant si vous devez saisir plus d'une dizaine de nouvelles, et renseigner pour chacune le contenu des balises <item>, <title>, <link> et <description>. Heureusement, il est possible de générer automatiquement ce type de fichier XML...

    /img-articles/lp/37/art-19/fig-1.jpg

     

    Mise à jour automatique

    En effet, si vous gérez votre site web à l'aide d'une base de données, il vous suffit de créer un script PHP qui va générer automatiquement votre fichier XML à partir des informations récupérées dans la base de données. Le fichier PHP va, d'une part, interroger la base de données pour vérifier que de nouvelles données ont été ajoutées et, d'autre part, il va mettre en forme ces données en créant le fichier XML.

    Création de la base de données

    Pour notre exemple, nous allons rapidement créer une base de données fictive, nommée " demorss ", à l'aide de PhpMyAdmin. Cette base comporte une table nommée " articles ". Pour déterminer les champs associés à cette table, il est nécessaire de se référer à la structure du fichier XML. Ainsi, nous créons les champs author, title, pubDate et description, ainsi qu'un champ id (essentiel pour différencier les différents items de la base). La requête SQL effectuée correspond finalement à ce qui suit : Ensuite, nous saisissons rapidement deux entrées dans cette base (onglet Insérer dans PhpMyAdmin), afin de simuler l'ajout de deux nouveaux articles. Attention ici au format de la date pour le champ pubDate ! En effet, de la façon dont votre date est saisie dans votre table MySQL, dépend le formatage de la date dans le fichier PHP (voir plus loin). La fonction date() retourne une date sous forme d'une chaîne, selon le format spécifié en premier argument (dans notre cas, il s'agit de r). La date est fournie par le deuxième argument sous la forme d'un timestamp. Pour plus d'informations sur le timestamp unix, je vous invite à consulter la page http://phpcodeur.net/articles/php/dates De plus, vous pouvez jeter un œil à la description de la fonction date() dans le manuel PHP en ligne.

    Création du fichier PHP

    Nous allons créer à présent un fichier PHP, nommé rss.php, qui va nous permettre de créer le flux RSS. Dans un premier temps, il faut interroger la base de données. Pour cela, nous allons utiliser la librairie PEAR::DB (pour plus d'informations au sujet des librairies PEAR et de leur utilisation, ainsi que sur l'utilisation détaillée de PEAR::DB, je vous renvoie au Cahier Web de Linux Pratique n°32). Rappelons simplement que cette librairie, une fois installée, vous permet d'utiliser des fonctions spécifiques permettant de récupérer aisément les données d'une base. Observez le script commenté suivant : Pour le moment, notre script récupère et renvoie correctement les données de notre base. C'est ce que l'on peut vérifier en ouvrant ce fichier dans notre navigateur Web (Fig. 2).

    /img-articles/lp/37/art-19/fig-2.jpg

    À présent, nous allons faire en sorte que le script utilise les données, non plus pour les afficher telles quelles à l'écran, mais pour générer le fichier XML. Pour cela, nous allons remplacer l'instruction conditionnelle précédente par la série d'instructions suivante :

    /img-articles/lp/37/art-19/fig-3.jpg

    /img-articles/lp/37/art-19/fig-4-5.jpg

    Voilà, notre script est terminé. Si vous ouvrez ce fichier dans votre navigateur Web (dans notre exemple, http://localhost/demorss/rss.php), vous obtenez quelque chose de similaire à la figure 3, page précédente.

    Notez bien la fonction header("Content-Type: text/xml"); en début de fichier, dont la présence est essentielle pour que le flux XML soit correctement interprété. Pour une dernière vérification, vous pouvez tester l'apparence de votre flux RSS dans l'agrégateur de flux de votre choix. Sur la figure 4, vous pouvez observer l'apparence de notre flux avec l'agrégateur Liferea. Constatez que lorsque l'on affiche les propriétés de l'abonnement (Fig. 5), on retrouve les informations saisies dans la partie " traitement du format RSS " du script. Ces informations apparaissent également en grisé dans la zone de visualisation. Pour terminer, soulignons qu'il est tout à fait possible de faire quelque chose de similaire pour le format Atom, voire de traiter les 2 cas en même temps en ajoutant une instruction de type switch au script précédent. Liens RSS 2.0 – traduction française : http://www.stervinou.com/projets/rss/ [fr] Manuel PHP : http://fr.php.net/manual/fr/ [fr] Comparaison RSS2.0 et Atom1.0 : http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared [en]
    Vous souhaitez commenter cet article ?
    Brèves Flux RSS
    Édito : GNU/Linux Magazine 149
    Édito : GNU/Linux Magazine HS N°60
    Édito : Misc 61
    Édito : Linux Pratique 71
    Édito : Linux Essentiel N°25
    Communication RSS Com. RSS Presse
    Lancement de la plateforme de vente en ligne de PDF des Éditions Diamond ! Un...
    Misc N°61 – Communiqué de presse
    GNU/Linux Magazine N°149 – Communiqué de presse
    GNU/Linux Magazine HS N°60 – Communiqué de presse
    Linux Pratique N°71 – Communiqué de presse
    prochainement moteur de recherches des articles
     
    :
    :
    Jours heures minutes secondes
    En kiosque Flux RSS

    Le tout nouveau GNU/Linux Magazine est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Misc est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Linux Pratique est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau GNU/Linux Magazine HS est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Linux Essentiel est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Misc HS est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...