Tutorial - Ecrire un flux RSS manuel ou extrait d'une base de données MySQL pour son site et le mettre en forme avec une feuille de transformation XSLT.
Créer un flux RSS pour son site, permet à vos visiteurs de se tenir au courant de l'actualité du site ou des nouveaux articles parus
sans avoir à s'inscrire à une newsletter.
Les
lecteurs (aggrégateurs) de flux se sont multiplié
(
NetVibes,
Google Reader ...)
et permettront à vos visiteurs d'économiser du temps en consultant plusieurs flux RSS en même temps, c'est la syndication.
Le langage utilisé pour le créer est le
XML, langage proche du HTML mais plus puissant et strict.
Un autre avantage est celui du
référencement.
En effet, vous allez lier ce flux RSS Ã votre site web et
Google va "s'abonner" Ã ce flux et revenir plus souvent.
A travers ce tutorial, vous apprendrez la syntaxe d'un fichier RSS, comment le créer de manière automatique, comment le lier à votre page
et comment l'afficher avec XSLT pour les utilisateurs n'ayant pas d'aggrégateur.
Introduction aux flux RSS
Un flux RSS n'est rien d'autre qu'un fichier texte avec un format particulier, le XML.
Vous pouvez le créer de différentes manières :
- Manuel : Ecrire le fichier XML Ã la main
- Semi-automatique : A partir d'un fichier PHP connécté à une base MySQL qui ira chercher vos news et que vous executerez vous-même
- Automatique : Le flux RSS est généré chaque fois qu'utilisateur consulte le flux.
Cette solution ne sera pas abordée dans ce tutorial car elle est beaucoup trop lourde en terme de requêtes serveur.
Le format XML impose une syntaxe stricte et le flux RSS doit comporter des balises obligatoires pour pouvoir être lu.
Le prélude du flux RSS
Le fichier XML doit être précédé par plusieurs balises, un peu comme le head en HTML qui donneront des infos sur le flux.
Toutes
les URL doivent être écrites en absolu et pas en relatif.
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Le titre de votresite</title>
<link>http://www.votre-site.com URL Absolue</link>
<description>description du contenu général du flux</description>
<language>fr</language>
<copyright>Les droits d'auteur qui apparaitront en bas à droite</copyright>
<image>
<title>titre de l'image (équivalent du alt)</title>
<url>chemin absolu de l'image http://.... (pas plus de 88px de haut)</url>
<link>http:// lien appelé quand on clique sur l'image</link>
</image>
<pubDate>Sat, 20 Jan 2007 22:22:22 +0100</pubDate>
Le format de la date de publication est un
format américain, n'oubliez pas de traduire ;).
Pour les jours, Mon, Tue, Wed, Tue, Fri, Sat, Sun.
Pour les mois, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Deux règles sont à respecter cependant :
- Il ne faut pas précéder le numéro du jour d'un zéro (Ne faites pas "05 Aug" mais "5 Aug").
- Il faut précéder les heures d'un zéro (Ne faîtes pas "7:25:00 GMT" mais "07:25:00 GMT").
Ajouter des informations (items) Ã son flux
Chaque item représente une news ou un nouvel article de votre site. Ajoutez-en autant que vous voulez (environ 10 conseillé).
<item>
<title>Titre de votre article</title>
<link>http://www.votresite.com/url_de_l_article</link>
<guid isPermaLink="true">Identifiant unique, par précaution,
remettez l'url de l'article</guid>
<description>Brève description du contenu de l'article</description>
<pubDate>Fri, 20 Jan 2007 22:22:22 +0100</pubDate>
</item>
Générer un fichier RSS statique à partir d'une base MySQL
Vous allez créer un
fichier PHP qui va générer votre fichier XML à partir d'une base MySQL.
Chaque fois que vous ajouterez une news, il faudra ouvrir via votre navigateur le fichier
maj-rss.php (sur le serveur) pour que celui-ci recrée un fichier XML tenant compte des dernières modifications.
Pour générer ce fichier, il vous faudra
au minimum 4 champs :
- Un Titre, obligatoire
- Un Lien, obligatoire
- Une Date, obligatoire, une date au format mktime sera parfaite
- Le Contenu, non obligatoire
<?php
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>Titre du flux</title>';
$xml .= '<link>http://www.monsite.com</link>';
$xml .= '<description>Description du flux</description>';
$xml .= '<copyright> MonSite 2005</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= ' <title>Titre du flux</title>';
$xml .= ' <url>chemin absolu de l'image http://.... (pas plus de 88px de haut)</url>';
$xml .= ' <link>http://www.monsite.com</link>';
$xml .= '</image>';
$today= date("D, d M Y H:i:s +0100");
//date du jour d'execution du fichier PHP
$xml .= '<pubDate>'.$today.'</pubDate>';
require ('../connexion.php');
// Faîtes appel à vos fichier de connection à votre base de donnée MySQL
// Adaptez ces lignes à votre base de données / noms de table
$resultat_requete=mysql_query("SELECT * FROM table_blog ORDER BY date DESC limit 0, 10");
// extraction des 10 dernières nouvelles
while($lig=mysql_fetch_assoc($resultat_requete)){
$titre=$lig["titre"];
$adresse=$lig["adresse"];
$contenu=$lig["contenu"];
$date=$lig["date"];
$datephp=date("D, d M Y H:i:s +0100", $date);
$xml .= '<item>';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$adresse.'</link>';
$xml .= '<guid>'.$adresse.'</guid>';
$xml .= '<pubDate>'.$datephp.'</pubDate>';
$xml .= '<description>'.$contenu.'</description>';
$xml .= '</item>';
}//fin du while
$xml .= '</channel>';
$xml .= '</rss>';
$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
echo 'Export XML effectue !<br /><a href="fluxrss.xml">Voir
le fichier</a>';
?>
Lier votre flux RSS Ã votre site
Pour lier votre flux à une page, ajoutez ce code entre les balises head :
<link rel="alternate" type="application/rss+xml" title="RSS
2.0" href="http://www.pixtiz.com/fluxrss.xml" />
Vous verrez apparaître le
logo du feed RSS dans la barre d'adresse si vous êtes sous Firefox.
Lier votre flux RSS va
améliorer votre référencement et vous permettra d'
augmenter sa visibilité.
Vous pouvez aussi faire un lien hypertexte directement vers le fichier xml pour que les visiteurs s'abonnent.
Vérifier que son flux RSS est valide
Il est important de vérifier si
le format de votre flux est correct.
S'il n'est pas correct, il ne s'affichera pas bien dans les différents aggrégateurs de flux.
Vous pouvez utiliser le
validateur de flux RSS du W3C pour la validation de vos flux RSS.
Donner un look original à son flux grâce à une feuille de transformation XSLT
Si vous accédez à votre flux RSS directement avec Internet Explorer, vous pourrez voir que le fichier XML est affiché
sous sa forme abrorescente.
Vous pouvez
lier une feuille de style XSLT Ã votre flux un peu comme on lie une feuille CSS pour le HTML
qui va mettre en forme votre fichier XML.
Pour cela, ajoutez cette ligne de code juste après la ligne de l'encodage (à la 2ème ligne donc):
<?xml-stylesheet type="text/xsl" href="http://www.pixtiz.com/updates.xslt"
?>
Pour voir le résultat, vous pouvez essayer d'ouvrir le
flux RSS de Pixtiz, jeux flash gratuits, tutoriaux illustrator / CSS / flash
Vous pouvez
télécharger ma feuille de style XSLT librement et l'adapter pour votre site.
Vous trouverez sur le
site officiel des icones RSS, des icones pour indiquer à vos visiteurs que vous disposez d'un flux RSS.
Si vous avez des problèmes avec la création du flux RSS de votre site, laissez un commentaire sur cet article.
j'ai une erreur que je n'arrive pas a résoudre
ligne 29 :
while($lig=mysql_fetch_assoc($resultat_requete)){
merci