JeuxWeb

Menu
Accueil
News
Qui Sommes Nous ?
Créateur de Jeu ?
Jeux de Plateau
Aider JeuxWeb
Forums
Nous contacter
Liens
Les Guides
Codes et Scripts
Articles
Nos Jeux
MountyHall
Monde de Thäanis
Braldahim
Divers
Photos
Actu MountyHall
Actu Thäanis
Actu Braldahim
Login





Mot de passe oublié ?
Pas encore de compte ? Enregistrez-vous

 Accueil arrow Codes et Scripts arrow Scripts php/mysql arrow Créer un fil RSS

Créer un fil RSS
Écrit par [VYS]   
22-11-2005
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

Discuter de cet article dans les forums. (18 Messages)

 
< Précédent   Suivant >
 
© 2010 JeuxWeb.org asbl