Fils RSS pour les
Articles
Commentaires

Voici un guide pratique pour permettre l'utilisation du programme BBClone avec un blog Wordpress 2.0.x. BBClone est écrit en PHP et est une référence dans la collecte des statistiques de fréquentation de sites. Ce billet décrit également l'implémentation d'une méthode de non-comptabilisation de ses propres visites sur son site, basée sur l'emploi d'un cookie.


Principe de fonctionnement de BBClone

BBClone peut être vu comme un ensemble de quatre parties:

  • le moteur en lui-même avec son fichier de configuration
  • un répertoire avec les données collectées
  • les marqueurs logiciels à insérer dans les pages à comptabiliser
  • le module d'affichage

Lorsque un utilisateur se connecte à une page marquée, le moteur incrémente une série de compteurs dans un répertoire donné en se basant sur la configuration trouvée dans un fichier de configuration. Le gestionnaire du site1 peut alors afficher les statistiques de fréquentation du site sous différente formes, y compris une forme graphique.

bbclone-01.jpg  bbclone-02.jpg  bbclone-03.jpg  

Installation de BBClone

BBClone est écrit en PHP et s'installe sans difficultés sur votre site en utilisant la méthode classique:

  • téléchargement depuis le site officiel

(i)Comme nous allons suivre les statistiques de notre blog wordpress, il faut télécharger la version UTF8

  • décompression locale sur votre disque dur
  • envoi via FTP2 vers votre site
  • mise à 777 des attributs du répertoire "/var" et de tous les fichiers qu'il contient3

(i) Sur le site de BBClone on parle de 666 mais en pratique, il faut passer à 777!

Test de l'installation

Avant d'aller plus avant, il importe de vérifier le bon fonctionnement de votre installation de BBClone:

  • créez un fichier nommé test.php qui contient:
  1. <?php
  2.  define("_BBC_PAGE_NAME", "Test");
  3.  define("_BBCLONE_DIR", "bbclone/");
  4.  define("COUNTER", _BBCLONE_DIR."mark_page.php");
  5.  if (is_readable(COUNTER)) include_once(COUNTER);
  6.  ?>

  • transférez-le vers la racine4 de votre site
  • connectez cette page via un http://www.example.com5/test.php
  • affichez les statistiques avec http://www.example.com/bbclone/
  • les compteurs doivent s'incrémenter et comptabiliser votre visite6

Marquer les pages de votre blog

Nous avons vu que pour être comptabilisées, les pages de votre blog doivent contenir un marqueur BBClone. J'ai trouvé sur le web une façon simple d'atteindre cet objectif: insérer le code de marquage dans le fichier “wp-blog-header.php” qui se trouve dans le répertoire principal de Wordpress.

Au tout début du fichier, juste après le <?php, placez:

  1. # begin BBClone
  2. if (!function_exists("nice_titles_for_wp")) {
  3. function nice_titles_for_wp() {
  4. $str = $_SERVER['REQUEST_URI'];
  5. $str = $str[strlen($str) - 1] == "/" ?
  6. substr($str, 0, -1) : $str;
  7. $str = (($tmp = strrpos($str, "/")) !== false) ?
  8. substr($str, ($tmp + 1)) : "index";
  9. $str = ($str == "index") ? $str :
  10. ucwords(str_replace("-", " ", $str));
  11.  
  12. return $str;
  13. }
  14.  
  15. define("_BBC_PAGE_NAME", nice_titles_for_wp());
  16. define("_BBCLONE_DIR", "/path/to/bbclone/directory/");
  17. define("_COUNTER", _BBCLONE_DIR."mark_page.php");
  18. if (file_exists(_COUNTER)) include(_COUNTER);
  19. }
  20. # end BBClone

Où "/path/to/bbclone/directory/" doit être remplacé par le chemin absolu de votre installation de BBClone.

Si vous ne connaissez pas le chemin:

  • créez le petit fichier chemin.php contenant le code suivant:
  1. <?php
  2. # affiche le chemin absolu du répertoire courant
  3. echo "le chemin absolu est: ".getcwd()."/";
  4. ?>

  • transférez-le vers le répertoire /bbclone/
  • connectez le avec http://www.example.com/bbclone/chemin.php
  • remplacez /path/to/bbclone/directory/ par le chemin affiché

(i) Faites un copier/coller en n'oubliant surtout pas le "/" final

Parcourez les pages de votre blog et constatez que les compteurs correspondant aux pages visitées s'incrémentent à chaque passage.

Comment ne pas comptabiliser ses propres visites

BBClone, dans sa version actuelle, peut être configuré pour ne pas tenir compte de visiteurs ayant une adresse IP donnée. Il peut également être configuré pour ignorer les visiteurs provenant d'une adresse définie.

Comme la plupart d'entre-vous, mon adresse IP n'est pas fixe et elle change régulièrement, au moins à chaque reconnexion à mon fournisseur d'accès7. Comme beaucoup d'entre-vous également, je teste régulièrement les modifications apportées à mon site de façon interactive.

Pour éviter de fausser mes statistiques en comptabilisant mes propres visites, j'ai trouvé sur le web, un méthode élégante, basée sur l'utilisation d'un cookie, qui permet d'éviter cette situation.

Le principe en est très simple: il faut modifier le code de comptabilisation inséré dans chaque page du blog pour y insérer un test de détection d'un cookie de blocage.

  • si le cookie est envoyé par le navigateur, il ne faut pas tenir compte de la visite
  • le cookie n'est pas détecté, il faut comptabiliser la visite

Le code de comptabilisation à insérer dans “wp-blog-header.php”8 devient alors:

  1. # begin BBClone
  2. if (!function_exists("nice_titles_for_wp")) {
  3. function nice_titles_for_wp() {
  4. $str = $_SERVER['REQUEST_URI'];
  5. $str = $str[strlen($str) - 1] == "/" ?
  6. substr($str, 0, -1) : $str;
  7. $str = (($tmp = strrpos($str, "/")) !== false) ?
  8. substr($str, ($tmp + 1)) : "index";
  9. $str = ($str == "index") ? $str :
  10. ucwords(str_replace("-", " ", $str));
  11.  
  12. return $str;
  13. }
  14.  
  15. if (!isset($_COOKIE['cookie-de-blocage-pour-bbclone'])) {
  16.     define("_BBC_PAGE_NAME", nice_titles_for_wp());
  17.     define("_BBCLONE_DIR", "/path/to/bbclone/directory/");
  18.     define("_COUNTER", _BBCLONE_DIR."mark_page.php");
  19.     if (file_exists(_COUNTER)) include(_COUNTER);
  20.     }
  21. }
  22.  
  23. # end BBClone

où 'cookie-de-blocage-pour-bbclone' est le nom que vous aurez choisi pour votre cookie et "/path/to/bbclone/directory/" le chemin absolu vers BBClone.

Gestion du cookie de blocage

La dernière pièce du puzzle est un méthode qui va nous permettre:

  • d'installer le cookie de blocage pour notre navigateur
  • de tester sa présence
  • éventuellement d'enlever le cookie

Pour ce faire, l'auteur de la méthode met à notre disposition un petit programme PHP9 qui placé dans le répertoire /bbclone/, va nous permettre de gérer le cookie de blocage.

Le fichier, appelé cookie-box.php, est disponible

Sa configuration est extrêmement simple, il suffit de remplacer "cookie-de-blocage-pour-bbclone" par le nom de cookie que vous aurez choisi et ".example.com" par l'adresse de votre site (précédée d'un point)10

  1. //define the cookie names
  2.     define("__MY_COOKIE_NAME__", "cookie-de-blocage-pour-bbclone");
  3.     define("__MY_COOKIE_VALUE__", "TRUE");
  4.     define("__MY_EXPIRE_DATE__", mktime(0, 0, 0, 3, 14, 2026));
  5.     define("__MY_PATH__", "/");
  6.     define("__MY_DOMAIN__", ".example.com");

L'utilisation, bien qu'en anglais11, est, elle-aussi, des plus triviales, comme le montre la capture d'écran suivante:

set_cookies.jpg

(i) N'oubliez pas d'installer le cookie pour tous les navigateurs que vous utilisez dans la mise au point interactive de votre site.

Mise en route

Lorsque tous les tests se sont révélés concluants et que tous vous semble fonctionner comme vous le désirez, il est temps de mettre votre BBClone en production.

Pour cela il reste deux choses à faire:

  • remettre les compteurs à zéro
  • protéger le répertoire de BBClone

Mise à zéro des compteurs

  • aux alentours de la ligne 206 du fichier /bbclone/conf/config.php
  1. // Whenever you wish to reset your stats you can activate this switch and have
  2. // them deleted by the next visit. Don't forget to deactivate it afterwards,
  3. // else you'll probably experience unusually low traffic ) .
  4. // Syntax:
  5. // $BBC_KILL_STATS = 1;       => Erase all collected data
  6. // $BBC_KILL_STATS = "";      => Keep all collected data (default)
  7. $BBC_KILL_STATS = "";

  • modifier $BBC_KILL_STATS = "" en $BBC_KILL_STATS = "1"
  • enlever votre cookie de blocage via http://www.example.com/bbclone/cookie-box.php
  • visitez une page de votre blog12
  • vérifier avec http://www.example.com/bbclone/ que les compteurs sont à zéro
  • remettre $BBC_KILL_STATS = "1" à $BBC_KILL_STATS = ""
  • remettre votre cookie de blocage via http://www.example.com/bbclone/cookie-box.php

Protéger votre répertoire /bbclone/

Pour éviter que tout un chacun puisse afficher vos statistiques, je vous conseille vivement de protéger votre répertoire /bbclone/ au moyen un .htacces adéquat.

Et après tout cela...

Quand tout ce qui précède est terminé? Hé bien: c'est 'roule ma poule'!... )



Liens vers les sites en anglais sur le web


  1. vous! [retour]
  2. FileZilla peut devenir ton ami [retour]
  3. sauf le .htaccess, bien évidemment! [retour]
  4. de sorte à pouvoir l'atteindre via http://www.example.com/test.php [retour]
  5. remplacer par l'adresse de votre site... ) [retour]
  6. sinon revoyez l'installation dans son intégralité ;( [retour]
  7. c'est le propre d'une configuration DHCP [retour]
  8. j'ai mis une version modifiée de wp-blog-header.php à votre disposition [retour]
  9. en anglais [retour]
  10. plus de détails sur le site de l'auteur [retour]
  11. pour respecter le travail de l'auteur [retour]
  12. ou faire un appel de la page http:/www.example.com/test.php précédemment définie [retour]

Tags: , , , , , , , ,

Les commentaires sont fermés.