Extensions et tutorials gratuits disponibles sur internet pour Dreamweaver. PHP et ASP. Classement thématique. Blog référencé par Adobe Communauté Dreamweaver. Un peu de philosophie.

Dreamgratuit - Philosophie

Tutorial de l’extension « RSS 2.0 from DB » - Créer un fil RSS depuis une base MySQL avec PHP

10 mars 2008 | Posté par caroder à 08:47

Bookmark and Share

Ce bref tutorial suppose que vous avez d’ores et déjà installé l’extension citée dans un précédent billet :)) !!
Il vous permettra de créer un flux xml au spécification RSS 2.0 à partir des données de votre base MySQL et de le proposer ainsi à vos utilisateurs et à des sites partenaires.
Merci à Tobias Weindel pour cette extension qu’il met à notre disposition gratuitement.
Pour obtenir de l’information sur les balises standards du RSS, vous pouvez consulter cet article : http://www.xul.fr/xml-rss.html

Faites Fichier >> Nouveau >>  Page vierge >> Mise en forme = aucune. Enregistrer votre page en lui donnant par exemple le nom creer-flux.php .

Insérer la connexion à votre base de données (par exemple en copiant en en-tête de page la ligne :

<?php require_once('Connections/nom_de_votre_connexion.php'); ?>

Allez maintenant dans l’onglet Comportement Serveur >> TowBee >> RSS 2.0 from DB. Dans la fenêtre qui apparaît, renseignez les champ comme demandé. J’attire votre attention sur le fait que si vous ne souhaitez pas renseigner les champs optionnels, vous devez cocher la case qui les précèdent.

Mettez maintenant votre page en mode code. Nous allons procéder à plusieurs manipulation vous permettant de parfaire ce fonctionnel.

Tout d’abord consultez le mode d’encodage des caractères de votre base en allant dans PHPMyAdmin. Quant à moi, dans ma version de PHPMyAdmin, cette information se trouvait ici : (photo)

Selon le mode d’encodage des caractères de votre base, vous allez devoir modifier certaines lignes de codes pour que cette extension fonctionne parfaitement. Si votre encodage est comme moi UFT-8 modifier la ligne suivante :

$rss .= "<?xml version=\"1.0\" ?>\r\n";

en

$rss .= "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n";

Cette modification vise à ce que notamment vos caractères accentués soient correctement affichés.

Maintenant repérez la ligne :

$rss .= "<pubDate>" . date("D dS M Y H:m:s", $row_rs_rss['num_act']) . "</pubDate>\r\n";

Le problème des dates dans les bases MySQL n’est pas mince !! Selon le format de date que vous avez dans votre base, vous allez obtenir ou non une erreur de date. Quant à moi, le format qui existe dans ma base est de type YYYY-MM-DD (format « américain »). Je dois donc convertir ce format afin qu’il corresponde au standard RSS 2.0. Je modifie donc cette ligne de la façon suivante :

$rss .= "<pubDate>" . date("D, dS M Y H:m:s", strtotime($row_rs_rss2['date_art'])) . "</pubDate>\r\n";

Je dois maintenant recréer le lien complet vers la page de mon article à la ligne suivante :

$rss .= "<link>" . $row_rs_rss['ID_actu'] . "</link>\r\n";

que je modifie comme suit (à adapter à votre propre URL) :

$rss .= "<link>http://www.mon-site.com/article.php?" . $row_rs_rss['ID_actu'] . "</link>\r\n";

Enfin, je ne souhaite pas afficher dans ce RSS la totalité de mes articles (ou bien je vais rendre fou mes utilisateurs !!). Il me faut donc adapter la requête SQL :

$query_rs_rss = "SELECT * FROM actualite";

que je restreint au seules 10 dernières actualités :

$query_rs_rss = "SELECT * FROM actualite ORDER BY ID_actu DESC LIMIT 0, 10";

L’extension que nous utilisons se propose uniquement d’afficher dans la page PHP le flux, ce qui n’est pas très orthodoxe (le flux xml est affiché dans une page portant une extension .php) !! Nous devons donc écrire le résultat obtenu dans un fichier à part. Pour cela nous remplaçons la ligne de code :

echo $rss;

par

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

Lorsque vous passerez en serveur de production, mettez votre fichier creer-flux.php dans un sous-dossier à part (nommé par exemple /rss) auquel vous attribuerez le CHMOD 777.

Allez dans toutes les pages dans lesquels vous souhaitez rendre accessible ce flux aux internautes et ajoutez dans le head la ligne suivante :

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.votre_site/rss/nom_de_mon_flux.xml " />

Voilà le tour est joué, vous proposez maintenant vos articles au format RSS !

Catégorie : RSS / XML | Permalien [#]