Création d'un flux RSS au CMS free.fr

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.
Nous allons à présent créer un flux rss affichant les 20 derniers articles tronqués. On créé une nouvelle page sans design, que l'on va nommer "rss.php".
Pourquoi sans design? Tout simplement parce que c'est un flux XML que nous allons mettre en place.

Pour commencer, on indique que le fichier est au format xml :
<?php
// On indique que c'est du xml
header("Content-type: application/xml");
 On inclue le fichier des fonctions et la connexion à la BD.
include('fonctions.php');
//On se connecte à la base de données
include('connexion_bd.php');
connexion_bd();
On sélectionne les données de la page d'accueil pour donner un titre et une description sur l'entête du flux rss :
//On sélectionne les données de la page d'accueil
$index = mysql_query("SELECT titre,description FROM ACCUEIL");
 
while($accueil = mysql_fetch_array($index))
{
$titre=$accueil['titre'];
$description=$accueil['description'];
}
 
//Entête du flux rss
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n <rss version=\"2.0\">\n <channel>\n <title>$titre</title>\n <link>$url</link>\n <description>$description</description>\n <language>fr</language>\n\n";
Note : la variable $url n'existe pas pour le moment car c'est une nouvelle fonction que nous allons ajouter un peut plus tard.
On sélectionne ensuite les 20 derniers articles :
//On sélectionne les données des pages
$result = mysql_query("SELECT titre, description, titre_rewrite, date, id_categorie FROM CONTENU WHERE valide = 'oui' ORDER BY id ASC LIMIT 20");
 
while($affiche = mysql_fetch_array($result))
{
On ne referme pas la boucle while() pour récupérer les catégories correspondants aux articles :
//On sélectionne les catégorie qui correspondent aux pages
$result1 = mysql_query("SELECT titre_rewrite FROM CATEGORIES WHERE id=".$affiche['id_categorie']."");
On affiche les données :
while($affiche1 = mysql_fetch_array($result1))
{
//On affiche les flux
echo '<item> <title>'.$affiche['titre'].'</title> <link>'.$url.'/'.$affiche1['titre_rewrite'].'/'.sanspointphp($affiche['titre_rewrite']).'</link> <description><![CDATA['.tronquer(nl2br($affiche['description'])).']]></description> <pubDate>'.date ("D, d M Y H:i:s +0000", $affiche['date']).'</pubDate> </item>';
}
}
On referme tout :
// Fermeture de la connexion à la base de données
close_bd();
//On ferme le flux rss
echo "</channel>\n</rss>";
?>
On ouvre le fichier des fonctions et on y insère la fonction suivante :
//Fonction pour récupérer l'url du site
function url_actuelle()
{
    return 'http://'.$_SERVER["SERVER_NAME"].'';
}
$url = (url_actuelle());
Cette fonction permet de retourner l'url de votre site sous la forme : "http://mon-site.free.fr" .
Voir/déposer un commentaire (0) | Signaler un problème