Concevoir rapidement le flux RSS qu'il vous faut :

1/ À la main

Un flux rss est écrit avec le langage XML. C'est un langage très proche de l'HTML, mais plus puissant et beaucoup plus strict sur le plan de la structure des pages. Chaque balise doit être ouverte puis fermée. Les balises ne peuvent pas se chevaucher. Je vous conseil d'utiliser l'encodage UTF-8 mais vous pouvez aussi utiliser l'ISO.

Certaines balises sont obligatoires, je les ai mises en rouge ci dessous, d'autres sont facultatives.

La structure générale du fichier est la suivante :

* Le début du fichier spécifie qu'il s'agit d'un fichier XML et 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
* La première partie contient les infos générales sur le site. On peut ajouter une image caractéristique, des infos de copyright, une date de mise à jour, des infos sur la langue utilisée..
* . la seconde partie décrit chacune des différentes nouvelles à l'aide d'un titre, d'un lien vers l'astuce complète (l'adresse doit être écrite en chemin absolu) et une description de la nouvelle

Voici un exemple de fichier :

<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>

<!-- Le premier bloc est la partie entete qui presente votre site -->

<title>
Le titre du site</title>
<link>
http://www.... lien vers le site</link>
<description>
brève description du contenu général du site</description>

<language>fr</language>
<copyright>apparait tout 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, 26 Apr 2008 21:19:19 +0100</pubdate>

<!-- Ensuite la liste de vos articles / items en prenant soin de mettre le plus recent en haut de la liste -->

<item>
<title>
Le titre de votre article</title>
<link>
http://www.lurl-de-votre-site.com/vers-l'article-liens-concerné-fiche-detail-par-exemple.html</link>
<pubDate>
Sat, 26 Apr 2008 00:00:00 +0100</pubDate>
<description>
Ici la description qui concerne le lien de cet item ... </description>
</item>


Et ainsi de suite en reprenant bien le modele ci-dessus

<item>
<title>...</title>
<link>...</link>
<pubDate>...</pubDate>
<description>... </description>
</item>

<item>
<title>...</title>
<link>...</link>
<pubDate>...</pubDate>
<description>... </description>
</item>

On oublie pas de fermer les balises

</channel>
</rss>

Vous pouvez tout à fait remplir à la main ce genre de fichier. Il vous suffit ensuite de l'enregistrer sous par exemple fluxrss.xml le transférer sur votre site. Si vous n'avez pas fait de faute, en ouvrant ce fichier dans votre navigateur, vous devez voir changer l'adresse, le http://www.monsite/dossier/fluxrss.xml doit se transformer en feed://www... (sous safari en tout cas)
Pour indiquer à vos lecteurs l'adresse de votre flux, vous devez utiliser celle commençant par http.


2/ En générant un fichier statique à partir d'une table mysql

Si vous gérez votre site, ou tout au moins les nouvelles pour lesquelles vous voulez générer le flux, à l'aide d'une table mysql sur votre serveur, vous pouvez l'utiliser pour générer les données du fichier xml.
Vous allez pour cela créer un fichier php qui interroge la table mysql, sort les données récentes (votre table doit obligatoirement comporter un champ date ou time stamp) et les met en forme. Ce fichier que l'on appellera disons maj-rss.php va être lui même créer le fichier fluxrss.xml contenant le flux rss.

Chaque fois que vous modifierez votre site, il faudra ouvrir via votre navigateur le fichier majrss.php (sur le serveur) pour que celui-ci recrée un fichier xml tenant compte des dernières modifications. (ou utiliser une tache CRON pour automatiser la creation tous les X heures ou jours ...)

Pour l'exemple, considérons une table mysql toute simple, nommée "news" avec 4 champs : un titre, un lien (adresse ou l'on peut trouver l'article/detail complet), une date, et le contenu de la nouvelle. Les 3 premiers sont obligatoires. Il peut y en avoir d'autres

Voici ce que devra contenir votre page maj-rss.php :

<?php
$xml = '<?xml version="1.0" encoding="utf-8"?><rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>MonTitre</title>';
$xml .= '<link>http://www.monsite.net</link>';
$xml .= '<description>Mon Site est le meilleur</description>';
$xml .= '<copyright>© MonSite 2008</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= ' <title>MonSite</title>';
$xml .= ' <url>http://www.MonSite.net/images/MonImage.gif</url>';
$xml .= ' <link>http://www.MonSite.net</link>';
$xml .= '</image>';
$jourdui= date("D, d M Y H:i:s +0100");
//Sat, 26 Apr 2008 00:01:00 +0100
$xml .= '<pubdate>'.$jourdui.'</pubdate>';

require ('../include/connect.php');
// Vous pouvez soit faire appel à un fichier externe contenant
//toutes les infos de connexion à votre base et table
// ou vous pouvez écrire ici ces infos directement

$res=mysql_query("select * from news order by date desc limit 0, 50");

// extraction des 50 dernières nouvelles
while($lig=mysql_fetch_array($res)){
$titre=$lig[tag];
$adresse=$lig[adresse];
$contenu=$lig[contenu];
$madate=$lig[date];
$datephp=date("D, d M Y H:i:s +0100", strtotime($madate));

$xml .= '<item>';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$adresse.'</link>';
$xml .= '<pubDate>'.$datephp.'</pubDate>';
$xml .= '<description>'.$contenu.'</description>';
$xml .= '</item>';
}//fin du while

$xml .= '</channel>';
$xml .= '</rss>';

$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, html_entity_decode($xml));
fclose($fp);

echo 'Export XML effectue !<br><a href="fluxrss.xml">Voir le fichier</a>';
?>

Nous voyons au passage que la date est écrite dans les fichiers rss d'une façon un peu particulière pour nous autres francophones. Mais les fichiers rss sont au départ destinés à être lus par des machines. Suivant la façon dont votre date est entrée dans votre table mysql, vous serez amené à modifier le formatage dans ce fichier.

3/ En générant un fichier dynamique à partir d'une table mysql

Dans la solution précédente, le fichier contenant le flux rss est statique : il est généré une seule fois par mise à jour du site. Il est également possible de le créer de façon dynamique. Cette solution est envisageable pour des sites à faible traffic mais est très lourde en terme de requêtes au serveur : si vos abonnés choisissent de vérifer les mises à jour de votre site toutes les heures, la page sera générée à chaque fois. Il est donc beaucoup plus économique d'utiliser un fichier "statique". Si cependant vous souhaitez créer votre fichier de façon dynamique, voici ce qu'il faut mettre dans un fichier nommé par exemple fluxrss.php

La toute première ligne du fichier doit contenir une en-tête signifiant au navigateur qu'il s'agit d'un fichier XML. Attention, il ne doit y avoir aucune ligne avant ce header, pas même une ligne vide.

Le reste du code est identique à celui du paragraphe précédent, mis à part qu'il se trouve derrière une instruction "echo". Attention à bien terminer celle-ci à la fin par ";

<? Header("content-type: application/xml");
echo "<"."?xml version=\"1.0\" encoding=\"utf-8\"?".">
<rss version=\"2.0\">
<channel>
<title>MonTitre</title>
<link>http://www.monsite.net</link>
...
";

$jourdui= date("D, d M Y H:i:s +0100");
//Sat, 26 Apr 2008 00:01:00 +0100
$xml .= '<pubdate>'.$jourdui.'</pubdate>';

require ('../include/connect.php');
...

echo $xml;
echo "</channel>
</rss>";
?>

Ce fichier est à placer sur votre site. Là encore, en l'appellant dans un navigateur, l'adresse du fichier http:// apparait rapidement puis se transforme en feed:// (surtout sous safari)

4/ Lier une page du site à un flux RSS

Comment indiquer sur une de ses pages qu'elle génère un flux RSS ?

Quel est l'intérêt tout d'abord ? Dans firefox par exemple, le sigle apparait dans la barre d'adresse et indique aux visiteurs qu'ils peuvent s'abonner à un flux RSS. Il leur suffit de cliquer dessus pour mettre en place le flux.

Pour cela, il faut indiquer dans l'en-tête de la page qu'elle est liée au flux.
Il faut insérer entre les balises <head></head> la ligne suivante:
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://MonSite/dossier/fluxrss.xml" />
en indiquant le lien absolu vers le fichier contenant le flux.

Voilà j'espère que ces quelques indications vous aideront à mettre en place un flux RSS sur votre site et surtout à récupérer plein de bon trafic et des milliers de bon BL sur Sexejoursursexe ;)

 

Au boulot les enfants :p