Plugin Analyclick - un compteur de téléchargements

Ce plugin permet de compter les téléchargements de documents sur son site. Il introduit une balise #URL_DOC_COMPTEUR qui va compter chaque clic fait sur ce lien. Il affiche une page de statistique.

Avertissement

Le passage en SPIP v.3 est en cours merci de me signaler les bugs que vous trouverez.

Installation

Le plugin s’installe comme tout autre plugin, téléchargez le fichier ZIP et placer son contenu dans votre répertoire « plugins/ ».

Il va installer un nouveau menu « Téléchargements » pour permettre de suivre les statistique de téléchargement dans le menu statistique, si celles-ci sont activées, ou dans le menu édition dans le cas contraire.
En SPIP 3, le plugin ajoute un onglet sur la page de suivi des statistique (il est donc nécessaire d’activer les statistiques du site).

Pour configurer le plugin, vous devez vous rendre sur la page des téléchargements et cliquer sur l’icône de configuration dans le bloc de raccourcis.

  • Vous pouvez configurer le délai entre deux clics (en seconde). Cela évite qu’un même utilisateur cliquant sur le lien pendant ce délai ne soit compté plusieurs fois. Une valeur négative correspond à un temps infini et ne va compter qu’un seul téléchargement par adresse IP.
  • Vous pouvez sécuriser les URLs des liens de téléchargement. Comme ceux-ci sont de la forme : MON_SITE/spip.php?action=telecharger&arg=35&type=image.jpeg, il est possible à un utilisateur peu délicat de chercher à charger des document en modifiant l’identifiant du document passé dans l’URL. La sécurisation ajout une clé dépendant du document et de l’utilisateur pour éviter cela.

Principe

Le principe du plugin est de permettre de suivre les téléchargements de certains documents (une notice, un programme ou un document particulier...). Il faut pour cela utiliser le raccourci ou l’url fourni par le plugin.

Utilisation

Le plugin déclare :
-  un raccourcis <docxx|compteur> qui s’utilise dans les articles comme le raccourci <docxx> et qui va compter les téléchargements.
-  une balise #URL_DOC_COMPTEUR que vous pouvez utiliser dans vos squelettes qui renvoie un lien vers le document et qui comptera les clics faits sur ce lien.
-  une balise #COMPTEUR_TELECHARGEMENT qui permet de connaitre le nombre de téléchargements dans une boucle document.

<BOUCLE_doc(DOCUMENTS)>
Le document #ID_DOCUMENT a été téléchargé #COMPTEUR_TELECHARGEMENT fois<br/>
</BOUCLE_doc>

Dans l’espace privé

Le plugin utilise le module de statistique de SPIP pour afficher les statistiques de téléchargement. Vous y accédez depuis le menu Statistique, si celles-ci sont actives ou le menu Édition dans le cas contraire.
En SPIP 3, les statistiques sont accessibles dans le menu Statistiques, onglet Téléchargements.

Calcul de statistique

Le plugin installe une table DOC_COMPTEURS qui stocke les téléchargements journaliers de document.

DOC_COMPTEURS
id_document date telechargement

On peut l’utiliser afin de calculer des statistiques sur les téléchargements, en effet, la balise #TELECHARGEMENT va faire la somme sur la période donnée.

Ainsi, la boucle suivante donne le nombre de téléchargements par document pour 2011.

<BOUCLE_stat(DOC_COMPTEURS){date >= 2011-01-01}{date < 2012-01-01}>
   #ID_DOCUMENT : #TELECHARGEMENT<br />
</BOUCLE_stat>

et pour le top10 des téléchargements de la semaine en cours (cela peut être utile) :

[(#SET{date,[(#EVAL{ date("Y-m-d",strtotime("now")-7*24*3600); })]})]
<BOUCLE_stat(DOC_COMPTEURS){date>#GET{date}}{!par telechargement}{0,10}>
   <BOUCLE_doc(DOCUMENTS){id_document}>
      [(#TITRE|sinon{#ID_DOCUMENT})]
   </BOUCLE_doc>
   : #TELECHARGEMENT<br/>
</BOUCLE_stat>

Le critère {plat} supprime ce comportement et permet d’accéder aux téléchargements au jour le jour.

Bonus

En bonus, le plugin propose un gros bouton de téléchargement au travers du modèle doc_bouton.
Il prend les paramètres compteur si on veut compter les téléchargements et un paramètre d’alignement (left, center, right). Le paramètre couleur permet de changer la couleur du bouton (par défaut, en orange). Il peut prendre les valeurs orange, mauve ou bleu.

<docXX|bouton|center|couleur=orange|compteur=1>

En fait, le paramètre couleur déclare le bouton dans une classe .doc_bouton_couleur. Vous pouvez donc ajouter des boutons en déclarant la classe correspondante dans votre css (voir les exemples dans le css du plugin et le dossier /img).

Discussion

53 discussions

  • 3
    Philippe

    Bonjour,

    Merci pour cet excellent plugin.

    J’utilise également le plugin Vidéo Accessible à l’aide duquel les vidéos sont incluses dans les articles avec les balises ou pour une visualisation en ligne. Les téléchargements des vidéos ne sont alors pas comptabilisés.

    Les téléchargements sont bien pris en compte lorsque la vidéo est incluse dans l’article avec mais alors cette dernière n’est pas lancée dans le lecteur en ligne.

    Est-il possible de comptabiliser le téléchargement des vidéos par les balises ou  ?

    Merci d’avance.

    • Philippe

      oupsss... Je répète la question...

      J’utilise également le plugin Vidéo Accessible à l’aide duquel les vidéos sont incluses dans les articles avec les balises embXX ou videoXX pour une visualisation en ligne. Les téléchargements des vidéos ne sont alors pas comptabilisés.

      En revanche, les téléchargements sont bien pris en compte lorsque la vidéo est incluse dans l’article avec une balise docXX mais alors la vidéo n’est pas lancée dans le lecteur en ligne.

      Est-il possible de comptabiliser le téléchargement des vidéos par les balises emb ou video ?

    • Bonjour,

      Désolé, le streaming n’est pas un téléchargement... le fait de visionner la vidéo n’est pas vu comme un téléchargement. Donc si la personne regarde la vidéo il n’y a pas de décompte par contre, s’il la télécharge (balise doc_compteur) il y a décompte...
      Vous avez cependant des informations dans SPIP sur les statistiques de visualisation de la page contenant la vidéo...

      @+

    • Philippe

      Dommage ;-)

      Merci pour cette réponse

    Répondre à ce message

  • super merci pour ce plugin

    Répondre à ce message

  • 1

    Bonjour,

    Merci pour ce plugin qui fonctionne bien.

    Sur mon site je propose des petits programmes et lors de mise à jour, je perds le nombre de téléchargements.
    Pourrait-on avoir la possibilité de changer ce nombre (dans l’espace privé) ?
    merci d’avance.

    • Bonjour,

      Ce serais un peu tricher... De plus les statistiques se font par jour, ce qui permet d’avoir une évolution qu’on va perdre...

      Par contre, vous pouvez calculer des statistiques par article.
      L’exemple ci dessous permet de calculer le nombre de téléchargement pour un article (le 3). Il fait la somme (count) des téléchargements (des fichier .zip de l’article) :

      #SET{count,0}
      <BOUCLE_doc(DOCUMENTS){id_article=3}{extension=zip}>
        <BOUCLE_stat(DOC_COMPTEURS){id_document}>
           #SET{count,#GET{count}|plus{#TELECHARGEMENT}}
        </BOUCLE_stat>
      </BOUCLE_doc>
      Nombre de téléchargements : #GET{count}

      Vous pouvez l’insérer directement dans votre squelette d’article pour un affichage dans l’espace public...

      @+

    Répondre à ce message

  • 1

    Bonjour,

    Le plugin fonctionne très correctement après test sur 2 sites différents.
    J’ai vu qu’il y avait possibilité de récupérer un fichier .csv faisant le décompte des téléchargements par documents. Il indique l’id du doc, ce qui n’est pas forcément très parlant. Pourrait on avoir en plus le titre du document dans ce fichier .csv ?

    Merci en tout cas,
    Bye

    • Bonjour,

      Le .csv fait le décompte des documents par jour, ce qui risque de faire beaucoup au bout d’un moment. Aussi, je pense qu’il vaut mieux n’afficher que l’identifiant et avoir une table de correspondance... cela allège les fichiers à transférer.
      Sinon, si vous voulez modifier les squelettes situés dans le répertoire \plugins\analyclick\prive\transmettre du plugin.

      @+

    Répondre à ce message

  • 1

    Bonjour,
    Super, ce plugin, qui devrait être intégré dans SPIP.
    Mais j’ai un problème de compatibilité avec les plugins de type galerie (mediabox, thinkbox) : aussitôt que j’active un de ces plugin, quand on clique sur un document, on se retrouve soit avec un écran noir, soit avec une avalanche de caractères en lieu et place de l’image !
    A noter qu’avant d’installer le plugin Analyclick, mediabox fonctionnait bien.
    Sur un site, j’ai réussi à désinstaller Analyclick, et mediabox fonctionne à nouveau. Sur un autre site, je ne suis pas arriver à retrouver le fonctionnement correct, malgré déinstallation, suppression, effacement du plugin, vidange de cache...

    • Bonjour,

      Effectivement il y a une incompatibilité avec mediabox qui teste le type de l’image sur l’url du lien et non sur le mimetype (qui lui est juste). Or le lien n’a pas la forme d’une image puisqu’il renvoie sur une page php qui redirige vers le document une fois le compteur incrémenté. Du coup médiabox affiche l’image (binaire) sous forme de page html (ascii), d’où une avalanche de caractères abscons...

      J’ai choisi de gruger mediabox en ajoutant le mime type dans le lien, sous la forme

      #URL_DOC_COMPTEUR&type=[(#MIME_TYPE|replace{/,.})]

      Ainsi :
      spip.php?action=telecharger&arg=2
      devient :
      spip.php?action=telecharger&arg=2&type=image.jpeg
      et mediabox croit qu’on charge une image (juste parce qu’il y a un « .jpeg » dans le lien !)...

      Chez moi, cela marche avec médiabox pour le modèle doc_compteur...
      J’espère que cela corrigera votre problème...
      Pour le bug après désactivation, pensez également à vider le cache de votre navigateur.

      @+

    Répondre à ce message

  • 2

    Bonjour

    Merci pour ce plugin...

    Une curiosité le Bouton <docXX|bouton|center|couleur=orange|compteur=1> n’apparait pas toujours suivant le squelette...

    Ici ca marche

    Ici ca ne marche pas

    Ca n’est pas le même squelette qui est utilisé..pas le même serveur non plus

    • Bonjour,

      Sur le deuxième site, le css n’est pas chargé... ou il semble que quelque chose se soit mal passé lors du transfert de celui-ci.
      Remplacez le fichier plugins/auto/analyclick/anaclic.css du deuxième par celui du premier...

      @+

    • Merci..oui problème résolu

    Répondre à ce message

  • 2

    Dans la partie privée, dans la colonne de gauche des statistiques de téléchargements, « Afficher les statistiques de téléchargement sur les 30 derniers jours : » le nombre de visites n’apparaît pas dans l’infobulle. La popularité par article apparaît mais pas le nombre de visites ??

    Je signale juste au cas où je ne serais pas le seul.

    Merci pour l’apport de ce plugin !

    • Bonjour,

      En fait, il n’y a qu’un compteur de visite et pas de notion de popularité pour les téléchargements. Le plugin utilisant la fonctionnalité standard de SPIP pour afficher les stats des visites, les informations dans l’info bulle sont donc mal formatées, je verrai ce que je peux faire pour corriger cela...

      @+

    • Merci Jean-Marc

    Répondre à ce message

  • 2

    Bonjour,

    Merci pour ce plugin, très attendu et qui fonctionne bien !

    Pour ma part j’utilise le plugin « bandeau » et le menu des statistiques documents n’apparait pas dedans donc il faut taper l’url à la main : ecrire/ ?exec=anaclic_config pour y accéder.

    Il me semble que dans plugin.xml au lieu de

    <bouton id="statistiques_anaclic_nav" parent='naviguer'>
    il faut indiquer parent='bando_reactions'>

    aussi l’install avec STEP ne fonctionne pas (les tables ne sont pas créées) donc il faut utiliser l’install « standard » des plugins.

    dd

    Répondre à ce message

  • 3

    Bonjour,

    Excellent, premiers essais concluants.

    Avec vous une astuce pour convertir les centaines de balises à transformer de <docxx> en <docxx|compteur> sans le faire une par une à la main ?

    Cordialement

    FDG

    • Bonjour,

      En recopiant le fichier du plugin modeles/doc_compteur.html dans votre dossier sequelette/modeles et en le renommant doc.html, ce sera celui-ci qui sera utilisé... et qui comptera vos documents.

      @+

    • Bonjour,

      J’utilise le squelette en plugin SARKA et dans /plugins/SARKA/modeles/ le document doc. html contient moult lignes de code.

      Que proposes-tu ?, quelle fusion possible sans perte de fonctionnalité ?

      Cordialement

      FDG

    • Bonjour,

      Je ne sais pas trop ce que fait SARKA, mais tu peux recopier le fichier doc de SARKA et remplacer la balise #URL_DOCUMENT par #URL_DOC_COMPTEUR dedans...

      @+

    Répondre à ce message

  • 1
    Jésika

    Bonjours les amis j’ai un gros probleme. Ma bar de d’outils dans ckeditor-spip-plugin apparait comme sa.

    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