Note utilisateur: 5 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles actives
 
macro




Vous avez un fil RSS, un blog (de type WordPress ou autre) ou vous souhaitez diffuser sur votre site le contenu, mis à jour d'un fil RSS ?

C'est possible de le faire en installant ce qu'on appelle un "parser".

Ce dernier va vous permettre d'afficher automatiquement sur une page statique les derniers articles diffusés dans un flux RSS.

Je vais pour ce tuto utiliser un parser utilisant le langage PHP nommé "magpierss".

Son installation est rapide et son paramètrage est simple, mais il comporte certaines subtilités que nous allons explorer.

 

 

 

Télécharger Magpierss

 

Veuillez tout d'abord télécharger le script Magpierss en cliquant sur le bouton ci-dessous :

 

DOWNLOAD

 

Ou rendez-vous directement sur le site de l'auteur à cette adresse : http://magpierss.sourceforge.net/

Une fois téléchargé, décompressez le dossier.

 

 

 

Placement des fichiers sur le serveur

 

Créez un dossier nommé "magpierss" sur votre serveur FTP et mettez à l'intérieur les fichiers :

- rss_cache.inc
- rss_fetch.inc
- rss_parse.inc
- rss_utils.inc

 

Dans le dossier "magpierss", créez un dossier nommé "cache" puis attribuez-lui un CHMOD 777

001_GF

 

 

Toujours dans le dossier "magpiersss", créez un dossier nommé "extlib" puis placez à l'intérieur de ce dossier le fichier nommé "Snoopy.class.inc"

 

 

 

Création de la page de traitement

 


Toute la configuration doit être réalisée dans une page PHP.

Créez une page nommée "feedparser.php" puis copiez/collez le code ci-dessous en le modifiant selon vos propres besoins :

- function FeedParser($url_feed, $nb_items_affiches=10)  :  affiche les 10 dernières news du flux RSS. Changez ce chiffre selon votre souhait

- require_once("http:/www.votresite.com/magpierss/rss_fetch.inc") : l'URL où se trouve votre fichier "rss_fetch.inc".

AMPOULE Utilisez de préférence, comme je l'ai fait, une adresse relative (URL complète)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
// inclusion de la classe magpierss
require_once("http://www.learnup.fr/magpierss/rss_fetch.inc");
function FeedParser($url_feed, $nb_items_affiches=10)
{
 
// lecture du fichier distant (flux XML)
$rss = fetch_rss($url_feed);
 
// si le parcours du fichier se passe bien, on lit les élements (items)
if (is_array($rss->items)) {
 
// on ne garde que les $nb_items_affiches premiers éléments (items), nombre défini dans l'en-tête de la fonction
$items = array_slice($rss->items, 0, $nb_items_affiches);
 
// on fait une boucle sur les informations : pour chaque item, récupérer $titre... et afficher
foreach($items as $item) {
 
// on mémorise les informations de chaque item dans des variables
$titre = $item["title"];
$lien = $item["link"];
$description = $item["description"];
 
 
// la date utilisée pour les flux RSS est au format timestamp, il faut donc formater la date
// conversion au format jj/mm/aa. pour plus d'informations, vous conférer au tutorial sur les timestamp
$date = date("d/m/y",strtotime($item["pubdate"]));
 
// puis la date et la description
$html .= "$date   ";
// on affiche le titre de chaque item
$html .= "<a href=\"".$lien."\" title=\"".$titre."\" target=\"_blank\">".$titre."</a><br>\n";
 
} // fin de la boucle
 
// on retourne la variable $html au programme (elle contient le code HTML pour l'affichage du flux)
return $html;
} // fin du traitement du fichier
} // fin de la fonction FeedParser()
?>

 

Ce code très simple vous donnera la liste des derniers articles, accompagnés de la date de parution comme l'exemple ci-dessous :

002_GF

 

Votre visiteur n'aura plus qu'à cliquer sur chaque lien pour afficher l'article en intégralité.

 

 

 

Configuration du cache

 

Par défaut, la liste des derniers articles du flux RSS est actualisée toute les heures.

Si vous souhaitez réduire ou allonger cette durée, ouvrez le fichier nommé "rss_cache.inc", contenu dans le dossier "magpierss"

Modifiez ensuite la valeur contenue dans la variable "var $MAX_AGE = 3600;" par le nombre de secondes avant rafraîchissement souhaitées.

Par exemple, si au lieu des 3600 vous indiquez 60, la liste des articles sera mise à jour toute les 60 secondes...

 

003_GF

 

 

La variable "var $BASE CACHE='./cache';" vous permet de choisir le répertoire utilisé pour la gestion du cache.

Si vous modifiez la valeur par défaut penser à effectuer un CHMOD 777 sur le dossier utilisé pour la gestion du cache afin d'autoriser son écriture et donc sa mise à jour.

 

 

 

Utilisation du parser sur une page statique

 

Maintenant que tout est correctement configuré, il ne vous reste plus qu'à entrer le code ci-dessous pour afficher le contenu d'un flux RSS sur une page statique de votre choix :

 

1
<?php require_once("feedparser.php"); echo FeedParser("http://www.learnup.fr/wp/feed/",10); ?>

 

Remplacez bien sûr : http://www.learnup.fr/wp/feed/",10 : par l'adresse du flux RSS à afficher, suivi du nombre d'articles à lister.

 

attention attention attention

La page qui va devoir contenir ce code doit IMPERATIVEMENT être au format .PHP

SSSi vous insérez ce code dans une page avec une extension .HTM ou .HTML, il ne fonctionnera pas, tout simplement parce qu'il ne sera pas lu par le navigateur !

 

 

 

Magpierss et les problèmes de cache

 

Il n'est pas rare que Magpierss pose des problèmes avec son cache : les articles ne sont pas mis à jour dans le temps qui a été défini dans le fichier rss_cache.inc.

Je n'ai pas identifié la cause de cette absence de mise à jour, mais j'ai vu sur plusieurs forums, des dizaines d'utilisateurs qui étaient ennuyés au niveau des mises à jour.

Après plusieurs essais, j'ai vu qu'il était possible de désactiver le cache de magpierss.

Une fois le cache désactivé, la liste des derniers articles se met correctement à jour.

 

Si vous aussi vous rencontrez un problème de cache, suivez les instructions ci-dessous :

Ouvrez le fichier "rss_fetch.inc"

Cherchez la définition de constante suivante : "define('MAGPIE_CACHE_ON', true);" située ligne 342, si vous avez un bon éditeur

 

004_GF

 

Remplacez "true" par "false" et enregistrez votre fichier.

La fonction cache sera ainsi désactivée.

 

 

greg

1000 caractères restants


Peuvent aussi vous intéresser :