Créer un fil RSS

En un simple script php, mettons à disposition de nos visiteurs un moyen aisé de se tenir au courant des nouvelles de notre jeux.

Le but de ce script est de créer un fichier statique (de type XML) qui sera composé des informations de vos nouvelles :

La structure de la DB :

CREATE TABLE `News` (   `NW_ID` int(11) NOT NULL auto_increment,   `NW_Date` datetime default NULL,   `NW_Title` varchar(255),   `NW_News` text,   PRIMARY KEY  (`NW_ID`),   KEY `NW_Date` (`NW_Date`) ) TYPE=MyISAM AUTO_INCREMENT=1; 

Le fichier rss (statique)

News.rss
ATTENTION : Le serveur web doit avoir les droits d’écriture sur ce fichier

Le Script :

// Fichier make_rss.php

// Variables décrivant votre flux
$ls_SaveAs = "News.rss";
$ls_urlNews = "http://www.mountyhall.com/News.php";
$ls_titleNews = "MountyHall - News";
$ls_descriptionNews = "Toutes les news de MountyHall, la Terre de Trõlls";
$ls_mailWebmaster = "webmaster#at#mountyhall.com";

// connexion à la DB
f_myConnection();

// requete pour obtenir les news qui nous intéressent
$SQL="SELECT * FROM News ORDER BY NW_Date DESC";
$lp_SQLResult = f_myQuery($SQL);

// construction du début du fichier XML
$ls_return = '<'.'?xml version="1.0" encoding="iso-8859-1" ?'.'>';
$ls_return.= '<rss version="2.0">';
$ls_return.= '<channel>';
$ls_return.= '<title>'.$ls_titleNews.'</title>';
$ls_return.= '<link>'.$ls_urlNews.'</link>';
$ls_return.= '<description>'.$ls_descriptionNews.'</description>';
$ls_return.= '<language>fr</language>';
$ls_return.= '<pubdate>'.date('r').'</pubdate>';
$ls_return.= '<lastbuilddate>'.date('r').'</lastbuilddate>';

// Parcours des records
while($lq_News = mysql_fetch_array($lp_SQLResult))
{
  // ajout d'un 'item' pour chaque nouvelle
  $ls_return.= '<item>';
  $ls_return.= '<title>'.htmlspecialchars($lq_News['NW_Title']).'</title>';
  $ls_return.= '<author>'.ls_mailWebmaster.'</author>';
  $ls_return.= '<link>'.$ls_urlNews.'?ID='.$lq_news['NW_ID'].'</link>';
  $ls_return.= '<description>';
  $ls_return.= htmlspecialchars($lq_News["NW_News"]);
  $ls_return.= '</description>';
  $ls_return.= '<pubdate>'.date('r', strtotime($lq_News["NW_Date"])).'</pubdate>';
  $ls_return.= '<guid>".$ls_urlNews."?ID='.$lq_News["NW_ID"].'</guid>';
  $ls_return.= '</item>';
}

// Fin du fichier XML
$ls_return.= '</channel>';
$ls_return.= '</rss>';

// ecriture du fichier rss sur l'arborescence web
// Attention : le serveur web doit avoir les droits d'écriture sur ce fichier
$lf_rss = fopen($ls_SaveAs, 'w');
fwrite($lf_rss, $ls_return);
fclose($lf_rss);

Il suffit donc d’appeler votre fichier make_rss.php a chaque fois que vous ajoutez une nouvelle dans votre DB.

Annoncer le Flux rss :

dans votre page d’accueil, il faut ajouter, dans la section <head></head>

<LINK REL="alternate" TYPE="application/rss+xml" TITLE="MountyHall – News" HREF="News.rss" />

Certains navigateurs (Mozilla Firefox, Maxthon, ..) pourront ainsi détecter automatiquement la présence de ce flux lorsque le visiteur arrivera sur votre page d’accueil.

Notes :

  • les fonctions f_myConnection() et f_myQuery() sont propres à notre framework, il vous suffira de les remplacer par votre méthode de connexion et votre méthode d’exécution de requete SQL
  • vous avez des problèmes pour générer votre rss malgré ce tutotial ? Validez le : http://feedvalidator.org, vous pourrez alors placez la jolie marque Valid RSS

{mos_fb_discuss:2}

Laisser un commentaire