Compter les clics sur les sites référencés dans SPIP

Pour suivre l’utilisation des sites que l’on a référencé

Lorsqu’on référence des liens vers des sites (que l’on syndique ses articles), on aimerait parfois savoir s’ils sont utiles et utilisés par nos visiteurs. Compter les clics sur ces liens peut permettre d’établir des classements et un suivi...

Ce plugin propose d’introduire facilement un filtre permettant de compter les clics effectués sur les sites référencés et les articles syndiqués. Il permet aussi de classer les sites en fonction du nombre de clics et/ou d’afficher ce nombre de clics au moyen d’une nouvelle balise : #TOTAL_CLICS

Téléchargement

Dernière version du plugin compte_clics

Fonctionnalités

Les fonctionnalités de ce plugin :

  • un filtre spécifique applicables à #ID_SYNDIC pour compter les clics vers un site référencé,
  • un filtre spécifique applicables à #ID_SYNDIC_ARTICLE pour compter les clics vers les articles d’un site syndiqué,
  • une balise #TOTAL_CLICS, utilisable dans les boucles pour connaitre le nombre de clics (attention au #CACHE),
  • un critère de tri {par clic_compteur} permettant de classer selon le nombre de clics,
  • une page de démonstration pouvant servir à vos squelettes,
  • une installation, désinstallation totalement automatique,
  • plugin internationalisé, disponible en français et en anglais d’autres langues sont possibles si vous fournissez le fichier de langues.

Historique

Ce plugin est inspiré d’une ancienne contribution " Compter les « clics » sur les liens " mais le code a été revu pour fonctionner sous la forme d’un plugin et donc très facile à utiliser. Il ne nécessite aucune connaissance, à part la modification d’un squelette...

Utilisation étape par étape

Installation et activation du plugin :

Comme tous les plugins de SPIP, vous installez compte_clics dans le répertoire plugins situé à la racine de votre site SPIP. Puis vous vous rendez dans l’espace privé et activez le plugin. Ce qui va modifier la base de données de SPIP pour ajouter les compteurs, sans toucher à l’existant.

Mise en œuvre du comptage :

Le comptage est disponible dès installation, à condition d’utiliser au moins l’un des filtres. Il vous faudra pour cela modifier un squelette et utiliser au moins l’un des deux filtres, soit dans une boucle SITES soit dans une boucle SYNDIC_ARTICLES. Un exemple de squelette est fourni avec le plugin à l’adresse «  »" class="spip_url spip_out auto" rel="nofollow external">http://www.votresite.com/spip.ph?page=clic_demo» , ce lien actualisé correctement est disponible dans la description du plugin sur votre site.

Le filtre |compteur_clic_site  :

Il s’applique à #ID_SYNDIC, donc dans une boucle SITES :

<a href="[(#ID_SYNDIC|compteur_clic_site)]">#NOM_SITE</a>

Il permet de générer un lien qui renvoie vers le site syndiqué après avoir incrémenté le compteur de clics.

Le filtre |compteur_clic_site_article

Il s’applique à #ID_SYNDIC_ARTICLES, donc dans une boucle SYNDIC_ARTICLES :
<a href="[(#ID_SYNDIC_ARTICLE|compteur_clic_site_article)]">#TITRE</a>

Il permet de compter aussi le nombre de clics spécifiques à cet article syndiqué. Un clic sur ce lien augmente aussi le compteur de clics du site référencé.

La nouvelle balise #TOTAL_CLICS :

Elle est disponible dans les boucles SITES et SYNDIC_ARTICLES (de façon distincte). Elle s’utilise comme les autres balises de SPIP et affiche le nombre de clics du site ou de l’article syndiqué. Attention à l’utilisation du #CACHE !

Installation / désinstallation

Ce plugin rajoute automatiquement plusieurs champs dans la base de données de votre site SPIP lors de son installation (vous n’avez aucune manipulation à faire).

En cas de désinstallation, si vous cliquez sur la boite « Spip-pack / Effacer tout », ces champs seront supprimés de la base de données, effaçant toutes traces de son installation.

Fonctionnalités envisagées - TODO


-  Une page d’administration disponible dans l’espace privé, permettant d’initialiser les compteurs, de suivre les clics,
-  Une historisation des totaux,
-  Un filtre unique,
-  Un filtrage pour les « clic-eurs fous »
-  Un filtre pour ne pas prendre en compte les clics de l’administrateur

Conçu avec SPIP 1.9.2 , il devrait fonctionner avec des versions plus anciennes supportant les plugins.

Discussion

8 discussions

  • Bonjour

    Une évolution de ce plugin pour compatibilité spip4 est-elle envisageable ?

    Répondre à ce message

  • Test avec SPIP2.09 : Après activation du plugin la page des plugins ne se recharge pas et le message Fatal error: Call to undefined function include_ecrire() in /srv/d_gandiaxe21/www/spip/plugins/compte_clics/base/compteclics_init.php on line 32 apparait à gauche. J’efface le répertoire du plugin pour retrouver un fonctionnement correct.

    Répondre à ce message

  • 2

    Dans le correctif proposé, pour le fichier compteclic.php il faut inverser les lignes echo et header, sinon cela provoque une erreur. Il ne doit rien s’afficher avant la fonction header sinon elle plante. Sinon le correctif fonctionne bien.

    • Bonjour

      Serait il possible d’avoir une version complète du plugins sous spip 2 ?

      Merci

    • re

      Je viens de réussir à mettre le plugins compatible mais il me reste un soucis http://herbier.beau-lieu-bec.org/spip.php?site1 si je clique sur le liens sous l’image je me retrouv avec une 404. Voici mon code :
      <a class="url" href="[(#ID_SYNDIC|compteur_clic_site)]" target="_blank">(#URL_SITE|couper{80})</a>[ - (#TOTAL_CLICS) <:clic_visites:>

      Ou es le soucis ?

      merci d’avance

    Répondre à ce message

  • 1

    Voici quelques modifs pour permettre de fonctionner sous spip 2.0.5.

    Il y a deux fichiers (le init dans base et l’autre dans action).
    Il faudrait faire d’autres modifs pour les versions ultérieures de spip car certaines fonctions semblent dépréciées mais fonctionnent toujours.

    Aussi pourquoi est-ce qu’avec l’echo de test en fin du fichier comteclics.php ça marche et que sans le Location ne se fait plus...

    • Patrick Chêne

      Bonjour, oui effectivement ce patche permet de démarrer le plugin sans planter spip2, mais il semble y avoir un problème pour générer les adresses URL des articles :
      -  #URL_SITE|compteur_clic_site
      -  #ID_SYNDIC|compteur_clic_site

      ne fonctionnent ni l’un ni l’autre (page blanche ou page du site dans le site de référence et non page du site syndiqué)

      Une petite aide ? merci d’avance.

    Répondre à ce message

  • 1

    Euh quand est-ce que ce plugin sera mis à jour avec SPIP2 ? Parce que ça ne fonctionne absolument pas O_o ni avec la page de demo ni en essayant de faire soit même. C’est embêtant.

    • JamesNicolas

      Oups j’ai oublié de me connecter afin de pouvoir lire la réponse ><

    Répondre à ce message

  • 8

    Je viens d’installer ce plugin sur un site local en SPIP 1.9.1, J’ai modifié mes squelettes comme expliquer dans la documentation, et pourtant lorsque je clique sur un lien j’ai le message Aucun site à cette adresse. qui apparait.

    De plus, quand je lance la page clic_demo, j’ai l’erreur suivante :

    Erreur(s) dans le squelette
    
    <BOUCLE_compteur_clics_site>(syndic)
    Erreur MySQL
    syndic.id_syndic, syndic.nom_site, syndic.url_site FROM spip_syndic AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3luZGljPC9jb2RlPg=="></span> WHERE (syndic.statut = "publie") ORDER BY clic_compteur DESC LIMIT 0,10 
    Unknown column 'clic_compteur' in 'order clause'
    </BOUCLE_compteur_clics_site>   ,

    Il semblerait que la base ne s’initiale pas comme il faut.

    Y a-t-il une solution simple (autre que de passer en SPIP 1.9.2) pour que cela fonctionne ?

    Merci d’avance pour votre aide.

    • Le plugin est il bien actif ?

      Il devrait fonctionner en 1.9.1 il n’y a pas de raison, effectivement il manque l’initialisation de la base. Avez vous un paramétrage particulier ou un hébergeur spécifique. Je dois peut-etre adapter le code pour que « ca marche » partout.... :-)

    • En attendant vos éventuels commentaires, le plugin passe en version 0.6 avec quelques vérifications complémentaires pour prendre en compte votre remarque. Il gère un peu mieux les erreurs (mais il y a encore des possibilités).

      Si la 0.6 donne les mêmes erreurs est-il possible d’obtenir le résultat (avec phpmyadmin par ex) d’un DESC spip_syndic ; ?

    • Alors, j’ai téléchargé la version 0.6 et installé sur mon site local (WAMP5 + MYSQL 5) en SPIP 1.9.1. Et cela ne marche pas, car le fichier compteclics_init.php n’est pas appelé.

      La fonction <install>base/compteclics_init.php</install> n’est pas interprétée par SPIP 1.9.1. Et si je lance cette page à partir de la ligne URL rien ne se passe.

      Il faudrait donc faire un appel à la fonction d’installation directement via url. Peut-être ajouté une ligne dans la documentation contenu dans le fichier plugin.xml.

    • Bon après avoir manuellement entré les 3 nouveaux champs dans la table spip_syndic et 1 nouveau champs dans spip_syndic_articles, le plugins ne me met plus d’erreur lorsque je charge la page de démo.

      J’ai un autre soucis, c’est que la balise #TOTAL_CLICS n’a pas l’ai de fonctionner. Et pourtant les champs sont bien remplis à chaque clic sur un site ou un article.

      Est-ce grave docteur ?

      Le défaut est visible à cette adresse Demo compteur_clic.

      Merci d’avance pour ton aide.

    • J’ai trouvé ce qui n’allait pas.

      Il fallait implémenter la variable $o = spip_fetch_array($r); ce qui n’était pas le cas dans le fichier que j’avais reçu.

      Ca marche et c’est super !!!!

    • Où as tu jouté / posé cette modification ?

    • J’ai modifié le fichier balise/total_clics.php sur mon serveur.
      Je n’ai pas modifié le fichier sur la zone car je n’ai malheureusement pas trop l’habitude d’utiliser les outils de post sur celle-ci.

      Promis je m’y met en 2008.

    • Ouf !

      Mon problème :
      -  L’installation s’est bien passée, j’ai mis à jour le squelette, cliqué sur un lien... tout est OK ;
      -  L’incrémentation fonctionne (vu dans la base de données, via phpMyAdmin) ;
      -  Mais rien ne s’affiche sur la page exemple (clic_demo) : les sites et les articles syndiqués apparaissent, mais pas le nombre de clics...

      La solution :
      -  Comme le disait Xébiaut un peu plus haut : dans le fichier total_clics.php (sous-répertoire balise du répertoire compte_clics, dans /plugins), ligne 42, il faut remplacer « spip_fetch_array($r) ; » par « $o = spip_fetch_array($r) ; »

      Je ne suis pas expert PHP/MySQL, mais je pense qu’il s’agit d’une coquille, puisque ligne suivante on indique de retourner « $o[’clic_compteur’] ; », or $o n’est définie nulle part sans cette modif’.

      Si c’est bien le cas, ça explique peut-être le problème de « dd » ici : http://www.spip-contrib.net/Compter-les-clics#forum401494

      Si cette modif’ n’est pas indispensable et que le problème ne se pose que dans certains cas (?!), j’espère au moins que ce post permettra aux prochains heureux utilisateurs de ce plug-in qui auront le même problème de moins chercher que moi :).
      (NB : test en local, EasyPHP 2.0b1 (PHP 5.2.0 - MySQL 5.0.27)

      Pour finir, merci à chryjs pour ce plug-in :)

    Répondre à ce message

  • 3

    Petite question comment peut-on faire pour que les site appelé au sein d’un article par le biais du raccourci [->siteXX] puisse implémenter le compteur de clic ?

    • Aujourd’hui tel quel ce n’est pas implémenté dans ce plugin , mais je trouverai cela très intéressant voire fort judicieux.
      Vous sentez vous prêt à ajouter cette fonctionnalité ? :-)

    • Euh, moi, non. Mais y’a une astuce simple :

      [Mon lien->http://www.monsite.org/spip.php?action=compteclics&id_syndic=xx]

      Et merci, top plugin qui roule bien ! (cf : http://www.desmareesmontantes.net/spip.php?rubrique5

    • Ceci est une solution mais elle n’est pas très applicable avec des rédacteur qui n’y connaissent rien à l’informatique.

      Je ne désespère pas de trouver la solution même si pour l’instant j’ai du mettre en suspend mes recherches car je suis occupé autre part.

    Répondre à ce message

  • 4

    Bonjour,

    J’essaie de faire fonctionner ce plugin mais j’ai un problème :

    je voudrais compter les clics sur des sites des auteurs.Par exemple j’ai une boucle :

    <BOUCLE_AUTEURS(AUTEURS){id_auteur}>
    <a href="[(#URL_SITE)]" target="_blank" alt="voir le site"><:voir_en_ligne:>(#NOM_SITE)</a>
    </BOUCLE_AUTEURS>

    j’ai essayé de remplacer « [(#URL_SITE)] » par « (#ID_SYNDIC »

    mais ca ne marche pas. Comment compter les clics dans ce cas ?

    Sur la page /spip.php ?page=clic_demo je vois bien les sites syndiqués mais je ne vois aucun nombre de clic.
    Pourtant les liens du site public sont sous la forme /spip.php?action=compteclics&id_syndic=4

    donc ca devrait marcher ??
    merci
    dd

      1. Tout d’abord comme indiqué dans la doc : c’est sur SYNDIC_ARTICLES qu’il faut faire la boucle.
      2. le filtre |compteur_clic_site sert uniquement à modifier le lien vers le site syndiqué pour compter les clics. Et c’est tout.
      3. C’est la balise #TOTAL_CLICS qui permet d’afficher le nombre de clics (au sein de la boucle)

      Vous avez un exemple fourni avec le plugin. Je vous incite vivement à vous en inspirer pour l’adapter à votre propre squelette.

    • Ah merci, je n’ai pas du tout comprendre car je ne veux pas compter les clics sur les articles syndiqués mais seulement les clics sur les sites syndiqués.

      A propos de l’exemple, si on va à l’URL monsite/spip.php ?page=clic_demo (sans avoir modifié ce fichier exemple) ne devrait-on pas voir le nombre de clics à coté de chaque site syndiqué ?

      Si ce n’est pas sur cette page où peut-on voir le nombre de clics ?

      merci
      dd

    • Sur la page de démonstration devrait être affiché le nombre de clics à coté de chaque site / document affichés dans cette même page à partir du moment où :

      • il y a effectivement des sites / articles syndiqués affichés
      • on a effectivement cliqué au moins une fois dessus (pour que le compteur ait enregistré au moins un clic).
      • on rafraîchit l’affichage de la page (il s’agit d’une page statique).

      Vous pouvez voir ce nombre de clics sur vos propre pages (avec vos critères et votre présentation) en vous inspirant :

      • de la source de la page d’exemple
      • de la documentation
    • D’ailleurs pour voir ce que l’adaptation d’une telle page peut donner vous pouvez vous rendre sur le site de Xebiaut cliquez sur l’un des sites et revenez en arrière vous verrez le changement pour le compteur concerné.

      Merci Xavier :)

    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