
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
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
{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 maskL'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## :
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
{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
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)