Valid XHTML 1.0 Transitional
Valid CSS!

Modifier Gest' Classe

Comment ajouter un flux RSS pour suivre les publications récentes ?

Intro :

  1. L'usage des flux RSS tend à se généraliser.
  2. Le navigateur FireFox intègre un agrégateur de flux et permet l'utilisation d'extensions dédiées à cet usage. J'ai une petite préférence pour l'extension "Sage" sur ce point !
  3. Gest'classe étant construit en php autour d'une base de donnée, il est possible de créer un script php/SQL, qui aille rechercher les données dans la base et génère la feuille XML pour le flux RSS.
  4. Les documents ajoutés peuvent se trouver dans diverses rubriques ou sous rubriques et donc le visiteur peut très bien ne pas se rendre compte que vous avez ajouté un nouveau document !

Remarque :

Pour que le flux ci-dessous fonctionne correctement, vous devrez impérativement utiliser des adresses absolues lorsque vous ajouterez un document dans gest'classe. Dans le cas contraire, le flux va bien générer la page XML, mais pour une raison que je n'ai pas encore eu le temps de déterminer, il ne va pas créer de lien. Vous ne pourrez donc que constater qu'il y a un nouveau doc, mais vous ne pourrez pas y accéder. C'est un peu idiot, mais je ne désespère pas d'y trouver bientôt une solution !

Comment procéder ?

Faire apparaître une petite icône dans la barre d'adresse :

Lorsque l'on navigue sur le Net avec FireFox on peut parfois voir apparaître dans la barre d'adresse une petite icône jaune signalant l'existence d'un flux RSS. Pour faire apparaître cette icône dans Gest'Classe, il suffit d'ouvrir le fichier index.php se trouvant à la racine du site et d'y insérer entre les balises <head></head> la ligne ci-dessous :

<link rel="alternate" type="application/rss+xml" title="Titre de votre choix " href="URL/Flux.xml " />

Modifier en conséquence les parties en rouge.

Écrire la page php pour générer le flux :

Vous devez créer un fichier php et lui donner le nom de votre choix en réalisant un copier/coller du code ci-dessous. Il faudra modifier les parties mises en évidences. Un code couleur est là pour vous aider à mieux comprendre le rôle de chaque valeur :

<?
$rssfile = '<?xml version="1.0" encoding="iso-8859-1"?>';
$rssfile .= '<rss version="2.0">';
$rssfile .= '<channel>';
$rssfile .= '<title>Titre de votre choix</title>';
$rssfile .= '<link>URL de votre site</link>';
$rssfile .= '<description>Description de votre flux, sans accents</description>';
$rssfile .= '<language>fr</language>';
$rssfile .= '<image>';
$rssfile .= '<title>Titre de votre choix</title>';
$rssfile .= '<url>URL image affichée en haut à droite</url>';// Facultatif
$rssfile .= '<link>URL de votre site</link>';
$rssfile .= '</image>';

// Connexion  MySQL
$dbhost = 'Serveur SQL de votre hébergeur';
$dbname = 'BDD'; // Nom de votre base de données
$dbuser = 'identifiant';
$dbpwd = 'MDP'; // MDP pour vous connecter à la BDD

// On vas chercher les données
$db = mysql_connect($dbhost, $dbuser, $dbpwd) or die('Erreur de connexion :'.mysql_error());
mysql_select_db($dbname,$db)  or die('Erreur de selection :'.mysql_error());
$req = 'SELECT * FROM gc_contenu_auto ORDER BY id_auto DESC LIMIT 0, 10';
$res = mysql_query($req);

// Extraction des 10 dernières actualités while($row = mysql_fetch_array($res)){ $titre = $row['nom']; $adresse = $row['url']; $contenu = $row['contenu']; $rssfile .= '<item>\n'; $rssfile .= '<title>'.$titre.'</title>\n'; $rssfile .= '<link>'.$adresse.'</link>\n'; $rssfile .= '<description>'.$contenu.'</description>\n'; $rssfile .= '</item>\n'; } $rssfile .= '</channel>\n'; $rssfile .= '</rss>'; $fichier = fopen("Flux.xml", 'w+'); fputs($fichier, $rssfile); fclose($fichier); // Ici j'ai ajouté une redirection automatique vers la page XML. // On peut ajouter d'autre lignes echo pour modifier l'aspect de la page ! echo '<meta http-equiv="REFRESH" content="0; URL=URL/Flux.xml">'; echo 'Fichier crée !<br><a href="Flux.xml">Voir le flux RSS</a>'; mysql_close(); ?>

  1. 10 : Nombre de documents affichés dans le flux. Ici, la page va afficher les 10 documents ajoutés le plus récemment ! Vous pouvez remplacer par la valeur de votre choix !
  2. Flux.xml : La valeur doit évidement être la même dans ces deux lignes, car il s'agit du nom du fichier généré par le script php ! Mais vous pouvez lui donner le nom que vous voulez !
  3. id_auto : C'est le critère de sélection des données dans la base. Ici, on va sélectionner les documents en fonction de leur id et les afficher dans l'ordre décroissant. Chaque foi que l'on ajoute un nouveau document, il va s'ajouter à la liste avec un id "n+1". En clair, l'id le plus grand correspond tout simplement au document ajouté le plus récemment ... ! Vous pouvez choisir un autre critère si vous voulez, mais ce ne sera peut être pas aussi probant ! Par exemple, en utilisant le critère "nom" vous classerez les documents en fonction de leur "nom" dans l'ordre alphabétique inverse.
  4. 0 : Délais en secondes. Vous pouvez mettre une autre valeur si vous le souhaitez !
  5. gc_contenu_auto : Bien vérifier dans votre BDD, si le préfixe est le même ! C'est le nom de la table.

Mise en place :

  1. Transférer le fichier php sur votre site via FTP. Il est préférable de le placer à la racine.
  2. Ajouter quelque part un bouton avec le lien vers cette page. Personnellement, j'ai ajouté un petit bouton RSS tout en bas de la page "admi.php", qui me permet d'actualiser le flux RSS en régénérant la feuille XML correspondante. Il suffit de cliquer sur ce bouton quand on a finit d'ajouter des documents. Si vous souhaitez en faire autant, ouvrir admi.php et rechercher tout en bas du code une table (c'est le pied de page avec les liens vers le site de Pierre LUX et le bouton pour revenir en haute de page) et y ajouter une cellule en copiant le code suivant :
<td>
<a href="URL/Flux.xml" target="_blank" style="text-decoration:none;">
<img src="URL/RSS.png" style="border:0;" align="absmiddle" > <font size="1" face="Arial, Helvetica, sans-serif" color="<? echo "#$couleur8"; ?>"> Actualiser le flux RSS </font>
</a>
</td>
  1. Il doit être possible aussi d'ajouter ce bouton dans la page d'accueil, mais est-ce bien probant ?

Conclusion :

Cela m'a pris plus de temps pour coder cette page d'aide que pour créer mon flux RSS !
Mais cela fonctionne très bien.

 

M. RAMIERE - Mai 2007

Creative Commons License