Logo FeedBurner

FeedBurner est un service Google permettant d'avoir des statistiques sur son Flux RSS. Un plugin FeedBurner existe pour Dotclear, mais celui-ci ne semble pas marcher et ne plus être en développement. (La dernière version date de début 2008, alors pour Dotclear 1.2.5... Actuellement, nous sommes à la version 1.2.8)

J'obtenais des erreurs telles que :

Warning: Invalid argument supplied for foreach() in /tools/feedburner/class.feedburnerstats.php on line 187
Warning: Invalid argument supplied for foreach() in /tools/feedburner/class.feedburnerstats.php on line 193

Je vous propose alors mon astuce pour permettre d'utiliser FeedBurner sans perdre vos précédents abonnés. Nous allons écrire quelques lignes de PHP. Tout est faisable directement via Dotclear pour peu qu'on ait le plugin File Manager d'Olivier Meunier.

Le principe

Je pars du principe que vous avez déjà un compte FeedBurner, et que vous y avez déjà enregistré le flux RSS généré par Dotclear. Vous devez également connaître l'URL FeedBurner qui correspond à votre flux RSS. Chez moi c'est http://feeds.feedburner.com/GuilouBlog par exemple. Voici comment nous allons procéder :

  1. Nous allons renommer le fichier qui génère actuellement notre flux RSS (exemple: _rss.php)
  2. Vous devez éditer votre flux RSS chez FeedBurner pour qu'il pointe sur http://votre.url.org/_rss.php.
  3. Nous allons créer un fichier rss.php à la place du précédent. C'est ce fichier qui va rediriger vers FeedBurner les abonnés.
  4. Nous allons y placer du code PHP (voir plus bas)
  5. C'est tout !

Voici le code à placer dans le fichier rss.php, une fois celui-ci sauvegardé sous un autre nom (ici, _rss.php)

<?php
if(empty($_GET['type'])) header("Location: http://feeds.feedburner.com/GuilouBlog.php");
else {
  $url = str_replace("rss.php", "_rss.php", $_SERVER['REQUEST_URI']);
  header("Location: ".$url);
}
?>

Concrêtement, nous redirigeons simplement les requêtes qui ne contenaient pas de "type" (c'est le cas pour le flux RSS des articles) vers le flux généré par FeedBurner (qui je le rappelle, s'appuie sur _rss.php, qui est l'ancien fichier de dotclear qui générait le RSS). Les utilisateurs qui suivaient avant votre flux RSS sont donc redirigé automatiquement et sans leur avis vers FeedBurner !

Les autres requêtes ne sont pas filtrées et retournent vers le flux RSS originel. Si vous souhaitez suivre également avec FeedBurner les abonnements au flux RSS des commentaires par exemple, il faudrait modifier le fichier comme suit :

<?php
if(empty($_GET['type'])) header("Location: http://feeds.feedburner.com/GuilouBlog.php");
else if($_GET['type'] == "co") header("Location: http://feeds.feedburner.com/GuilouBlogComments.php");
else {
  $url = str_replace("rss.php", "_rss.php", $_SERVER['REQUEST_URI']);
  header("Location: ".$url);
}
?>

Pour tester, il suffit de vous abonner à votre propre flux : c'est devenu celui de FeedBurner ! Notez que si vous venez juste d'ouvrir un compte chez eux, il faut du temps avant d'avoir un résultat... (chez moi, plus d'une journée !). Cette méthode est transposable pour les flux Atom bien évidemment :)