From 217938c8298c3f331d361f058a846b97b07c1f69 Mon Sep 17 00:00:00 2001 From: "cedric@yterium.com" <> Date: Thu, 17 Mar 2011 10:27:57 +0000 Subject: [PATCH] page des stats de visites site et articles, en panoramique --- .gitattributes | 2 + inc/statistiques.php | 16 +++ inc/stats_to_array.php | 3 + plugin.xml | 6 +- prive/squelettes/contenu/stats_visites.html | 2 - .../inclure/stats-visites-data.html | 110 +++++++++++++++++- .../inclure/stats-visites-data_fonctions.php | 7 ++ prive/squelettes/top/stats_visites.html | 2 + prive/stats/visites.html | 4 +- prive/transmettre/statistiques.html | 10 ++ 10 files changed, 154 insertions(+), 8 deletions(-) create mode 100644 prive/squelettes/top/stats_visites.html create mode 100644 prive/transmettre/statistiques.html diff --git a/.gitattributes b/.gitattributes index 2d37a15..5ca898b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -25,10 +25,12 @@ prive/squelettes/contenu/stats_visites.html -text prive/squelettes/inclure/admin_effacer_stats.html -text prive/squelettes/inclure/stats-visites-data.html -text prive/squelettes/inclure/stats-visites-data_fonctions.php -text +prive/squelettes/top/stats_visites.html -text prive/stats/visites.html -text prive/style_prive_plugin_stats.html -text prive/themes/spip/images/statistique-16.png -text prive/themes/spip/images/statistique-24.png -text +prive/transmettre/statistiques.html -text public/stats.php -text /stats_autoriser.php -text /stats_pipelines.php -text diff --git a/inc/statistiques.php b/inc/statistiques.php index d61d752..b6e7c15 100644 --- a/inc/statistiques.php +++ b/inc/statistiques.php @@ -459,6 +459,22 @@ function statistiques_moyenne($tab){ return $moyenne / count($tab); } +/** + * Construire un tableau par popularite + * classemnt => id_truc + * @param string $type + * @param string $serveur + * @return array + */ +function classement_populaires($type, $serveur=''){ + static $classement = array(); + if (isset($classement[$type])) + return $classement[$type]; + $classement[$type] = sql_allfetsel(id_table_objet($type, $serveur), table_objet_sql($type, $serveur), "statut='publie' AND popularite > 0", "", "popularite DESC",'','',$serveur); + $classement[$type] = array_map('reset',$classement[$type]); + return $classement[$type]; +} + // http://doc.spip.org/@statistiques_signatures_dist function statistiques_signatures_dist($duree, $interval, $type, $id_article, $serveur) diff --git a/inc/stats_to_array.php b/inc/stats_to_array.php index ba94970..b559ab3 100644 --- a/inc/stats_to_array.php +++ b/inc/stats_to_array.php @@ -50,6 +50,9 @@ function inc_stats_to_array_dist($unite, $duree, $id_article, $options = array() moyenne_glissante(); $data = array(); $r = sql_fetch($res,$serveur); + if (!$r){ + $r = array('d'=>date($format,$now),'v'=>0); + } do { $data[$r['d']] = array('visites'=>$r['v'],'moyenne'=>moyenne_glissante($r['v'], $glisse)); $last = $r['d']; diff --git a/plugin.xml b/plugin.xml index f5a294d..1ed4242 100644 --- a/plugin.xml +++ b/plugin.xml @@ -54,12 +54,12 @@ images/statistique-16.png icone_statistiques_visites - statistiques_visites + stats_visites - + null icone_statistiques_visites - statistiques_visites + stats_visites null diff --git a/prive/squelettes/contenu/stats_visites.html b/prive/squelettes/contenu/stats_visites.html index 63b7acf..4ee7eac 100644 --- a/prive/squelettes/contenu/stats_visites.html +++ b/prive/squelettes/contenu/stats_visites.html @@ -1,4 +1,2 @@ -#BOITE_OUVRIR{#CHEMIN_IMAGE{statistique-24.png}|balise_img{'',cadre-icone},'simple stats'} -#BOITE_FERMER \ No newline at end of file diff --git a/prive/squelettes/inclure/stats-visites-data.html b/prive/squelettes/inclure/stats-visites-data.html index 31fb311..318bffe 100644 --- a/prive/squelettes/inclure/stats-visites-data.html +++ b/prive/squelettes/inclure/stats-visites-data.html @@ -1,10 +1,64 @@ +[(#BOITE_OUVRIR{[(#CHEMIN_IMAGE{statistique-24.png}|balise_img{'',cadre-icone})]

<:titre_evolution_visite:>

,'simple stats'})] + +#BOITE_OUVRIR{'','note'} + [(#CHEMIN_IMAGE{fermer-16.png}|balise_img|inserer_attribut{alt,<:tout_voir:>})] + <:titre_page_statistiques_visites:> <:info_pour:> +

#TITRE

+#BOITE_FERMER + +

+ + #SET{args,#ARRAY{id_article,#ID_ARTICLE,duree,#DUREE}} + CSV + + + [(#ENV{duree,90}) <:info_jours:>] [(#CHEMIN_IMAGE{loupe-moins.gif}|balise_img{<:info_zoom:> -})] [(#CHEMIN_IMAGE{loupe-plus.gif}|balise_img{<:info_zoom:> +})]

+#SET{max,0} +#SET{moy,0} +#SET{last,0} +#SET{lastlast,0} + + + + + + + + + [(#ID_ARTICLE|oui)] + + [(#ID_ARTICLE|oui)] + [(#ID_ARTICLE|non)] + + + + + + + + + + + + + + + + + + + +
<:info_maximum|trim{':'}|trim|ucfirst:><:info_moyenne|trim{':'}|trim|ucfirst:><:info_aujourdhui|trim{':'}|trim|ucfirst:><:info_hier|trim{':'}|trim|ucfirst:><:info_popularite_5|trim{':'}|trim|ucfirst:><:info_total|trim{':'}|trim|ucfirst:><:info_popularite_2|trim{':'}|trim|ucfirst:>
#GET{max}[(#GET{moy}|round)]#GET{last}#GET{lastlast}[(#CHAMP_SQL{popularite}|round)][(#VISITES|round)][(#REM|stats_total)][(#CONFIG{popularite_total}|round)]
+ @@ -21,9 +75,15 @@ + #SET{max,#GET{max}|max{#VALEUR{visites}}} + #SET{moy,#VALEUR{moyenne}} + #SET{lastlast,#GET{last}} + #SET{last,#VALEUR{visites}}
<:visites_journalieres:>
#VALEUR{visites}[((#VALEUR{prevision}))] #VALEUR{moyenne}
+ +
@@ -46,4 +106,52 @@ - \ No newline at end of file + + +#BOITE_FERMER + +#BOITE_OUVRIR{'','note'} +
+
+ +

<:info_visites_plus_populaires:>

+#SET{c,#VAL{article}|classement_populaires} + +
    + + #TITRE + +
+ +

[...]

+
    + 0}{!par date}{0,10}{doublons}> +
  1. #TITRE
  2. + +
+
+
+ +

<:info_comment_lire_tableau:>

+

<:texte_comment_lire_tableau:>

+ + +
+
+ +

<:info_affichier_visites_articles_plus_visites:>

+ #SET{c,#VAL{article}|classement_populaires} + +
    + 0}{!par visites}{0,30}{doublons}> +
  1. #TITRE
  2. + +
+
+ +
+
+#BOITE_FERMER diff --git a/prive/squelettes/inclure/stats-visites-data_fonctions.php b/prive/squelettes/inclure/stats-visites-data_fonctions.php index 75f9a25..18d5d5b 100644 --- a/prive/squelettes/inclure/stats-visites-data_fonctions.php +++ b/prive/squelettes/inclure/stats-visites-data_fonctions.php @@ -1,5 +1,7 @@ +[(#VAL{statistiques}|barre_onglets{stats_visites})] \ No newline at end of file diff --git a/prive/stats/visites.html b/prive/stats/visites.html index 815fcb1..4d1b707 100644 --- a/prive/stats/visites.html +++ b/prive/stats/visites.html @@ -21,8 +21,8 @@ function trace_stats(){ params = { legendeExterne:true, legendeActions:true, - width:'480px', - height:'200px', + width:($('.large #page').length)?'945px':'750px', + height:'250px', modeDate:true, zoom:true, parse:{ diff --git a/prive/transmettre/statistiques.html b/prive/transmettre/statistiques.html new file mode 100644 index 0000000..02c0db5 --- /dev/null +++ b/prive/transmettre/statistiques.html @@ -0,0 +1,10 @@ +<:date|trim{':'}|trim:>,<:info_visites|trim{':'}|trim:> +[(#CLE|affdate{'Y-m-d'})],[(#VALEUR{visites})] + +