How to create your own rss feed
Une fois qu'un utilisateur s'abonne à un flux RSS, il recevra une notification dès que vous posterez un nouvel article. Cela permet de fidéliser vos utilisateurs et du coup d'augmenter votre trafic. Cela vaut donc le coup d'être implémenté.
Ce tutoriel va vous guider à travers les différentes étapes nécessaires à la réalisation de votre propre flux RSS à partir du contenu de votre site.
Démonstration
Implémentation
Etape 1: La chaine de flux
La première chose qu'il faut savoir, c'est que les flux RSS ne vont pas se délivrer tout seul jusqu'à l'utilisateur. La première étape de ce tutoriel consiste donc à créer un transport pour eux. Ce transport suit une structure standard, c'est en fait un fichier XML comprenant une node appelée channel.
Cet élément XML possède plusieurs paramètres qu'il sera nécessaire de renseigner, comme un titre, un lien url, et une description pour commencer. Le code pour cette première étape pourrait donc s'apparenter à ceci:
<?php write some xml with php ?> <rss version="0.91"> <channel> //Start of the channel definition <title>jdmweb</title> //Channel Title <link>http://www.jdmweb.com</link> //Channel Link <description> //Channel Description jdmweb.com is a website about web development, website creations and handy web tools for developpers by Jeremy Desvaux de Marigny. </description> <language>en-us</language> //And finally the language </channel> </rss>
Voila qui est fait pour la définition de la chaine, une node XML appelée channel (ligne 8), un titre (ligne 10), un lien (ligne 11) et une description (lignes 12 à 16). Vous pouvez aussi ajouter une node langage si vous voulez spécifier dans quelle langue votre flux sera interprété (ligne 17). Enfin, fermez la node channel.
Etant donné que j'écris le code XML avec du PHP, je spécifie au navigateur ligne 2 que le résultat sera du XML et non du PHP, et donc qu'il devra être interprété comme tel.
Il est possible mais pas obligatoire, d'ajouter une image descriptive pour illustrer le flux RSS quand l'utilisateur l'affiche dans son navigateur, voyons donc comment il est possible de faire cela.
Etape 2: Ajouter une illustration
Il n'y a rien de bien compliqué ici non plus. Juste la node 'language' dans le code précédent, nous allons ajouter une autre node XML appelée image. Cette node contient elle aussi un titre (le titre de l'image), une url (l'emplacement de l'image), un lien (où aller quand on clique sur l'image, et finallement les dimensions, (hauteur et largeur). Notre code deviendrait donc:
<?php write some xml with php ?> <rss version="0.91"> <channel> //Start of the channel definition <title>jdmweb</title> //Channel Title <link>http://www.jdmweb.com</link> //Channel Link <description> //Channel Description jdmweb.com is a website about web development, website creations and handy web tools for developpers by Jeremy Desvaux de Marigny. </description> <language>en-us</language> //And finally the language <image> //The code to add your image goes here <title>jdmweb</title> <url>http://www.jdmweb.com/Images/style/apple-touch-icon.png</url> <link>http://www.jdmweb.com</link> <width>57</width> <height>57</height> </image> </channel> </rss>
Etape 3: Ajouter les éléments au flux
Maintenant que notre transport est prêt, nous allons passer à l'étape la plus importante du tutoriel, l'ajout d'éléments, car après tout, un flux RSS vide ne sert pas à grand chose.
Ces éléments doivent suivre une structure spécifique, définie par des standards. Vous pourrez trouver plus d'information sur les spécifications RSS 2.0 sur le site de l'organisme RSS Advisory Board.
Pour expliquer rapidement, chaque élément du flux RSS est une node XML, contenant plusieurs sous node. Certaines sont obligatoires, d'autres optionnelles:
Les Éléments Obligatoires :
- title - Le titre de l'élément, par exemple: <title>Venice Film Festival Opening</title>
- link - L'url de l'élément, par exemple <link>http://nytimes.com/2004/12/07FEST.html</link>
- description - Une bref description de l'élément, par exemple: <description>Some of the most heated chatter at the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del Cinema was being staged.</description>
Les Éléments Optionnels:
- author - Adresse email de l'auteur de l'article
- category - La catégorie dans laquelle est inclus l'article
- comments - L'adresse de la page où l'on peut laisser des commentaires pour cet article
- enclosure - Description d'un media qui peut être associé à l'article
- guid - Identifiant unique de l'élément
- pubDate - Date de publication
- source - Provenance de l'élément
Connaissant ces contraintes de structure, nous allons maintenant voir comment il est possible de sélectionner des articles provenant d'une base de données et des les convertir en élément du flux. Pour le besoin de cet exemple, nous allons utiliser une table intitulée 'post' qui contient les champs suivant:
- post_id - Identifiant unique de l'article
- post_title - Titre de l'article
- post_text - Contenu de l'article
- post_thumb - Url d'une image qui illustre l'article
- post_category - La catégorie de l'article
- post_date - Et enfin sa date de parution
Nous pouvons maintenant envoyer une requête à la base de données afin de sélectionner les derniers articles de cette table, puis nous créerons un élément RSS à partir de chacun d'eux:
<?php //Items dynamic building $sql="SELECT * FROM post ORDER BY post_date DESC LIMIT 10"; //SQL Query echo' //Build the item <item> <link>http://www.yourwebsite/post_'.$post[post_id].'</link> //Link <description> //And the description </description> </item>'; } ?>
Comme vous pouvez le voir dans le code précédent, ligne 1 nous créons la requête SQL qui va retrouver les 10 articles les plus récents suivant leur date de parution. Cette requête est envoyée à la base de données ligne 2. Ligne 3 on commence une boucle qui va crée un élément RSS pour chaque ligne retournée depuis la base de données (lignes 5 à 11).
Je voudrais simplement ajouter que les titres et description de chaque article est passé à travers la fonction htmlentities() afin de remplacer les caractères interdis en XML, comme par exemple &, ", ', > or < par leur valeur html, car sinon le code XML génèrera une erreur.
En ajoutant cette boucle à notre code existant, notre générateur RSS devient donc:
<?php ?> <rss version="0.91"> <channel> //Channel Definition <title>jdmweb</title> <link>http://www.jdmweb.com</link> <description> jdmweb.com is a website about web development, website creations and handy web tools for developpers by Jeremy Desvaux de Marigny. </description> <language>en-us</language> // Illustrating Image <image> <title>jdmweb</title> <url>http://www.jdmweb.com/Images/style/apple-touch-icon.png</url> <link>http://www.jdmweb.com</link> <width>57</width> <height>57</height> </image>'; <?php //Items dynamic building $sql="SELECT * FROM post ORDER BY post_date DESC LIMIT 10"; //SQL Query echo' //Build the item <item> <link>http://www.yourwebsite/post_'.$post[post_id].'</link> //Link <description> //And the description </description> </item>'; } ?> </channel> </rss>
Avec ce code, vous avez maintenant un générateur de flux RSS travaillant en relation avec votre base de données. Du coup, dès que vous allez poster un nouvel article sur votre site ou blog, les abonnées à votre flux RSS recevront une notification.
Voila pour les éléments minimum requis pour faire marcher un flux RSS valide. Nous allons maintenant couvrir certaines techniques que vous pouvez utiliser pour l'améliorer un peu.
Comment puis-je être sure que mon Flux RSS marche et est valide?
Idéalement, maintenant que le code est prêt, il faudrait le tester. Pour cela, enregistrez ce code sous un fichier, par exemple monrss.php, et uploadez ce fichier sur votre site, dans un endroit que vous pouvez accéder, par exemple, http://monsite.com/monrss.php. Le mien se trouve ici: RSS
Si quand vous affichez cette page aucune erreur ne survient c'est déjà un bon début, mais nous allons quand même le faire tester par un juge impartial et intransigeant: The Feed Validator, que vous pourrez trouvez à l'adresse suivante: http://www.feedvalidator.org/. Pour valider votre flux, soumettez simplement l'url de votre générateur (http://monsite.com/monrss.php) et lancez la validation. Si vous apercevez le message "Congratulations! This is a valid RSS feed.", félicitation, votre flux est valide. Sinon, corrigez simplement les erreurs survenues et renouvelez l'opération.
Si vous n'êtes toujours pas sure, abonnez vous à votre propre flux. Ainsi vous pourrez surveiller son comportement au fil du temps.
Comment puis-je faire en sorte que mon navigateur sache qu'un flux RSS est disponible?
Vous avez peut être remarqué que quand vous visitez un site qui possède un flux RSS, le navigateur peut le remarquer, et vous proposer de le voir ou de vous y abonner facilement. Mais ceci n'est pas un comportement par défaut, il faut tout simplement ajouter cette ligne de code dans le header de vos pages pour y parvenir:
<link rel="alternate" type="application/rss+xml" title="My Feed" href="/myrss.php"/>
Comment puis-je ajouter une image à chaque élément dans le flux?
Il existe une technique permettant d'associer chaque élément avec une image illustrative. Nous allons pour cela modifier la manière dont nous générons la node description dans notre code précédent:
<?php //Items dynamic building $sql="SELECT * FROM post ORDER BY post_date DESC LIMIT 10"; //SQL Query echo' //Build the item <item> <link>http://www.yourwebsite/post_'.$post[post_id].'</link> //Link <description> //And the description <![CDATA[ <img align="left" hspace="10" src="'.$post[post_thumb].'" /> '.$post[post_text].' ]]> </description> </item>'; } ?>
Les lignes 12 à 15 ont été changées par rapport à la version précédente. Nous utilisons maintenant une balise spéciale appelée CDATA, dans laquelle nous plaçons notre image et notre description. L'image est tirée du champ post_thumb et est placée devant la description. Vous pouvez utiliser les propriétés hspace et align afin de contrôler la position et l'alignement de l'un par rapport à l'autre.
Conclusion
Une fois que vous êtes conscient des contraintes et spécifications du format RSS, vous êtes potentiellement à une requête SQL près de votre propre générateur RSS. En suivant ces simples étapes, vous pouvez utiliser la plateforme existante de votre site ou blog afin de générer un flux que vos visiteurs pourront utiliser afin de rester en phase avec votre travail.
Donc allez y, créez votre channel, illustrez là avec une image, ajoutez vos éléments et vous obtiendrez une manière simple de faire passer le mot sur la dernière adition de votre site.

















