On fait donc un compromis : par defaut on affiche que les 90 derniers jours comme avant, avec un unique lien qui permet d'afficher tout l'historique jour, tous les zooms intermediaires n'ayant aucun interet
Par rapport a avant, on preserve donc la rapidite de la page par defaut, on simplifie l'interface, et on accede facilement a l'historique complet
On supprime donc le double systeme de zoom URL + JS en laissant uniquement le zoom JS : par defaut le graphe jour est zoome sur les 90 derniers jours, mais il suffit de double-clicker pour avoir tout l'historique, que l'on peut zoomer/dezoomer par selection a la souris dans le graphe
1) nettoyage
Permet de supprimer toutes les lignes de spip_referers_articles ou spip_visites_articles qui n'appartiennent pas à un article existant dans spip_articles.
(ça c'est simple)
2) archivage
Permet de concaténer les lignes de spip_visites_articles pour qu'elles occupent moins de place en base de données.
Par défaut, SPIP regroupe les données par jour/article/visites.
On permet, pour les vieilles entrées, de regrouper par mois ou par année. Le total est alors stocké dans le 1er jour du mois ou de l'année.
Par défaut, via les constantes STATISTIQUES_ARCHIVER_PAR_MOIS (valant 2) et STATISTIQUES_ARCHIVER_PAR_AN (valant 5), on concatène :
- par mois ce qui a plus de 2 ans
- par année ce qui a plus de 5 ans
De la sorte, par exemple pour ce qui a plus de 5 ans, au lieu d'avoir une entrée par article et par jour, nous obtenons une entrée par article et par an,
ce qui diminue considérablement le nombre de lignes de spip_visites_articles, sans perte des totaux de chaque article.
Dans la base qui a servi de test, cela passe de 12.5 millions d'entrées (de 2005 à aujourd'hui) à 1.2 millions. C'est encore beaucoup, mais c'est bien moins !
- echelle axe des Y à droite (près des mesures les plus récentes)
- legende en dessous des graphes, en ligne
- Titre en fer a gauche, regroupé avec les actions de pagination
- graphe des mois depuis l'origine du site par defaut (graphe des jours inchangé sur 90jours)
- axe des X : date humainement lisible (15 janvier au lieu de 15/01/2013)
- eviter les effets de gradients sur les barres ça gene le lisibilité. On met en plein avec une très légere transparence pour ne presque pas distinguer border et background
- le gris des weekend était a peine visible sur certains ecrans, on le fonce
- la barre des changement d'année est de largeur 1 mois sur le graphe des mois
- ne pas masquer l'explication car elle n'est pas visible
- hierarchie de l'info dans le tableau des résumés
Un peu de refactoring js en utilisant closest('.graphique') au lieu d'enchainer les .parent() qui rendent le code peu robuste
La solution proposée est de réduire la taille du graphique. Cependant, cela fait un peu moins joli et il faudra peut être revenir dessus, par exemple en mettant ce tableau de résumé au dessus du graphique, sur 1 seule ligne.
Si quelqu'un veut se lancer.