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

  • 4

    Bonjour

    Un bogue actuellement :

     Fatal error: Call to undefined function generer_generer_url() in analyclick/balise/anaclic_balise.php on line 75
    • Corrigé en version 0.3.1

    • Aloysus

      Bonjour,

      J’ai chargé pour la première fois Analyclick hier et je suis mal tombé, car j’avais le bug.
      J’ai chargé à nouveau aujourd’hui et j’ai une chose curieuse.

      Quand je mets dans l’article

      Téléchargez l’extrait : doc100|center|compte
      ou
      Téléchargez l’extrait : doc98|center|compte=1

      Le compteur ne fonctionne pas

      Si je mets :

      doc100|bouton|center|couleur=orange|compteur=1

      doc98|bouton|center|couleur=orange|compteur=1"

      Le bouton n’apparaît pas, mais le compteur fonctionne

      Merci de votre aide

    • Aloysus

      En fait le bouton apparaît bien, c’est simplement que je ne l’avais pas testé sur l’espace public.
      Par contre
      « doc100|center|compte »
      ne change pas le compteur (j’ai bien configurer l’intervalle des clicks à 5 secondes)
      alors que cela fonctionne bien avec le bouton

    • Je pense que la syntaxe correcte est <doc100|center|compteur> et non compte.

    Répondre à ce message

  • Jean-Paul

    Suite à la dernière mise à jour du plugin, mon site en 3.1.3 plante
    analyclick produit une erreur php
    balise/anaclic_balise.php en ligne 75 :
    $code = generer_generer_url(’document’, $p) ;
    j’ai remplacé ’document’ par ’id_document’ mais ça ne change rien, l’erreur persiste.
    Bien pratique pourtant ce plugin. Quelle solution svp ? Merci.

    Répondre à ce message

  • 1
    Christophe Noisette

    salut
    j’utilise ce plugin et les boutons développés.
    J’ai par exemple sur la page : http://www.infogm.org/spip.php?article5501, un bouton pour télécharger le mini-guide.
    J’ai dans le corps du TEXTE utilisé la formule suivante :

    <doc1713|bouton|center|couleur=vert|compteur>.

    Je souhaiterais que certains docs s’ouvrent dans une nouvelle fenêtre. J’ai donc tester d’utiliser le filtre |liens_ouvrants.
    Mais cela n’a pas été très convaincant.
    Avez-vous une idée de comment je pourrais faire pour avoir un tel filtre sur certains de nos téléchargements ?
    Cordialement
    Christophe Noisette, Inf’OGM

    • Bonjour,

      Vous pouvez reprendre le modèle doc_bouton.html en le recopiant dans votre dossier squelette/modeles.
      Il suffit ensuite de changer les lignes 21 et 25 :

      <a class="spip" href="#GET{url}">

      en

      <a class="spip" href="#GET{url}" target="_blank">

      @+

    Répondre à ce message

  • Bonjour,

    Est-ce que ce plugin fonctionne aussi sous la dernière version de WP 4.5.2 ?

    Merci

    Répondre à ce message

  • Si vous voulez connaitre le nombre de téléchargement pour les documents attachés à vos articles directement dans la partie privée de votre site, il suffit de dupliquer le fichier ’document_desc.html’ qui se trouve dans « \plugins-dist\medias\modeles » dans votre dossier ’/squelettes/modeles’ et y ajouter cette boucle à la ligne 17...

    		<BOUCLE_compterdocs(DOC_COMPTEURS){id_document}>
    		[Le fichier a été téléchargé : <span style="color:red;">(#TELECHARGEMENT)</span> fois]
    		</BOUCLE_compterdocs>

    Répondre à ce message

  • 2

    Bonjour,

    Pourrait-on utiliser ce plugin pour compter les clics sur des liens ?

    Exemple d’utilisation :
    – Des images sont jointes à un article et chaque image comporte un lien interne ou externe au site.
    – On utilise un plugin de diaporama (slick slider par exemple) pour créer un diaporama à partir des images du portfolio de l’article.
    – On compte les clics de chaque image pour savoir entre autres quelle est l’image qui a suscité le plus d’intérêt.

    Une idée de si c’est possible et une éventuelle piste ?

    Merci d’avance

    • Bonjour,
      Un dev. avait été commencé dans ce sens il y a 3 ans mais n’a pas abouti...
      Aujourd’hui le plugin ne compte que les téléchargements...
      @+

    • Bonjour,
      Un dev. avait été commencé dans ce sens il y a 3 ans mais n’a pas abouti...
      Aujourd’hui le plugin ne compte que les téléchargements...
      @+

      Merci ce ta réponse

      Que manquait-il pour que cela n’ait pas abouti ?

      Merci d’avance

    Répondre à ce message

  • 1

    salut
    Ce plugin est interessant, mais
    est il possible d’avoir un compteur qui donne le nombre de pdf télechargés dans un article.

    j’ai un site avec où des articles proposent des téléchargements de pdf dans beaucoup d’endroits
    d’articles je veux dire.
    donc c’est fastidieux de mettre <docxx|compteur> par pdf
    mais par article ce serait bien :-)

    • Bonjour,
      Pour cela, il faut écrire un petit squelette (ou un modèle) qui compte le nombre de téléchargement pour chaque documents d’un article. Il faut récupérer les document d’un article et ajouter le nombre de chargement (#TELECHARGEMENT) par document.
      Utilisez le filtre plus pour cela.

      Quelque chose comme cela devrait marcher (non testé)

      [(#SET{count,0})]
      <BOUCLE_d(DOCUMENTS){id_article}{extension=pdf}>
          <BOUCLE_stat(DOC_COMPTEURS){id_document}>
             [(#SET{count,[(#GET{count}|plus{#TELECHARGEMENT})]})]
          </BOUCLE_stat>
      </BOUCLE_d>
      Nombre de téléchargement pour l'article : [(#GET{count})]

      @+

    Répondre à ce message

  • 2
    spipfactory.com

    Bonsoir,

    super plug est fonctionnel en 3.1

    par contre <docxx|compteur> est a mettre sur chaque document qu’on souhaite suivre en statistique ?

    parce-que la j’en ai 4000 donc une astuce serait le bienvenue

    @micalement

    • Bonjour,
      Il suffit de recopier 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é plutôt que celui de SPIP... et qui comptera vos documents.
      @+

    • spipfactory.com

      Merci

      mes petit doigt apprécie déjà ...

    Répondre à ce message

  • 24

    Bonjour, prévoyez-vous une mise-à-jour pour spip 3.1 ? Merci

    • Cela doit être possible (à tester).

      A priori il suffit de modifier plugin.xml pour autoriser SPIP v3.1 (actuellement seulement jusqu’à 3.0.99), ligne 41 :

      <necessite id="SPIP" version="[2.1.0;3.1.99]" ></necessite>

      Il manque également une fonction dans action/telecharger.php : ligne 46 il faut remplacer les deux lignes par :

      $generer_url_document = charger_fonction("generer_url_document","urls");
      $url = $generer_url_document($id);

      Je ne suis pas allé plus loin. Dites-moi si de votre côté cela marche pour vous.

      @+

    • Bonjour,

      J’ai pas les graphique sur la version 3.1 de spip.
      Une idée ?

    • Pas d’idée comme cela, il faudrait investiguer (peut-être un fonction qui a sauté ou changé de fichier).
      Je vais voir si j’ai un peu de temps pendant les vacances de Noel (pas sûr)...

      Est-ce que les comptages fonctionnent ?

      @+

    • J’ai pas tester plus et pas regarder le code encore.
      Si je peux commit oui je vais plus loin dans le trunk

    • Salut,

      As tu peu regarder ?
      Je ne comprend pas comment est coder le plugins donc je vois pas ou chercher encore.

    • Bonjour,
      Cela m’intéresse également. J’utilise ce plugin et souhaite passer à la version 3.1 de SPIP.
      Merci pour votre travail.

    • spipfactory.com

      nous avons changé les bornes de compat en compatibilite=« [3.0.0 ;3.1.*] »

      par contre on comprend pas
      l manque également une fonction dans action/telecharger.php : ligne 46 il faut remplacer les deux lignes par

       $generer_url_document = charger_fonction("generer_url_document","urls");
      $url = $generer_url_document($id);

      ou insérer aprés ou avant L46

      L44// ip du visiteur
      L45 $ip = $_SERVER["REMOTE_ADDR"];
      L46 // Suprime les anciens clics
      L47 $delai = (isset($GLOBALS['meta']['anaclic_delai']) ? $GLOBALS['meta']['anaclic_delai'] : 3600 );
      L48 if ($delai >= 0)
      L49 { $time = time() -$delai;
      L50 sql_delete ("spip_doc_compteurs_fix", "time < $time");
      }
    • spipfactory as tu les graphique déjà ?

    • spipfactory.com

      non je n’ai pas les graphiques

    • C’est étonnant, chez moi, je viens de passer de la version spip 3.0 à spip 3.1 et le plugin fonctionne sans problème. Les graphiques apparaissent ! J’ai juste modifié les bornes de compatibilité.

    • Bonjour,

      Il semble que la fonction « generer_url_document » utilisée dans le fichier action/telecharger.php (http://zone.spip.org/trac/spip-zone/browser/_plugins_/analyclick/branches/V0.1/action/telecharger.php) du plugin ne soit plus au même endroit avec SPIP 3.1.
      Pour y accéder il faut remplacer (ligne 46-47) :

      include_spip('urls/standard');
      $url = generer_url_document($id, 'document'); 

      par

      $generer_url_document = charger_fonction("generer_url_document","urls");
      $url = $generer_url_document($id);

      Cela doit permettre de charger les fichiers et d’incrémenter le compteur (à vérifier dans la base).
      Je n’ai pas testé plus loin… Je ne sais pas si cela reste compatible avec les autres versions de SPIP.
      Il se peut que le reste se passe bien et que les graphiques fonctionnent...

      @+

    • ok donc chez moi c’est ligne 41-42
      du coup j’ai fait ceci

       		//include_spip('urls/standard');
      		//$url = generer_url_document($id, 'document');
      		$generer_url_document = charger_fonction("generer_url_document","urls");
              $url = $generer_url_document($id);

      je rappel que analyclic n’été pas installé avant , je viens de l’installer sur la 3.1, c’est peu être la différence avec Eric
      je soupçonne une non installation de la table « Le plugin installe une table DOC_COMPTEURS » car je ne voie rien en bdd

    • J’ai bien les tables doc_compteurs et doc_compteurs_fix présentes.

    • Jaen Marc, tu as un screen avec une 3.1 up en svn et des graphique ?

    • eric

      envoie le fichier pour que je l’essaye

    • Quel fichier veux-tu au juste spipfactory ?

    • @Pierre
      Je n’ai pas de 3.1 installée et comme je ne suis pas chez moi, je n’ai pas de possibilité de tester tout de suite...
      désolé

    • eric tu dit

      C’est étonnant, chez moi, je viens de passer de la version spip 3.0 à spip 3.1 et le plugin fonctionne sans problème. Les graphiques apparaissent ! J’ai juste modifié les bornes de compatibilité.

      ors je n’ai pas les graphiques donc si tu pouvez donner un lien pour récupérer ton plugin qui fonctionne
      pas le lien de la zone ni contrib j’ai essayé et pas de graphique

    • Ok spipfactory...

      Voici le lien avec le fichier analycklick.zip que j’ai adapté pour mon site....

      https://drive.google.com/file/d/0BzrfUH9tZ_4UOVppZFRHVVdVdTg/view?usp=sharing

      J’espère que cela fonctionnera aussi pour toi.

    • Bonjour,

      J’ai pris quelques minutes à regarder ce qui n’allait pas.
      La v3.1 de SPIP utilise une nouvelle version de la librairie jQuery.flot pour l’affichage des statistiques.
      J’ai mis à jour le plugin pour que l’affichage marche (il manquait le module jquery.flot.time pour gérer les dates => erreur js dans la console au chargement).
      La nouvelle version devrait marcher (gestion correcte des urls + affichage des stats), à télécharger sur la zone d’ici une petite heure...

      B-) @+

    • ok je test ce soir et fait un retour

    • J’ai posté un lien mais il est en attente de validation par le modérateur de ce forum ??....

    • reste un soucis, un fond jaune et pas comme les autre page de stats ?

    • spipfactory.com

      ok jean marc ça fonctionne
      dsl éric mais du coup je test pas
      pierre oui mais bon le s gouts et les couleurs

      donc pour moi ça part en prod sur la mutu

    Répondre à ce message

  • 2

    Bonjour,
    D’abord, merci pour votre plugin.

    Est il possible de compter les clics des documents à télécharger liés à l’article , et non des documents présents dans les articles ?
    Si oui, comment faire ?

    J’essaie d’inclure une couleur de bouton, ça a l’air de fonctionner, mais j’ai systématiquement l’image « information » du plugin « Couteau Suisse » qui se superpose... voir fichier joint

    • Bonjour,

      Pour ce qui est du bouton, je pense qu’on peut modifier l’affichage via le css en masquant le comportement du couteau suisse (à moins que ce la soit paramétrable dedans).

      Pour le calcul des clics sur les documents d’un article, il faudra faire une boucle et une somme sur les documents liés à l’article.

      @+

    • Bonjour,
      Etant webmaster d’un site d’établissement de Créteil, je n’ai jamais accès au FTP. Je dois envoyer un email à la gestionnaire , qui elle, modifie les fichiers en FTP... donc tant pis... je vais faire simple. en plus, je ne m’y connais ni en boucle, ni en CSS.... Je suis un petit débutant... mais merci en tout cas de votre réponse super rapide !

    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