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 v3, 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 v.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.

  1. <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

52 discussions

  • Bonjour,
    le plugin compte les clics sur un document à télécharger. Parfait. Est-ce qu’il serait possible d’envisager une variante/option qui permettrait de compter également les clics effectués sur un texte (ou une image) servant de lien redirigeant vers un site externe ?

    Reply to this message

  • 6

    Bonjour Viglino Jean-Marc,

    Pensez-vous que ce plugin sera compatible avec la version spip 3.3 ?
    Spip m’indique que le plugin est bien téléchargé mais je ne le retrouve nulle-part ni dans l’administration des plugins, ni dans le menu configuration.

    Merci pour ta contribution à la communauté Spip.

    Eric

    • Bonjour,
      J’utilise également ce plugin pour mon association Edition999 et il ne fonctionne pas sur la version 3.3 dev. Pensez-vous que la mise à jour sera possible.
      Merci de votre aide.
      Jean-Michel

    • Désolé, pas de mise à jour prévue...

    • Mince. Et vous pensez que les modifications à réaliser demanderaient de grosses connaissances ? en php ? ou bien est-ce tout le mécanisme qui est obsolète avec le passage en 3.3? Merci. Jean-Michel

    • @Jean-Michel Edition999

      Bonjour,
      J’utilise également ce plugin pour mon association Edition999 et il ne fonctionne pas sur la version 3.3 dev. Pensez-vous que la mise à jour sera possible.
      Merci de votre aide.
      Jean-Michel

      Avez-vous essayé le plugin en changeant les bornes comme suggéré par l’auteur Viglino Jean-Marc dans son dernier fil ?

    • Bonjour @Kingrise
      Oui j’ai essayé et cela n’a pas fonctionné.
      Le plugin n’apparaissait pas dans la liste des plugin à activer.
      Comme j’avais monté une version de recette 3,3 pour tester un peu l’avenir, je suis revenu à la version actuelle en me disant que comme la 3,3 n’arrivera qu’en fin d’année, je verrai cet été si j’ai un peu de temps pour essayer de bidouiller quelque chose.
      Et autrement je suis mal, car ce compteur comptabilise depuis des années le nombre de téléchargements effectués par les lecteurs des livres gratuits proposés par les auteurs gracieusement.
      Bonne journée.

    Reply to this message

  • 2
    obiwanriko

    Bonjour
    Merci pour ce plugin
    Je l’utilise mais au bout d’un certain temps un étrange bug apparaît :
    Les usagers non enregistré dans l’admin ont le message suivant “Accès interdit” avec un bouton leur demandant de se connecter : ce message n’apparait pas lorsque l’on ai connectée en admin...

    Dans mes articles j’utilise le code suivant :

    Normal ou pas ???

    • J’ai aussi constaté ce problème de mon côté.

      Ça ne se produit que lorsqu’on active la sécurisation des URLs, si on n’a pas de documents sensibles sur le site, on peut contourner le problème en désactivant cette option.

      Le problème est que les URL sécurisées de SPIP ne sont valables que pour un auteur donné, les autres auteurs mangent des « accès interdit ». Et comme ces URLs sont parfois mises en cache, le site affiche des liens qui ne fonctionnent que pour l’auteur qui a déclenché la création du cache.

      Je peux reproduire le problème avec les étapes suivantes :

      1. On visite la page qui affiche le lien pour la première fois, logué en tant qu’auteur1. L’url sécurisée est mise en cache
      2. On se connecte sur le site avec un autre auteur, puis on va sur la page en question.
      3. Le site sert alors le même lien que pour l’auteur1 en allant chercher dans le cache, et on n’est pas autorisé à y accéder.
    • Bonjour,
      Désolé de reprendre ce vieux message, mais j’ai également ce problème, avez-vous réussi à le corriger ou à trouver un contournement ?
      Merci de votre retour
      Jean-Michel

    Reply to this message

  • Bonjour,
    J’arrive pas à faire un top de l’article ayant cumulé le plus de documents téléchargés sur les 7 derniers jours ( chaque article a un Pdf - un Epub - et un Mobi) voir page par exemple :
    https://www.edition999.info/L-homme-mort.html de l’article.
    Et la page du Top : https://www.edition999.info/Les-meilleurs-telechargements-ebooks-gratuits qui ne contient actuellement que les PDF.
    Merci d’avance de votre aide :

    Voici mes boucles :

    <div class="container">
       [(#SET{date,[(#EVAL{ date("Y-m-d",strtotime("now")-7*24*3600); })]})]
        <ul class="aa-product-catg">
     
          <BOUCLE_stat(DOC_COMPTEURS){date>#GET{date}}{!par telechargement}{0,30}> 
     
          <BOUCLE_doc(DOCUMENTS){id_document}{extension IN pdf}> 
     
          <BOUCLE_origine(documents_liens documents){objet = article}{id_document}{0, 1}>
     
          <li> <a href="[(#URL_ARTICLE{#ID_OBJET})]" title="#TITRE est l'un des ebooks gratuits les mieux classés"> </a>
            <figure> 
            <BOUCLE_jpg(DOCUMENTS) {id_article} {extension==jpg|png|gif} {0,1}{par date}> <a href="[(#URL_ARTICLE{#ID_OBJET})]" title="#TITRE est l'un des ebooks gratuits les mieux classés">
               <div class="image">
          [(#LOGO_DOCUMENT|inserer_attribut{alt, #TITRE|attribut_html})]
          </div>
              </a>
              </BOUCLE_jpg>
            </figure>
               <div class="panel panel-default" style="margin-top:4px;">
     
    <h6 class="text-success">#TELECHARGEMENT téléchargements <i class="far fa-file-pdf"></i> / 7j</h6></div>
            </BOUCLE_origine>
            </BOUCLE_doc>
          </li>
          </BOUCLE_stat>
        </ul>
      </div>

    Reply to this message

  • 1

    Bonjour, je découvre ce plugin bien utile.
    Après relecture des échanges passés, peut on résumer ainsi ? :
    -  l’appel du compteur sur un pdf se fait dans le champs texte avec <docXXX|compteur> et on obtient des stats globales (pour tous les pdf).
    -  Si on veut des stats précises pour un pdf donné on rajoute le numéro du compteur <docYYY|compteur=XX> (c’est pas forcément le même numéro de compteur que celui du document).
    -  Si on veut des stats sur un lien avec titre, on fait <docYYY|compteur_lien|titre=nom du lien>

    Ma question spécifique est la suivante : sur un site avec plusieurs centaines de pdf, je souhaiterai éviter de remettre le lien “|compteur” à chaque fois. Tous mes pdf sont liés dans le champs “PS” des articles, peut on imaginer un attribut de type “#PS|compteur_lien” pour prendre en compte automatiquement tous les liens doc dans ce champs ?
    Sinon comment faire la surcharge dans mes_options pour transformer tous les liens URL_DOCUMENT en URL_DOC_COMPTEUR ?

    Merci pour votre aide

    • Pas vraiment une réponse, mais on sait jamais : selon les formats d’appels de tes modèles, le plugin rechremp pourra t’aider, ou pas, à mettre à jour tous tes appels. Mais dans le cas général il faudrait faire des recherches et remplacements avec expression régulière, ce que rechremp ne fait pas encore actuellement.

    Reply to this message

  • Plugin très utile, qui fonctionne très bien.
    Cependant, un avertissement lié à ce plugin apparait à présent dans les logs:
    “PHP Warning: Use of undefined constant generer_url_document - assumed ’generer_url_document’ (this will throw an Error in a future version of PHP) in /var/www/spip/plugins/auto/anaclic/v0.3.4/action/telecharger.php on line 49” (avec PHP 7.2)

    Reply to this message

  • Bonjour,
    je ne parviens pas à voir la page de statistique de téléchargement lorsque je désactive les statistique pour le site.

    Dans la doc il est dis que cela devarit apparaitre dans le menu edition; mais je ne vois rien de tel. (en spip 3.2.3) veriosn du plugin 0.3.4

    Reply to this message

  • 2

    Bonjour, y-a-t’il une maj prévue pour spip 3.2 ? Merci :-)

    • Bonjour,
      Le plugin peut être activé de force en modifiant la contrainte de dépendance dans le fichier plugin.xml qui se trouve dans le dossier du plugin.
      <necessite id="SPIP" version="[2.1.0;3.2.99]" />
      Sur mon installation, le plugin semble fonctionner comme précédemment de cette façon.
      Je n’ai pas les connaissances nécessaires pour valider que le plugin est techniquement adapté aux mises à jours apportées dans SPIP 3.2

    • Merci Damien pour ce retour.

      J’ai donc passé le plugin en SPIP 3.2 avec la version 0.3.4
      Si quelqu’un rencontre des bugs, merci de le signaler sur ce forum.

    Reply to this message

  • Christophe Noisette

    Bonjour
    je deviens un peu chèvre alors je vous écris pour avoir un peu d’aide.
    J’ai créé un nouveau bouton avec un fond vert.
    Je n’arrive pas à changer la class du titre du doc qui apparait sur ce bouton.
    J’ai créé dans anaclic.css

    .doc_bouton .info2

    Et dans Zdoc_bouton.html , j’ai modifié ainsi

    <td class="right">
    <a class="spip" href="#GET{url}">
    
    <span class="info2">[(#TITRE)] </span>
    
    <span class="info2">
    ([(#DESCRIPTIF*),][ (#TAILLE|taille_en_octets)])
    </span>
    
    </a>
    </td>

    Cette modif n’apparait pas (cache vidé, Firefox navigation privée, etc...)
    Pourquoi donc ?
    La page concernée : https://www.infogm.org/faq-etiquetage-avec-ou-sans-OGM-en-France-et-en-Europe?var_mode=recalcul

    Amitiés
    Christophe

    Reply to this message

  • 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.

    Reply to this message

Add a comment

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 / PostgreSQL
  • 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 apparait.

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom