SPIP et les statistiques BBclone

Méthode d’installation, d’un compteur web + statistiques en php, sur votre spip. Simple et à la portée de tous.

Présentation

logo_bbclone

Connaissez vous BBClone ? Vous pouvez, avant de lire la suite, admirer leur démonstration.

Framasoft en parle également très bien :

C’est bien sûr moins puissant qu’Analog et autre AWStats mais c’est franchement le plus simple pour le non initié et ça peut tout à fait correspondre à vos besoins de comprendre globalement et d’un seul coup d’oeil qui vient un peu vous visiter, d’où et avec quoi (voir la convaincante démonstration sur le site officiel).

Convaincu par ce script, lisez donc la suite, c’est simple et rapide à mettre en place.

Installation en 2 temps, 3 mouvements

1- La trilogie classique :
-  téléchargement du script,
-  upload des fichiers par ftp sur votre serveur web, à savoir dans un répertoire /bbclone qui se trouvera sous votre répertoire racine spip.
-  très léger paramétrage dans le répertoire bbclone/var/, il faut faire un chmod 666 (ou 644 pour les experts, voir sur le site bbclone) sur les fichiers suivants :
* counter[0-15].inc
* access.php
* last.php
* .htalock

2- Mise en place :
il suffit à présent de modifier vos squelettes (article.html, breve.html, ..., ... ) pour insérer le compteur web « invisible ». Modifier tout ceux que vous désirez voir indexés par BBclone.
Voici le code à placer dans chacun de vos squelettes, par exemple, juste à la suite de la balise <body>

<?php
define("_BBC_PAGE_NAME", "Test");
define("_BBCLONE_DIR", "bbclone/");
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
?>

- _BBC_PAGE_NAME, ici « Test » est le nom attribué à la page (squelette), dans lequel vous placez ce bout de code. Ce nom apparaitra dans vos stats. Pensez à personnaliser ce nom pour chacun de vos squelettes

Félicitations

Et oui, c’est déjà fini, vous avez réussi l’installation de BBClone sur spip. Pour y accéder, un simple http://www.votrespip.com/bbclone suffit.

Néanmoins, pour le raffinement spipien, voici le code que j’ai placé dans le squelette article

<?php
define("_BBC_PAGE_NAME", "Articles #ID_ARTICLE ");
define("_BBCLONE_DIR", "bbclone/");
define("COUNTER", _BBCLONE_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
?> 

Chaque article sera donc identifié par son numéro dans les stats. Très pratique, notamment pour voir les chemins parcourus par les visiteurs.

Voilà, bonne installation à tous.

Discussion

11 discussions

  • 12

    bbclone et free ! Site en php3.Je me suis planté dans mon adresse, s’il y en a des qui veulent bien me répondre. Merci

    • Il y a une version adaptée de BBClone 0.4.7

      On en est la la 0.4.8 si j’ai bien vu mais bon, c’est une piste...

    • En effet j’ai le même problème avec Free.
      Le problème est que l’on ne peut pas changer le mod (chmod 666) des fichiers du répertoire bbclone/var/.
      bbclone ne peut donc pas incrementer les fichiers .inc

      J’ai essayé la version 0.4.7 modifiée pour free. Mais çane marche pas.

      Une autre idée ?

      Raphael

    • françois

      Bonjour Raphael,

      Je viens de te répondre sur le forum de BBClone.de.

      Je résume donc pour tout le monde : il y a un hack possible pour contourner le problème chez free ; l’an dernier nous étions quelques-uns à demander une solution à Olliver chez BBClone. Il nous a écrit une modif des fichiers io.php et mark_page.php qui n’utilise plus le « bloquage en écriture » des fichiers de stats : c’est pas très correct (il y a des risques) mais chez free c’est (pour le moment) la seule solution. Je l’utilise sans soucis apparents.

      Télécharger la version 0.4.8 sur le site de BBClone et remplacez les 2 fichiers qui se trouvent dans l’archive suivante

      Bon courage.
      françois.

    • Maître Dedoy

      Comment c’est trop bon !!!! Ça marche enfin ! Je ne comprenais pas pourquoi cela ne marchait pas jusqu’à maintenant. Mais avec la dernière modification (cf. 4.8a pour free) tout marche à merveille !

      Merci beaucoup pour votre contribution à nous pauvres âmes en peine ! ;-)

    • Maître Dedoy (à Dedoy de la victoire...)

      Alors là franchement ! Je n’y comprends plus rien ! J’ai pris la même archive, le même dossier et je l’ai installé sur mon deuxième site et là... rien. Le code php dans les pages de mon site sont les même ! Rien ne fonctionne ! Help !

    • françois

      Bonjour,

      Passe en mode débug de BBClone pour savoir ce qu’il fait et ne fait pas.

      >> dans le fichier config.php, vers le bas, passe $BBC_DEBUG = «  » ; à $BBC_DEBUG = 1 ;

      Puis connecte-toi à ton site : tu devrais avoir des messages qui te disent si le comptage à été fait, etc.

      Essaie la même chose sur ton site qui « fonctionne » et compare... Si ça marche sur 1 tu ne dois pas être loin de la solution ;-)

      Bon courage.
      françois.

      PS : il y a un WIKI BBClone donne pas mal d’infos >voir.

    • Maître Dedoy (ou les Dedoy de la victoire !)

      Meurcih !!!!!

      C’est vrai que je ne pense pas forcément à activer le Mode Debug... Maias cela m’a mis sur la piste. J’ai tout simplement changé les autorisations d’accès aux dossiers. Le problème est résolu grâce à votre aide ! Merci encore mille fois !

    • Merci,

      Ca marche super bien.

      Raphael

    • Bonjour à tous,

      Je viens d’installer la version hack pour free de bb clone comme expliqué precedemment mais étant encore un novice avec le php (et la techno web en général...) l’histoire de passer un CHMOD 666 sur les fichiers X ne me parle pas du tout.

      D’ou ma question, le CHMOD 666 est-il une procédure à effectuer même avec la version Hack pour Free et si oui comment activer cette procédure ?

      Merci pour vos réponse

      Greg

    • Peut-être des nouveautés ?

      J’ai recherché un peu partout pour trouver la nouvelle version de BBClone adaptée à Free...
      Je suis sous Windows Vista (ceci n’est pas un choix), et je voulais absolument appaitre sous le therme Windows Vista, j’ai donc rajouté les nouvelles versions referer.php (pour les bots) et OS.php (OS ;) ) mais il y aurait-il des nouvelles pour un hack fait par quelqu’un de plus compétent que moi...

      Merci d’avance car je retombe sans arrêt sur votre site ou d’autres sites qui me renvoient vers le votre...

    • françois

      Bonjour,

      Je viens de mettre à jour les 2 fichiers hackés qui permettent d’utiliser la dernière version de BBClone chez Free.fr.
      Donc téléchargez cette dernière version 0.4.9c et remplacez les 2 fichiers io.php et mark_page.php par ceux que j’ai mis à jour ICI

    • Bonjour,

      Les liens indiqués ci-dessus ont plus de 13 ans et sont morts, ainsi que les fichiers sources ;-)

      Pour les personnes qui utilisent toujours BBClone chez Free (ce qui n’est plus mon cas), je conseille de regarder la page d’aide de BBClone qui concerne le verrouillage des fichiers :
      http://help.bbclone.de/index.php?n=Config.BBCUSELOCK

      Chez Free, la fonction PHP flock() est désactivée depuis longtemps et c’est elle qui est utilisée par défaut par BBClone : essayer avec l’une des 2 autres options « dio » ou « sem » proposées par BBClone.

      Dans le cas d’un désepoir extrême, il faut essayer de remplacer flock() dans les fichiers :
      -  ./lib/io.php
      -  ./lib/marker.php
      par une fonction alternative :

      function flockBis($a,$b) { return true; }

      ou quelque chose du même ordre ;-)

      Et un retour sera apprécié par les personnes qui utilisent toujours BBClone chez Free !

    Répondre à ce message

  • 1

    Bonjour

    Impeccable, ce compteur BBclone avec un site en SPIP

    c’est opérationnel sur le site Histoire Passion

    Il y a un règlage qui m’intéresserait, mais je n’ai pas trouvé comment le faire :

    pour les mots-clés saisis dans les moteurs de recherche par les viviteurs du site, comment faire pour ne pas prendre en compte les mots « le, la ,les, de, des, du .... » qui ne sont pas significatifs, et viennent en tête de liste

    j’ai essayé ceci, dans le config.php $BBC_IGNORE_SEARCH = « le,la,les,de,des,un,une,en,et » ;
    mais ça ne semble pas avoir d’effet.

    Quelqu’un aurait-il une idée à me suggérer ?

    Cordialement

    • Emmanuel

      Bonjour,
      Intéressé pour avoir les fichiers hackés.
      Merci.

    Répondre à ce message

  • Allo !

    J’ai finalement réussi l’installation, après un bug étrange. En effet, tout allait bien sauf une chose, lorsque je transférais le fichier « .htalock » sur le serveur, il disparaissait. Comme si le serveur n’acceptait pas ce nom de fichier, ou le garder caché. Ainsi, je ne pouvais faire le chmod, puisque le fichier n’était pas là. BBClone ne fonctionnait donc pas, les statistiques restant toujours vides.

    La solution que j’ai trouvé fut de renommer le fichier (ex. « toto.hta ») avant de le transférer sur le serveur. J’ai alors pu appliquer le chmod. Enfin, j’ai renommé le fichier correctement « .htalock » et le fichier a disparue, mais cette fois avec les droit d’accès, alors BBClone fonctionne !

    Répondre à ce message

  • Hello,

    J’ai essayé d’ajouter automatiquement le code d’activation de bbclone à toutes les pages .php3 de mon site Spip avec un fichier .htaccess, comme suggéré dans la documentation de bbclone : « Automatically Adding the Activation Code To Every PHP Page (Apache webservers only) »

    Résultat : mes pages sont remplacées par une page blanche (vierge).

    Avez vous déja tenté ce type de configuration et avez vous rencontré des difficultés ?

    Merci.

    Répondre à ce message

  • 2

    Super !
    D’une facilité d’installation étonnante.
    Merci donc.

    Juste une question :
    Pourquoi
    define(« _BBC_PAGE_NAME », « #TITRE ») ;
    ne marche pas ?

    • j’éviterais d’utiliser #TITRE, d’un part on peut avoir plusieurs fois le même titre sur un site... et comme on passe ça dans du php il faut de toute façon ajouter des filtres pour avoir un truc propre... enfin, c’est la base, il faut que le code soit dans une boucle ARTICLES englobantes.

      -  si vraiment le titre est indispensable (plus lisible pour les stats) un truc genre #ID_ARTICLE - [(#TITRE|texte_script)] devrait gazer.

    • bonjour

      je cherche à utiliser #TITRE mais comme il y a des caractères spéciaux dans mes titres, j’utilise [(#TITRE|textebrut)]... et bien ça marche quelques fois. la plupart du temps j’ai une erreur. or quand je remets #TITRE au lieu de [(#TITRE|textebrut)] ça remarche.Je me demande si les [ ] et les ( ) ne posent pas problème... quelqu’un sait ?

    Répondre à ce message

  • A noter que l’on peut probablement simplifier la mise en place des stats pour toutes les pages d’un spip.

    Les instructions et exemples :
    -  http://help.bbclone.de/index.php?n=Setup.ActivationCode
    -  http://help.bbclone.de/index.php?n=Setup.CMS

    Si quelqu’un se penche un jour sur le sujet, qu’il n’hésite pas à nous en faire part ici et sur leur wiki.

    Répondre à ce message

  • 2

    Bonjour et merci pour cette contrib.
    Je souhaiterai intégrer dans un squelette certaines stats récupérées par bbclone.
    Si je m’inspire du code donné ici http://help.bbclone.de/pmwiki.php?n=Examples.Example7 ,

    <?php
     // install directory path, starting from the www-root and with a trailing slash 
     define("_BBCLONE_DIR", "stats/");  
     if (is_readable(_BBCLONE_DIR."constants.php")) {
       require(_BBCLONE_DIR."constants.php");
     }
     else exit("invalid path given. it must end with a slash");
     
     foreach (array("conf/config", "lib/selectlang", "var/access",
     "show_global") as $i) {
       if (is_readable(_BBCLONE_DIR.$i.".php")) require(_BBCLONE_DIR.$i.".php");
       else exit(bbc_msg(_BBCLONE_DIR.$i.".php"));
     
     echo "<table border=\"0\" cellpadding=\"20\" cellspacing=\"0\">\n"
         ."<tr>\n"
         ."<td valign=\"top\">\n"
         .bbc_show_robot()      ."</td>\n"
         ."</tr>\n"
         ."</table>\n";
     ?>

    j’obtiens une erreur sur l’appel de la fonction bbc_show_robot()(ou une autre parmi celles proposées en option comme par exemple bbc_show_top_pages()).
    Si je mets cet appel en commentaire, je n’ai pas d’erreur mais bien sûr ça n’affiche rien.
    La variable dir de bbclone est bien personnalisée comme indiqué.
    Quelqu’un aurait une idée sur la façon de solutioner mon souci SVP ?

    • Salut, après plusieurs recherches je me suis rendu compte qu’il y avait une erreur dans le code PHP. Il fallait rajouter les deux accolades avant « if » et à la fin de la ligne de code commencant par « else ». Voici le code et n’oublie pas d’indiquer le bon chemin pour ton répertoire bbclone. S’il est à la racine du site, ce sera :

      define("_BBCLONE_DIR", "bbclone/");

      Le code :


      <?php
      // install directory path, starting from the www-root and with a trailing slash 
      define("_BBCLONE_DIR", "bbclone/");  
      if (is_readable(_BBCLONE_DIR."constants.php")) {
        require(_BBCLONE_DIR."constants.php");
      }
      else exit("invalid path given. it must end with a slash");
      
       foreach (array("conf/config", "lib/selectlang", "var/access",
       "show_global") as $i) 
      {
         if (is_readable(_BBCLONE_DIR.$i.".php")) require(_BBCLONE_DIR.$i.".php");
         else exit(bbc_msg(_BBCLONE_DIR.$i.".php"));
      }
      
       echo "<table border=\"0\" cellpadding=\"20\" cellspacing=\"0\">\n"
           ."<tr>\n"
           ."<td valign=\"top\">\n"
           .bbc_show_robot()      ."</td>\n"
           ."</tr>\n"
           ."</table>\n";
       ?>

    • Bonjour et merci pour ta réponse. Je n’ai vu qu’une différence entre le code que tu m’indiques et celui proposé : l’accolade à la fin du else :

      foreach (array("conf/config", "lib/selectlang", "var/access", "show_global") as $i) 
      {
        if (is_readable(_BBCLONE_DIR.$i.".php")) require(_BBCLONE_DIR.$i.".php");
        else exit(bbc_msg(_BBCLONE_DIR.$i.".php"));
      }

      ...et tu as raison ça fait la différence, ça marche impec ! Même si je suis novice en php, j’aurai pu mieux regarder...
      A noter qu’il ne faut pas définir un compteur dans la page où l’on met ce code, sinon erreur.
      Un grand merci donc, car je m’imaginais un truc insurmontable, style conflit de variable avec SPIP :)

    Répondre à ce message

  • 1
    Maitre Dedoy

    Bonjour ! Ce système de stat est une pure merveille ! Et de plus extrêmement simple à installer. Un rêve ! Le rêve serait d’autant plus merveilleux et complet s’il fonctionnait sous free... Quelqu’un aurait-il une idée ?

    Répondre à ce message

  • 1

    Bonjour !
    Installation et fonctionnement sans problèmes sur club internet, pb sur free, aucune prise en compte dans les stats des connections. Quelqu’un a une idée ?
    Merci d’avance.

    Répondre à ce message

  • Bonjour,

    Je ne l’ai pas encore réellement testé, mais pour l’installation c’est on ne peut plus simple, surtout pour les non-spécialistes du code !!

    Bref, il me semble que cela soit un excellent outil de mesure, à la portée du débutant.

    D-J

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom