Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /home/lmc77/sites/up310/plugins/content/up/upAction.php on line 2093

Deprecated: locale_accept_from_http(): Passing null to parameter #1 ($header) of type string is deprecated in /home/lmc77/sites/up310/plugins/content/up/upAction.php on line 2093

Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /home/lmc77/sites/up310/plugins/content/up/upAction.php on line 2093

Deprecated: locale_accept_from_http(): Passing null to parameter #1 ($header) of type string is deprecated in /home/lmc77/sites/up310/plugins/content/up/upAction.php on line 2093

Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /home/lmc77/sites/up310/plugins/content/up/upAction.php on line 2093

Deprecated: locale_accept_from_http(): Passing null to parameter #1 ($header) of type string is deprecated in /home/lmc77/sites/up310/plugins/content/up/upAction.php on line 2093

Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /home/lmc77/sites/up310/plugins/content/up/upAction.php on line 2093

Deprecated: locale_accept_from_http(): Passing null to parameter #1 ($header) of type string is deprecated in /home/lmc77/sites/up310/plugins/content/up/upAction.php on line 2093
Site visit
Cette action permet de comptabiliser le nombre de visites de l'article où figure le shortcode.

Elle n'a pas vocation de remplacer les grands ténors de l'analytique, mais offre une solution rapide pour évaluer la renommée d'un article. Elle économise les ressources : pas d'utilisation de la base de données et une place disque limitée. 6 mois de stats pour le suivi des 220 articles de ce site occupe moins de 100Ko.

Elle fournit le nombre de visiteurs uniques par article et langage navigateur, ainsi que le nombre de pages vues par un visiteur dans une journée

A l'origine, j'ai écrit cette action pour connaitre les popularités respectives des différentes actions de UP. Cette action ne prend pas en compte les pages affichées par des composants

La première version de cette action, uniquement disponible dans la version 2.9 de UP, se nomme site-visit.

IMPORTANT POUR LES UTILISATEURS DE CETTE VERSION

Il est possible de migrer vers cette version en suivant cette procédure :

  • Faire une sauvegarde de vos données qui sont dans le dossier : up/site-visit
  • Faire une copie des données dans un nouveau dossier up/site-stat. Vous pouvez également changer le dossier dans votre prefs.ini
  • Lancer 1 fois le shortcode {up site-stat=convert} pour migrer les données
 

🆙 site_stat : comptabilise le nombre d'appel de cette action et affiche le nombre de visite

Cliquer pour lire la documentation

syntaxe :
{up site-stats} : incrémente le fichier dir-logs/id-alias_article.log
{up site-stats=*} : Calcule et affiche les stats pour TOUS les fichiers
{up site-stats=0} : Calcule et affiche les stats pour l'article courant
{up site-stats=12} : Calcule et affiche les stats pour l'article d'ID=12
{up site-stats=mask} : affiche les stats des fichiers correspondant au mask
L'affichage est réalisé à l'aide de templates et de mots clés :
--- tmpl-lign : résultat pour un fichier log (un article)
##count## : nombre total de visites uniques pour un article
##id##, ##alias##, ##title##, ##created##, ##updated## : données de l'article
##catid##, ##catalias## : id et alias de la catégorie de l'article
##detail## : affiche le détail des visites par année, mois, langue
--- tmpl-detail-period : modèle pour une période de ##detail##
Les mots clés pour les sous-templates de ##detail##
Détail par articles : ##PERIOD##, ##TOTAL##, ##LANG##
Motif répété pour ##LANG## : ##LANG##, ##COUNT##
Détail par nombre de pges vues par un visteur : ##PERIOD##, ##TOTAL##, ##PAGES-VISITORS##
Motif répété pour ##PAGES-VISITORS## : ##NBPAGES##, ##NBVISITORS## :
@version: UP-3.0 @license: GNU/GPLv3 @credit: script xxx de xxx @tags: Groupe pour bouton editeur

    Options pour enregistrement du suivi

    • site_stat: vide : enregistre l'accès, sinon masque= *:tous, 1:courant, ID article ou masque fichiers (id-alias)
    • catid-include: liste des id catégories à inclure, séparateur virgule
    • catid-exclude: liste des id catégories à exclure, séparateur virgule
    • usergroup-list: liste des groupes d'utilisateurs à exclure, séparateur virgule
    • ip-list = 127.0.0.8, localhost: liste des IP à ignorer. les botnets sont ignorés, séparateur virgule
    • bots-list = bot,spider,crawler,libwww,search,archive,slurp,teoma,facebook,twitter: liste de bots exclus

    Options pour affichage résultats

    • view-catid-include: liste des catégories prise en compte
    • detail-max-month: Nombre de mois affichés. 0: tous
    • tmpl-lign = ##ALIAS## ##CATALIAS## ##DETAIL##: modele d'affichage pour un article ou total
    • tmpl-detail-period = [b class="t-blue bg-grisClair ph1"]##PERIOD##[/b] ([b]##TOTAL##[/b] - ##LANG##): template pour une période
    • tmpl-detail-period-lang = [i]##LANG##[/i]:[b]##COUNT##[/b]: Sous-template pour un langage
    • tmpl-total-detail-period = [b class="t-blanc bg-brun ph1"]##PERIOD##[/b] ([b]##TOTAL##[/b] - ##PAGES-VISITORS##): template pour le nombre de pages vues par les visiteurs
    • tmpl-total-detail-PV = [i]##NBPAGES##p[/i]:##COUNT##: Sous-template groupe de nombres de pages par visiteurs
    • date-format = lang[en=%B %se, %Y; fr=%e %B %Y]: format pour la date
    • no-content-html = lang[en=No statistical data; fr=Aucune donnée statistique]: message affiché si aucun résultat pour la sélection

    Paramètres consolidation pour prefs.ini

    • keep-days = 3: nombre de jours non compactés en mois. Aujourd'hui non inclus. Ces jours ne sont pas comptabilisé dans leur mois
    • keep-months = 12: nombre minimum de mois non compactés en années. (0=année courante, 12=année courante et précédente)
    • delay-unique = 300: delai (en secondes) entre 2 visites d'une page par une IP pour la considerer comme unique
    • bots-nbpages = 200: nb pages/jour pour suspision de robots

    Classe(s) et style(s) pour la ligne total

    • total-style = bg-grisClair: style pour la dernière ligne

    Gestion style d'une ligne

    • item-tag: balise pour les lignes de la liste
    • item-class: classe pour les lignes de la liste
    • item-style: style pour les lignes de la liste

    Gestion style du bloc principal

    • main-tag (block): balise pour la liste
    • id: identifiant
    • class: classe(s) pour bloc
    • style: style inline pour bloc
    • css-head (base-css): style ajouté dans le HEAD de la page

    Pour webmaster - à ajouter dans le fichier prefs.ini

    • dir-logs = up/site-stat: dossier pour logs

    Activer la comptabilisation

    Avant d'afficher les résultats, il faut stocker les visites des internautes à l'aide du shortcode {up site-stat}

    • ce shortcode peut être ajouté dans les articles que vous voulez suivre.
    • dans un module personnalisé afin d'activer la comptabilisation pour tous les articles.

    Attention, aucun argument ne doit être fourni à site-stat

    Par défaut, les visites de la page sont mémorisées dans un fichier nommé : id-alias.log dans le dossier défini par l'option dir-logs.

    Plusieurs options permettent de limiter le comptage :

    catid-include, catid-exclude

    La liste des ID des catégories à inclure ou à exclure du comptage. ex: 10,25

    usergroup-list

    La liste des groupes d'utilisateurs dont la visite ne sera pas comptabilisée.

    ip-list

    Les adresses IP à ne pas prendre en compte. Un bon complément à l'option usergroup-list qui demande d'être connecté.

    bots-list

    La liste des robots qui ne sont pas vraiment des visiteurs.
    La liste de base est : bot,spider,crawler,libwww,search,archive,slurp,teoma,facebook,twitter

     
    Je vous conseille de paramétrer ces options directement dans le fichier  plugins/content/up/actions/site_visite/custom/prefs.ini

    Outre le fait de ne pas avoir à les saisir à chaque fois, cette méthode permet d'appliquer une modification à toutes les actions en activité.
    Il devient beaucoup plus simple de compléter la liste des IP ou des robots

    Paramètres experts

    dir-logs

    Le stockage des compteurs est fait dans des fichiers situés dans le dossier 'up/site-stat'.
    Cette option permet de changer cet emplacement en l'indiquant dans le fichier prefs.ini pour qu'il s'applique à l'ensemble du site.

    Afficher les données

    Maintenant que les visites sont en mémorisées, on peut afficher TOUS les résultats pour un site avec ce shortcode {up site-stat=*}

    Voici un extrait d'une copie d'écran des stats pour ce site.

    Plusieurs actions sont mises à contribution pour obtenir une table triable. Pour l'instant, concentrons-nous sur les données affichées.

    {up table-sort | col-type=n-a-n-a-a}
    
      {up csv2table | model=line
       | header=Id;Article;Total;Catégorie;Détail
       | footer
       | col=c5-20-c5-10-x
       | col-style-2=font-weight:bold
      }
    
        {up site-stat=*
         | tmpl-lign = ##ID## ; ##ALIAS## ; ##COUNT## ; ##CATALIAS## ; ##DETAIL##
        }
    
      {/up csv2table}
    
    {/up table-sort}

    Pour chaque article, nous avons le nombre total de visiteurs uniques dans la colonne "Total" et la ventilation par période dans la colonne "détail".
    Par exemple, l'article presentation a été vu 3162 fois depuis la mise en place des stats. Pour le mois de décembre 2022, 370 fois dont 241 francophones, 48 anglais, ... Pour les derniers jours, le 14 mai,  7 fois dont 4 pour lequel le langage du navigateur n'est pas reconnu (xx)

    La dernière ligne donne le total de visiteurs uniques pour tous les articles. La colonne détail fournit une ventilation par nombre de pages vues par un visiteur en une journée.
    Par exemple, en janvier 2023, le site a eu 172 visiteurs uniques, 31 personnes ont regardé une seule page, 28 ont vu de 2 ou 3 pages.
    Félicitation aux 2 personnes qui ont regardé plus de 128 pages 😊.

    Les stats pour la page courante

    Pour afficher la fréquentation d'un article, mettez ce shortcode directement dans l'article ou dans un module qui ciblera l'article courant.

    {up site-stat=0
    | tmpl-lign=L'article ##TITLE## a été vu ##COUNT## fois
    }

    Plusieurs options contrôlent l'affichage

    Le premier groupe d'options limite le nombre d'articles et la période affichée.

    site-stat
    l'option principale accepte un masque de sélection sur l'alias des articles.
    Par exemple, pour avoir les stats des actions parlant d'image, je peux utiliser le shortcode 

    {up site-stat=*image*}
    view-catid-include
    la liste, séparée par des virgules,  des ID des catégories à afficher
    detail-max-month
    Permet d'afficher seulement le détails pour les derniers mois. 0: tous

    Les modèles pour la ligne d'un article

    tmpl-lign
    est le modèle d'affichage pour un article ou le total.
    Les mots-clés reconnus sont :
    ##count##  : nombre total de visites uniques pour un article
    ##id##, ##alias##, ##title##, ##created##, ##updated## : données de l'article
    ##catid##, ##catalias## : id et alias de la catégorie de l'article
    ##detail## : affiche le détail des visites par année, mois, langue
    Par défaut: ##ALIAS## ##CATALIAS## ##DETAIL##
    tmpl-detail-period
    le template pour une période.
    ##period## : l'année, le mois et le jour
    ##total## : le nombre de visiteurs uniques tous langages confondus
    ##lang## : une ventilation par langage dont le contenu est défini par tmpl-detail-period-lang
    Par défaut: [b class="t-blue bg-grisClair ph1"]##PERIOD##[/b] ([b]##TOTAL##[/b] - ##LANG##)
    tmpl-detail-period-lang
    Sous-template pour un langage. le ##lang## de l'option tmpl-detail-period
    ##lang## : le code langage. xx = le navigateur visiteur ne fournit pas de code langage
    ##count##
    Par défaut:[i]##LANG##[/i]:[b]##COUNT##[/b]

    Le modèle pour la dernière ligne qui contient les totaux

    Pour compatibilité avec une présentation en tableau, la ligne "total" est identique à celle d'une ligne

    tmpl-total-detail-period
    sous-template pour la zone ##detail## qui contient le nombre de pages vues par les visiteurs
    ##period## : l'année, le mois et le jour
    ##total## : le nombre de visiteurs uniques sur une journée. Ce nombre peut être différent de la colonne "total" qui considère qu'un visiteur est unique si le délai entre 2 visites d'une page est supérieur à "delay-unique" secondes
    ##page-visitors##
    Par défaut: [b class="t-blanc bg-brun ph1"]##PERIOD##[/b] ([b]##TOTAL##[/b] - ##PAGES-VISITORS##)
    tmpl-total-detail-PV
    sous-template groupe de nombres de pages par visiteurs
    ##nbpages## : tranches de pages vues (1, 2, 4 , 16, 32, 64, 128, ...)
    ##count## : nombre de visiteurs uniques
    Par défaut: [i]##NBPAGES##p[/i]:##COUNT##

    Divers

    date-format
    format pour la date. On utilise le format de la fonction (obsolète) PHP strftime qui sera convertie pour être PHP8 compatible.
    %y:AA, %Y:AAAA, %m:01-12, %b:mois 3 lettres, %B:nom mois, %d:01-31, %e:1-31, %a:joursem 3 lettres, %A:(Lmin) jour sem, %U:N° semaine, %l:heure (1-12) AM/PM - L minuscule, %I:heure (01-12) AM/PM - i majuscule, %k:heure (0-23), %H:heure (00-23), %P:am/pm, %p:AM/PM, %M:minute (00-59)Par défaut : lang[en=%B %se, %Y;fr=%e %B %Y]
    Par défaut : lang[en=%B %se, %Y;fr=%e %B %Y]
    no-content-html
    message affiché si aucun résultat pour la sélection
    Par défaut : lang[en=No statistical data;fr=Aucune donnée statistique]

    Styles CSS

    Comme pour toutes les actions UP, vous disposez d'options pour gérer le style.

    • css-head : règles CSS ajoutée dans le HEAD de la page
    • total-style: style pour la dernière ligne avec les totaux.

    style d'une ligne

    • item-tag : balise pour les lignes de la liste
    • item-class et item-style : classe(s) et style inline pour les lignes de la liste

    style du bloc principal

    • main-tag : balise pour la liste
    • id : identifiant
    • class et style : classe(s) et style inline

    Compacter les données

    Lors de la visite d'une page, l'action stocke les informations suivantes dans un fichier de suivi de l'article : date et heure, langage du navigateur et adresse IP

    Pour être conforme avec le RGPD et économiser la place disque, les informations des visites sont cumulées progressivement en jour, mois et années pour ne conserver que la date et le langage.

    Plusieurs options permettent de contrôler l'enregistrement et la consolidation :

    • delay-unique :  le délai (en secondes) entre 2 visites d'une page par une IP pour la considérer comme unique
    • keep-days : le nombre de jours non compactés en mois. Aujourd'hui n'est pas inclus. Ces jours ne sont pas comptabilisé dans leur mois
    • keep-months : le nombre minimum de mois non compactés en années. (0=année courante, 12=année courante et précédente)
    • bots-nbpages : Si une adresse IP consulte davantage de pages en une journée, elle sera ajoutée dans le fichier _robot-control.txt de votre dossier stat.
      La valeur par défaut de 200 est à adapter au nombre d'articles de votre site.
      Il est de votre responsabilité d'analyser ce fichier pour décider si vous devez la bloquer en l'ajoutant à l'option ip-list

    Cette opération "gourmande en ressource" est réalisée lors de l'affichage de TOUS les résultats.

    Pour avoir des stats compactes, il est indispensable d'exécuter régulièrement ce shortcode

    {up site-stat=*}

    Je vous conseille de le mettre dans un article accessible aux seuls administrateurs du site

    C'est également la seule possibilité de calculer le nombre de pages vues par visiteurs

     

    Pour info, cette page utilise 23 action(s) :
    box (1) div (4) upactionslist (1) icon (3) csv2def (6) readmore (1) tooltip (2) flexauto (1) span (1) tabslide (1) toc (1) jcontent-info (1)