Documentation du code de SPIP et de ses plugins

Statistiques

Application

Table of Contents

Constants

_CRON_LOT_FICHIERS_VISITE  = 100
_IP_FLOOD_TTL  = 24 * 3600
MOYENNE_GLISSANTE_JOUR  = 30
MOYENNE_GLISSANTE_MOIS  = 12
STATISTIQUES_ARCHIVER_PAR_AN  = 5
Nombre d'années après quoi on permet de concaténer les statistiques de visites par an
STATISTIQUES_ARCHIVER_PAR_MOIS  = 2
Nombre d'années après quoi on permet de concaténer les statistiques de visites par mois

Functions

action_statistiques_archiver_dist()  : mixed
Archiver ou nettoyer des statistiques
statistiques_archiver_log()  : mixed
Logguer ces informations importantes.
statistiques_nettoyer_visites_articles()  : mixed
Nettoyer des lignes de visites d'articles incorrectes
statistiques_nettoyer_referers_articles()  : mixed
Nettoyer des lignes de referers d'articles incorrectes
statistiques_archiver_visites_articles()  : mixed
Archiver les visites d'articles
statistiques_concatener_visites_par_mois()  : mixed
Concatène les statistiques de visites d'articles par mois
statistiques_concatener_visites_entre_jours()  : mixed
Concatène les statistiques de visites d'articles par portion de mois (entre groupe de jours)
statistiques_concatener_annee_minimum()  : int|bool
Retourne la plus petite année des visites d'articles
statistiques_concatener_visites_par_an()  : mixed
Concatène les statistiques de visites d'articles par an
statistiques_concatener_visites_entre_periode()  : bool
Concatène les statistiques de visites d'articles entre 2 périodes.
base_delete_referers_dist()  : string
Supprimer les referers
base_delete_stats_dist()  : string
Supprimer les stats
stats_declarer_tables_auxiliaires()  : array<string|int, mixed>
Déclarer les tables de statistiques
exec_base_delete_referers_dist()  : mixed
exec_base_delete_stats_dist()  : mixed
formulaires_configurer_compteur_charger_dist()  : mixed
formulaires_configurer_compteur_verifier_dist()  : mixed
formulaires_configurer_compteur_traiter_dist()  : mixed
genie_popularite_constantes()  : array<string|int, mixed>
Calcule des coefficients de popularité en fonction de l'intervalle écoulé depuis le précédent calcul
genie_popularites_dist()  : int
Cron de calcul des popularités des articles
compte_fichier_visite()  : void
Prendre en compte un fichier de visite
calculer_visites()  : null|int
Calcule les statistiques de visites, en plusieurs étapes
visites_nettoyer_flood()  : mixed
Nettoyer les IPs des flooders 24H apres leur dernier passage
nettoyer_referer()  : mixed
Nettoyer les urls en enlevant les variables de personnalisation marketing, ou variantes Amp
genie_visites_dist()  : int
Cron de calcul de statistiques des visites
stats_load_engines()  : array<string|int, mixed>
Recuperer la liste des moteurs de recherche depuis un fichier txt Adaptees du code des "Visiteurs", par Jean-Paul Dezelus (http://www.phpinfo.net/applis/visiteurs/)
stats_show_keywords()  : array<string|int, mixed>
Retrouver les mots cles de recherche dans une url de referer
referes()  : string
Recherche des objets pointés par un referer
classement_populaires()  : array<string|int, mixed>
Construire un tableau par popularite classemnt => id_truc
inc_stats_referers_to_array_dist()  : mixed
inc_stats_visites_to_array_dist()  : array<string|int, mixed>
Retourne les statistiques globales ou d'un objet pour une durée donnée
affiche_stats_lang()  : mixed
enfants()  : mixed
enfants_aff()  : mixed
stats_total()  : mixed
statistiques_stats_generales()  : array<string|int, mixed>
Calcule visites totales, aujourd'hui, hier pour le site ou objet/id_objet
statistiques_url_data()  : string
L'url d'accès aux données json ou csv.
statistiques_url_data_auteur()  : string
L'url d'accès aux données json ou csv (pour cet auteur, même non connecté).
transmettre_statistiques_json()  : mixed
public_stats_dist()  : null|void
Logue une visite sur une page
stats_upgrade()  : void
Installation et mises à jour du plugin
stats_vider_tables()  : void
Désinstallation du plugin

Constants

_CRON_LOT_FICHIERS_VISITE

public mixed _CRON_LOT_FICHIERS_VISITE = 100

STATISTIQUES_ARCHIVER_PAR_AN

Nombre d'années après quoi on permet de concaténer les statistiques de visites par an

public int STATISTIQUES_ARCHIVER_PAR_AN = 5

Après ce nombre d'années, on peut concaténer les données de visites d'articles par années pour prendre moins de place dans la base de données

Nombre d'années

STATISTIQUES_ARCHIVER_PAR_MOIS

Nombre d'années après quoi on permet de concaténer les statistiques de visites par mois

public int STATISTIQUES_ARCHIVER_PAR_MOIS = 2

Après ce nombre d'années, on peut concaténer les données de visites d'articles par mois pour prendre moins de place dans la base de données

Nombre d'années

Functions

action_statistiques_archiver_dist()

Archiver ou nettoyer des statistiques

action_statistiques_archiver_dist([string $arg = null ]) : mixed
Parameters
$arg : string = null

statistiques_archiver_log()

Logguer ces informations importantes.

statistiques_archiver_log(string $texte) : mixed
Parameters
$texte : string
Tags
uses
spip_log()

statistiques_nettoyer_visites_articles()

Nettoyer des lignes de visites d'articles incorrectes

statistiques_nettoyer_visites_articles() : mixed

Supprime toutes les lignes qui ne font pas partie d'un article présent en base

statistiques_nettoyer_referers_articles()

Nettoyer des lignes de referers d'articles incorrectes

statistiques_nettoyer_referers_articles() : mixed

Supprime toutes les lignes qui ne font pas partie d'un article présent en base

statistiques_archiver_visites_articles()

Archiver les visites d'articles

statistiques_archiver_visites_articles() : mixed
Tags
note

Cela peut prendre beaucoup de temps.

La base de test avait (en 2014) 12.500.000 d'entrées depuis 2005. Cet archivage réduit à 1.200.000 entrées en réduisant par mois jusqu'à 2012 inclu et par an jusqu'à 2009 inclu.

Cela prenait 8 minutes sur ma machine locale (Intel Core i5-4258U CPU @ 2.40GHz × 4 avec disque SSD)

note

On peut suivre l'avancement dans le fichier de log tail -f tmp/log/statistiques_archiver.log

note

On ne peut pas vraiment avec le code actuel de la fonction appliquer les calculs sur l'ensemble d'un mois car cela peut facilement surcharger la mémoire de php.

Du coup, on applique par petit bouts d'abord.

uses
statistiques_concatener_visites_entre_jours()
uses
statistiques_concatener_visites_par_mois()
uses
statistiques_concatener_visites_par_an()

statistiques_concatener_visites_entre_jours()

Concatène les statistiques de visites d'articles par portion de mois (entre groupe de jours)

statistiques_concatener_visites_entre_jours(int $annee, int $debut, int $fin) : mixed
Parameters
$annee : int

On concatène ce qui est avant cette année là.

$debut : int

Numéro de jour du début de la concaténation, exemple 1. Le total des visites concaténé sera mis dans ce jour là.

$fin : int

Numéro de jour de fin de la concaténation, exemple 31. Toutes les entrées entre le jour $debut+1 et $fin seront supprimées et concaténées au jour $debut.

Tags
used-by
statistiques_archiver_visites_articles()

statistiques_concatener_annee_minimum()

Retourne la plus petite année des visites d'articles

statistiques_concatener_annee_minimum() : int|bool
Return values
int|bool
  • int : l'année
  • false : année non trouvée.

statistiques_concatener_visites_entre_periode()

Concatène les statistiques de visites d'articles entre 2 périodes.

statistiques_concatener_visites_entre_periode(string $date_debut, string $date_fin) : bool
Parameters
$date_debut : string

Date de début tel que '2010-01-01'

$date_fin : string

Date de fin tel que '2010-12-31'

Return values
bool
  • false : aucune visite sur cette période
  • true : il y avait des visites, elles ont été concaténées (ou l'étaient déjà)

base_delete_referers_dist()

Supprimer les referers

base_delete_referers_dist([strinf $titre = '' ][, bool $reprise = '' ]) : string
Parameters
$titre : strinf = ''
$reprise : bool = ''
Return values
string

base_delete_stats_dist()

Supprimer les stats

base_delete_stats_dist([strinf $titre = '' ][, bool $reprise = '' ]) : string
Parameters
$titre : strinf = ''
$reprise : bool = ''
Return values
string

stats_declarer_tables_auxiliaires()

Déclarer les tables de statistiques

stats_declarer_tables_auxiliaires(array<string|int, mixed> $tables_auxiliaires) : array<string|int, mixed>

Déclare les tables :

  • spip_visites
  • spip_visites_articles
  • spip_referers
  • spip_referers_articles
Parameters
$tables_auxiliaires : array<string|int, mixed>

Description des tables auxiliaires

Tags
pipeline

declarer_tables_auxiliaires

Return values
array<string|int, mixed>

Description complétée des tables auxiliaires

genie_popularite_constantes()

Calcule des coefficients de popularité en fonction de l'intervalle écoulé depuis le précédent calcul

genie_popularite_constantes(int $duree) : array<string|int, mixed>

Popularite, modele logarithmique

Parameters
$duree : int

Intervalle écoulé depuis le précédent calcul

Tags
type

float $a Coefficient d'amortissement

type

float $b Constante multiplicative }

used-by
genie_popularites_dist()
used-by
calculer_visites()
Return values
array<string|int, mixed>

{

genie_popularites_dist()

Cron de calcul des popularités des articles

genie_popularites_dist(int $t) : int
Parameters
$t : int

Timestamp de la dernière exécution de cette tâche

Tags
uses
genie_popularite_constantes()
Return values
int

Positif si la tâche a été terminée, négatif pour réexécuter cette tâche

compte_fichier_visite()

Prendre en compte un fichier de visite

compte_fichier_visite(string $fichier, int &$visites, array<string|int, mixed> &$visites_a, array<string|int, mixed> &$referers, array<string|int, mixed> &$referers_a) : void
Parameters
$fichier : string

Nom du fichier de visite

$visites : int

Nombre de visites

$visites_a : array<string|int, mixed>

Couples id_article => nombre : comptage par identifiant d'article

$referers : array<string|int, mixed>

Couples url_referer => nombre : comptage par url de referer

$referers_a : array<string|int, mixed>

Couples id_article => array (url_referer => nombre) : comptage par article puis url de referer

calculer_visites()

Calcule les statistiques de visites, en plusieurs étapes

calculer_visites(int $t) : null|int
Parameters
$t : int

Timestamp de la dernière exécution de cette tâche

Tags
uses
compte_fichier_visite()
uses
genie_popularite_constantes()
used-by
genie_visites_dist()
Return values
null|int
  • null si aucune visite à prendre en compte ou si tous les fichiers de visite sont traités,
  • entier négatif s'il reste encore des fichiers à traiter

visites_nettoyer_flood()

Nettoyer les IPs des flooders 24H apres leur dernier passage

visites_nettoyer_flood() : mixed

nettoyer_referer()

Nettoyer les urls en enlevant les variables de personnalisation marketing, ou variantes Amp

nettoyer_referer(mixed $url) : mixed
Parameters
$url : mixed

genie_visites_dist()

Cron de calcul de statistiques des visites

genie_visites_dist(int $t) : int

Calcule les stats en plusieurs étapes

Parameters
$t : int

Timestamp de la dernière exécution de cette tâche

Tags
uses
calculer_visites()
Return values
int

Positif si la tâche a été terminée, négatif pour réexécuter cette tâche

stats_load_engines()

Recuperer la liste des moteurs de recherche depuis un fichier txt Adaptees du code des "Visiteurs", par Jean-Paul Dezelus (http://www.phpinfo.net/applis/visiteurs/)

stats_load_engines() : array<string|int, mixed>
Return values
array<string|int, mixed>

stats_show_keywords()

Retrouver les mots cles de recherche dans une url de referer

stats_show_keywords(string $kw_referer) : array<string|int, mixed>

Adaptees du code des "Visiteurs", par Jean-Paul Dezelus (http://www.phpinfo.net/applis/visiteurs/)

Parameters
$kw_referer : string
Return values
array<string|int, mixed>

referes()

Recherche des objets pointés par un referer

referes(string $referermd5[, array<string|int, mixed>|string $objets = null ][, string $serveur = '' ]) : string
Parameters
$referermd5 : string
$objets : array<string|int, mixed>|string = null
$serveur : string = ''
Return values
string

classement_populaires()

Construire un tableau par popularite classemnt => id_truc

classement_populaires(string $type[, string $serveur = '' ]) : array<string|int, mixed>
Parameters
$type : string
$serveur : string = ''
Return values
array<string|int, mixed>

inc_stats_referers_to_array_dist()

inc_stats_referers_to_array_dist(mixed $limit[, string|null $jour = null ][, string|null $objet = null ][, int|null $id_objet = null ][, mixed $options = [] ]) : mixed
Parameters
$limit : mixed
$jour : string|null = null
$objet : string|null = null
$id_objet : int|null = null
$options : mixed = []

inc_stats_visites_to_array_dist()

Retourne les statistiques globales ou d'un objet pour une durée donnée

inc_stats_visites_to_array_dist(string $unite[, int|null $duree = null ][, string $objet = null ][, string $id_objet = null ]) : array<string|int, mixed>
Parameters
$unite : string

jour | mois | annee

$duree : int|null = null

Combien de jours | mois | annee on prend…

$objet : string = null
$id_objet : string = null
Return values
array<string|int, mixed>

[date => nb visites]

enfants()

enfants(mixed $id_parent, mixed $critere, mixed &$nombre_branche, mixed &$nombre_rub) : mixed
Parameters
$id_parent : mixed
$critere : mixed
$nombre_branche : mixed
$nombre_rub : mixed

enfants_aff()

enfants_aff(mixed $id_parent, mixed $decalage, mixed $taille, mixed $critere[, mixed $gauche = 0 ]) : mixed
Parameters
$id_parent : mixed
$decalage : mixed
$taille : mixed
$critere : mixed
$gauche : mixed = 0

statistiques_stats_generales()

Calcule visites totales, aujourd'hui, hier pour le site ou objet/id_objet

statistiques_stats_generales(array<string|int, mixed> $Pile) : array<string|int, mixed>
Parameters
$Pile : array<string|int, mixed>
Return values
array<string|int, mixed>

statistiques_url_data()

L'url d'accès aux données json ou csv.

statistiques_url_data(array<string|int, mixed> $Pile[, string $output = 'json' ][, string $export = 'visites' ][, string $unite = 'jour' ][, int|null $duree = null ][, bool|null $public = null ]) : string

Nécessite une autorisation avec l'auteur connecté sur l'url cible.

Parameters
$Pile : array<string|int, mixed>
$output : string = 'json'
$export : string = 'visites'
$unite : string = 'jour'
$duree : int|null = null
$public : bool|null = null
Return values
string

statistiques_url_data_auteur()

L'url d'accès aux données json ou csv (pour cet auteur, même non connecté).

statistiques_url_data_auteur(array<string|int, mixed> $Pile[, string $output = 'json' ][, string $export = 'visites' ][, string $unite = 'jour' ][, int|null $duree = null ]) : string

Ajoute un hash pour un auteur donné, de sorte qu'il puisse accéder aux statistiques même non connecté Possiblement utilisé pour télécharger périodiquement ses statistiques depuis un cron

Parameters
$Pile : array<string|int, mixed>
$output : string = 'json'
$export : string = 'visites'
$unite : string = 'jour'
$duree : int|null = null
Return values
string

transmettre_statistiques_json()

transmettre_statistiques_json([string $export = 'visites' ][, string $unite = 'jour' ][, int|null $duree = null ][, string|null $objet = null ][, int|null $id_objet = null ]) : mixed
Parameters
$export : string = 'visites'
$unite : string = 'jour'
$duree : int|null = null
$objet : string|null = null
$id_objet : int|null = null

public_stats_dist()

Logue une visite sur une page

public_stats_dist([array<string|int, mixed>|null $contexte = null ][, string|null $referer = null ]) : null|void

Enregistre le passage d'un visiteur sur la page demandée dans tmp/visites/ qui seront ensuite traitées par une tache cron.

Ne tient pas compte

  • des visites de robots,
  • des 404,
  • des forum
Parameters
$contexte : array<string|int, mixed>|null = null

Contexte d'appel de la page ; retrouvé automatiquement sinon.

$referer : string|null = null

Referer de provenance ; retrouvé automatiquement sinon.

Tags
see
genie_visites_dist()

Pour la tache cron qui traite les logs.

used-by
stats_affichage_entetes_final()

si la page doit être comptée.

Return values
null|void

stats_upgrade()

Installation et mises à jour du plugin

stats_upgrade(string $nom_meta_base_version, string $version_cible) : void
Parameters
$nom_meta_base_version : string

Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP

$version_cible : string

Version du schéma de données dans ce plugin (déclaré dans paquet.xml)

stats_vider_tables()

Désinstallation du plugin

stats_vider_tables(string $nom_meta_base_version) : void
Parameters
$nom_meta_base_version : string

Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP


        
On this page

Search results