Browse Source

Statistiques des jours sur 90 jours, et des mois sur 1 an par défaut. On sépare donc les squelettes pour rafraichir indépendamment l'un ou l'autre

spip-3.0
marcimat@rezo.net 12 years ago
parent
commit
8c65ab4ed0
  1. 5
      .gitattributes
  2. 7
      prive/squelettes/contenu/stats_visites.html
  3. 160
      prive/squelettes/inclure/stats-visites-data.html
  4. 93
      prive/squelettes/inclure/stats-visites-jours.html
  5. 5
      prive/squelettes/inclure/stats-visites-jours_fonctions.php
  6. 38
      prive/squelettes/inclure/stats-visites-mois.html
  7. 5
      prive/squelettes/inclure/stats-visites-mois_fonctions.php
  8. 46
      prive/squelettes/inclure/stats-visites-populaires.html
  9. 47
      prive/stats/visites.html

5
.gitattributes vendored

@ -28,6 +28,11 @@ 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/inclure/stats-visites-jours.html -text
prive/squelettes/inclure/stats-visites-jours_fonctions.php -text
prive/squelettes/inclure/stats-visites-mois.html -text
prive/squelettes/inclure/stats-visites-mois_fonctions.php -text
prive/squelettes/inclure/stats-visites-populaires.html -text
prive/squelettes/top/stats_lang.html -text
prive/squelettes/top/stats_referers.html -text
prive/squelettes/top/stats_repartition.html -text

7
prive/squelettes/contenu/stats_visites.html

@ -1,3 +1,6 @@
[(#AUTORISER{voirstats}|sinon_interdire_acces)]
<INCLURE{fond=prive/squelettes/inclure/stats-visites-data,ajax,env} />
<INCLURE{fond=prive/stats/visites} />
<INCLURE{fond=prive/squelettes/inclure/stats-visites-data, env} />
<INCLURE{fond=prive/squelettes/inclure/stats-visites-populaires} />
<INCLURE{fond=prive/stats/visites} />

160
prive/squelettes/inclure/stats-visites-data.html

@ -7,165 +7,9 @@
<a href="#URL_ECRIRE{stats_referers,id_article=#ID_ARTICLE}"><:titre_liens_entrants:></a>
#BOITE_FERMER
</BOUCLE_expose>
#SET{c,#VAL{article}|classement_populaires}
<p class="pagination">
<span class="dl">
#SET{args,#ARRAY{id_article,#ID_ARTICLE,duree,#DUREE}}
<a href="[(#URL_PAGE{transmettre,[(#VAL{statistiques}|param_low_sec{#GET{args}, '', 'transmettre'})]})]" class="noajax">CSV</a>
</span>
|
[<span class="duree">(#ENV{duree,90}) <:info_jours:></span>] |
<a href="[(#SELF|parametre_url{duree,#ENV{duree,90}|duree_zoom{moins}})]"
class="ajax">[(#CHEMIN_IMAGE{zoomout-24.png}|balise_img{<:info_zoom:> -})]</a>
<a href="[(#SELF|parametre_url{duree,#ENV{duree,90}|duree_zoom{plus}})]"
class="ajax">[(#CHEMIN_IMAGE{zoomin-24.png}|balise_img{<:info_zoom:> +})]</a>
</p>
#SET{max,0}
#SET{moy,0}
#SET{last,0}
#SET{lastlast,0}
<B_statsj>
<table class='spip info visites' style="width:145px;position:absolute;right:10px;margin-top:7px;">
<caption>Resume</caption>
<tbody>
<tr>
<th><:info_maximum|trim{':'}|trim|ucfirst:></th>
<td class='num'>#GET{max}</td>
</tr>
<tr>
<th><:info_moyenne|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#GET{moy}|round)]</td>
</tr>
<tr>
<th><a href="#URL_ECRIRE{statistiques_referers}"
title="<:info_moyenne|trim{':'}|trim|attribut_html:>"><:info_aujourdhui|trim{':'}|trim|ucfirst:></a></th>
<td class='num'>#GET{last}</td>
</tr>
<tr>
<th><a href="#URL_ECRIRE{statistiques_referers,jour=veille}"
title="<:info_moyenne|trim{':'}|trim|attribut_html:>"><:info_hier|trim{':'}|trim|ucfirst:></a></th>
<td class='num'>#GET{lastlast}</td>
</tr>
<BOUCLE_art(ARTICLES){id_article}{statut?}>
<tr>
<th><:info_popularite_5|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#CHAMP_SQL{popularite}|round)]</td>
</tr>
<tr>
<th><:info_total|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#VISITES|round)]</td>
</tr>
<tr>
<th></th>
<td class='num'>[<strong>(#ID_ARTICLE|array_search{#GET{c}}|plus{1})</strong>[(#GET{c}|count|singulier_ou_pluriel{info_classement_1,info_classement_2,liste})]]</td>
</tr>
</BOUCLE_art>
<tr>
<th><:info_total|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#REM|stats_total)]</td>
</tr>
<tr>
<th><:info_popularite_2|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#CONFIG{popularite_total}|round)]</td>
</tr>
<//B_art>
</tbody>
</table>
<table class='visites' id='visites_quotidiennes'>
<caption><:visites_journalieres:></caption>
<thead>
<tr class='row_first'>
<th><:date|trim{':'}|trim:></th>
<th class='valeur'><:info_visites|trim{':'}|trim:></th>
<th class='moyenne'><:info_moyenne|trim{':'}|trim:></th>
</tr>
</thead>
<tbody>
<BOUCLE_statsj(DATA){source stats_visites,jour,#ENV{duree,90},#ENV{id_article}}>
<tr class="c_[(#CLE|affdate{l}|substr{0,3})][(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)c_today]">
<th title="[(#CLE|affdate{'Y-m-d'})]">[(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|?{<:info_aujourdhui:>,#CLE|affdate_jourcourt})]</th>
<td class="val">#VALEUR{visites}[<em>(<span>(#VALEUR{prevision})</span>)</em>]</td>
<td class="mean">#VALEUR{moyenne}</td>
</tr>
#SET{max,#GET{max}|max{#VALEUR{visites}}}
#SET{moy,#VALEUR{moyenne}}
#SET{lastlast,#GET{last}}
#SET{last,#VALEUR{visites}}
</BOUCLE_statsj>
</tbody>
</table>
</B_statsj>
<B_statsm>
<table class='visites' id='visites_mensuelles'>
<caption><:visites_mensuelles:></caption>
<thead>
<tr class='row_first'>
<th><:date|trim{':'}|trim:></th>
<th class='valeur'><:info_visites|trim{':'}|trim:></th>
<th class='moyenne'><:info_moyenne|trim{':'}|trim:></th>
</tr>
</thead>
<tbody>
<BOUCLE_statsm(DATA){source stats_visites,mois,#ENV{duree,90},#ENV{id_article}}>
<tr class="c_[(#CLE|affdate{l}|substr{0,3})][(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)c_today]">
<th title="[(#CLE|affdate{'Y-m-01'})]">[(#CLE|affdate_mois_annee)]</th>
<td class="val">#VALEUR{visites}[<em>(<span>(#VALEUR{prevision})</span>)</em>]</td>
<td class="mean">[(#VALEUR{moyenne}|round)]</td>
</tr>
</BOUCLE_statsm>
</tbody>
</table>
</B_statsm>
<INCLURE{fond=prive/squelettes/inclure/stats-visites-jours,ajax,env} />
<INCLURE{fond=prive/squelettes/inclure/stats-visites-mois,ajax,env} />
#BOITE_FERMER
#BOITE_OUVRIR{'','note'}
<div class="stats-articles">
<div class="unit size1of2">
<p><:info_visites_plus_populaires:></p>
<B_pluspop>
<ol class='classement'>
<BOUCLE_pluspop(ARTICLES){id_article IN #GET{c}}{0,30}{doublons}>
<li[ class="(#EXPOSE)"]><a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE})]" class="ajax"
title="<:info_popularite_3{visites=#VISITES,popularite=#POPULARITE}|attribut_html:>">#TITRE</a></li>
</BOUCLE_pluspop>
</ol>
<B_derniers>
<p class="center">[...]</p>
<ol class='classement'>
<BOUCLE_derniers(ARTICLES){popularite>0}{!par date}{0,10}{doublons}>
<li value="[(#ID_ARTICLE|array_search{#GET{c}}|plus{1})]"[ class="(#EXPOSE)"]><a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE})]" class="ajax"
title="<:info_popularite_3{visites=#VISITES,popularite=#POPULARITE}|attribut_html:>">#TITRE</a></li>
</BOUCLE_derniers>
</ol>
</B_derniers>
</B_pluspop>
</div>
<div class="unit lastUnit">
<p><:info_affichier_visites_articles_plus_visites:></p>
#SET{c,#VAL{article}|classement_populaires}
<B_plusvisites>
<ol class='classement'>
<BOUCLE_plusvisites(ARTICLES){popularite>0}{!par visites}{0,30}{doublons}>
<li value="[(#ID_ARTICLE|array_search{#GET{c}}|plus{1})]"[ class="(#EXPOSE)"]><a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE})]" class="ajax"
title="<:info_popularite_3{visites=#VISITES,popularite=#POPULARITE}|attribut_html:>">#TITRE</a></li>
</BOUCLE_plusvisites>
</ol>
</B_plusvisites>
<h4><a href='#' onclick="$(this).parent().next().toggle('fast');return false;"><:info_comment_lire_tableau:></a></h4>
<p class="none"><:texte_comment_lire_tableau:></p>
</div>
</div>
#BOITE_FERMER

93
prive/squelettes/inclure/stats-visites-jours.html

@ -0,0 +1,93 @@
#SET{c,#VAL{article}|classement_populaires}
<p class="pagination">
<span class="dl">
#SET{args,#ARRAY{id_article,#ID_ARTICLE,duree,#DUREE}}
<a href="[(#URL_PAGE{transmettre,[(#VAL{statistiques}|param_low_sec{#GET{args}, '', 'transmettre'})]})]" class="noajax">CSV</a>
</span>
|
[<span class="duree">(#ENV{duree,90}) <:info_jours:></span>] |
<a href="[(#SELF|parametre_url{duree,#ENV{duree,90}|duree_zoom{moins}})]"
class="ajax">[(#CHEMIN_IMAGE{zoomout-24.png}|balise_img{<:info_zoom:> -})]</a>
<a href="[(#SELF|parametre_url{duree,#ENV{duree,90}|duree_zoom{plus}})]"
class="ajax">[(#CHEMIN_IMAGE{zoomin-24.png}|balise_img{<:info_zoom:> +})]</a>
</p>
#SET{max,0}
#SET{moy,0}
#SET{last,0}
#SET{lastlast,0}
<B_statsj>
<table class='spip info visites' style="width:145px;position:absolute;right:10px;margin-top:7px;">
<caption>Resume</caption>
<tbody>
<tr>
<th><:info_maximum|trim{':'}|trim|ucfirst:></th>
<td class='num'>#GET{max}</td>
</tr>
<tr>
<th><:info_moyenne|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#GET{moy}|round)]</td>
</tr>
<tr>
<th><a href="#URL_ECRIRE{statistiques_referers}"
title="<:info_moyenne|trim{':'}|trim|attribut_html:>"><:info_aujourdhui|trim{':'}|trim|ucfirst:></a></th>
<td class='num'>#GET{last}</td>
</tr>
<tr>
<th><a href="#URL_ECRIRE{statistiques_referers,jour=veille}"
title="<:info_moyenne|trim{':'}|trim|attribut_html:>"><:info_hier|trim{':'}|trim|ucfirst:></a></th>
<td class='num'>#GET{lastlast}</td>
</tr>
<BOUCLE_art(ARTICLES){id_article}{statut?}>
<tr>
<th><:info_popularite_5|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#CHAMP_SQL{popularite}|round)]</td>
</tr>
<tr>
<th><:info_total|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#VISITES|round)]</td>
</tr>
<tr>
<th></th>
<td class='num'>[<strong>(#ID_ARTICLE|array_search{#GET{c}}|plus{1})</strong>[(#GET{c}|count|singulier_ou_pluriel{info_classement_1,info_classement_2,liste})]]</td>
</tr>
</BOUCLE_art>
<tr>
<th><:info_total|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#REM|stats_total)]</td>
</tr>
<tr>
<th><:info_popularite_2|trim{':'}|trim|ucfirst:></th>
<td class='num'>[(#CONFIG{popularite_total}|round)]</td>
</tr>
<//B_art>
</tbody>
</table>
<table class='visites' id='visites_quotidiennes'>
<caption><:visites_journalieres:></caption>
<thead>
<tr class='row_first'>
<th><:date|trim{':'}|trim:></th>
<th class='valeur'><:info_visites|trim{':'}|trim:></th>
<th class='moyenne'><:info_moyenne|trim{':'}|trim:></th>
</tr>
</thead>
<tbody>
<BOUCLE_statsj(DATA){source stats_visites,jour,#ENV{duree,90},#ENV{id_article}}>
<tr class="c_[(#CLE|affdate{l}|substr{0,3})][(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)c_today]">
<th title="[(#CLE|affdate{'Y-m-d'})]">[(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|?{<:info_aujourdhui:>,#CLE|affdate_jourcourt})]</th>
<td class="val">#VALEUR{visites}[<em>(<span>(#VALEUR{prevision})</span>)</em>]</td>
<td class="mean">#VALEUR{moyenne}</td>
</tr>
#SET{max,#GET{max}|max{#VALEUR{visites}}}
#SET{moy,#VALEUR{moyenne}}
#SET{lastlast,#GET{last}}
#SET{last,#VALEUR{visites}}
</BOUCLE_statsj>
</tbody>
</table>
</B_statsj>

5
prive/squelettes/inclure/stats-visites-jours_fonctions.php

@ -0,0 +1,5 @@
<?php
include_spip('prive/squelettes/inclure/stats-visites-data_fonctions');
?>

38
prive/squelettes/inclure/stats-visites-mois.html

@ -0,0 +1,38 @@
<p class="pagination">
<span class="dl">
#SET{args,#ARRAY{id_article,#ID_ARTICLE,duree,#DUREE}}
<a href="[(#URL_PAGE{transmettre,[(#VAL{statistiques}|param_low_sec{#GET{args}, '', 'transmettre'})]})]" class="noajax">CSV</a>
</span>
|
[<span class="duree">(#ENV{duree,365}) <:info_jours:></span>] |
<a href="[(#SELF|parametre_url{duree,#ENV{duree,365}|duree_zoom{moins}})]"
class="ajax">[(#CHEMIN_IMAGE{zoomout-24.png}|balise_img{<:info_zoom:> -})]</a>
<a href="[(#SELF|parametre_url{duree,#ENV{duree,365}|duree_zoom{plus}})]"
class="ajax">[(#CHEMIN_IMAGE{zoomin-24.png}|balise_img{<:info_zoom:> +})]</a>
</p>
<B_statsm>
<table class='visites' id='visites_mensuelles'>
<caption><:visites_mensuelles:></caption>
<thead>
<tr class='row_first'>
<th><:date|trim{':'}|trim:></th>
<th class='valeur'><:info_visites|trim{':'}|trim:></th>
<th class='moyenne'><:info_moyenne|trim{':'}|trim:></th>
</tr>
</thead>
<tbody>
<BOUCLE_statsm(DATA){source stats_visites,mois,#ENV{duree,365},#ENV{id_article}}>
<tr class="c_[(#CLE|affdate{l}|substr{0,3})][(#COMPTEUR_BOUCLE|=={#TOTAL_BOUCLE}|oui)c_today]">
<th title="[(#CLE|affdate{'Y-m-01'})]">[(#CLE|affdate_mois_annee)]</th>
<td class="val">#VALEUR{visites}[<em>(<span>(#VALEUR{prevision})</span>)</em>]</td>
<td class="mean">[(#VALEUR{moyenne}|round)]</td>
</tr>
</BOUCLE_statsm>
</tbody>
</table>
</B_statsm>

5
prive/squelettes/inclure/stats-visites-mois_fonctions.php

@ -0,0 +1,5 @@
<?php
include_spip('prive/squelettes/inclure/stats-visites-data_fonctions');
?>

46
prive/squelettes/inclure/stats-visites-populaires.html

@ -0,0 +1,46 @@
#SET{c,#VAL{article}|classement_populaires}
#BOITE_OUVRIR{'','note'}
<div class="stats-articles">
<div class="unit size1of2">
<p><:info_visites_plus_populaires:></p>
<B_pluspop>
<ol class='classement'>
<BOUCLE_pluspop(ARTICLES){id_article IN #GET{c}}{0,30}{doublons}>
<li[ class="(#EXPOSE)"]><a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE})]" class="ajax"
title="<:info_popularite_3{visites=#VISITES,popularite=#POPULARITE}|attribut_html:>">#TITRE</a></li>
</BOUCLE_pluspop>
</ol>
<B_derniers>
<p class="center">[...]</p>
<ol class='classement'>
<BOUCLE_derniers(ARTICLES){popularite>0}{!par date}{0,10}{doublons}>
<li value="[(#ID_ARTICLE|array_search{#GET{c}}|plus{1})]"[ class="(#EXPOSE)"]><a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE})]" class="ajax"
title="<:info_popularite_3{visites=#VISITES,popularite=#POPULARITE}|attribut_html:>">#TITRE</a></li>
</BOUCLE_derniers>
</ol>
</B_derniers>
</B_pluspop>
</div>
<div class="unit lastUnit">
<p><:info_affichier_visites_articles_plus_visites:></p>
#SET{c,#VAL{article}|classement_populaires}
<B_plusvisites>
<ol class='classement'>
<BOUCLE_plusvisites(ARTICLES){popularite>0}{!par visites}{0,30}{doublons}>
<li value="[(#ID_ARTICLE|array_search{#GET{c}}|plus{1})]"[ class="(#EXPOSE)"]><a href="[(#SELF|parametre_url{id_article,#ID_ARTICLE})]" class="ajax"
title="<:info_popularite_3{visites=#VISITES,popularite=#POPULARITE}|attribut_html:>">#TITRE</a></li>
</BOUCLE_plusvisites>
</ol>
</B_plusvisites>
<h4><a href='#' onclick="$(this).parent().next().toggle('fast');return false;"><:info_comment_lire_tableau:></a></h4>
<p class="none"><:texte_comment_lire_tableau:></p>
</div>
</div>
#BOITE_FERMER

47
prive/stats/visites.html

@ -4,21 +4,22 @@
[<script type="text/javascript" src="(#CHEMIN{javascript/jquery.tflot.js})"></script>]
<script type="text/javascript">
function trace_stats(){
// copier le titre des tableaux
titre = $("#visites_quotidiennes caption").text();
$("#visites_quotidiennes")
.before("<h3 class='caption'>" + titre + "</h3>")
.wrap("<div class='statistiques_visites_quotidiennes statistiques_visites'></div>");
function trace_stats_table(table, classes, options) {
$table = $(table);
if ($table.is(':hidden')) {
return true; // pas a faire ou deja fait.
}
titre = $("#visites_mensuelles caption").text();
$("#visites_mensuelles")
// copier le titre des tableaux
titre = $table.find("caption").text();
$table
.before("<h3 class='caption'>" + titre + "</h3>")
.wrap("<div class='statistiques_visites_mensuelles statistiques_visites'></div>");
.wrap("<div class='" + classes + "'></div>");
// mettre les visites avec un fond colore pour le graphique
$("#visites_mensuelles thead th:eq(1), #visites_quotidiennes thead th:eq(1)").addClass('flotFill').addClass('flotBar');
$("#visites_mensuelles thead th:eq(2), #visites_quotidiennes thead th:eq(2)").addClass('flotLine');
$table.find("thead th:eq(1)").addClass('flotFill').addClass('flotBar');
$table.find("thead th:eq(2)").addClass('flotLine');
params = {
legendeExterne:true,
@ -57,8 +58,14 @@ function trace_stats(){
infobulle:{show:true}
}
$("#visites_quotidiennes").tFlot(
$.extend(true, {}, params, {
$table.tFlot($.extend(true, params, options));
}
function trace_stats(){
trace_stats_table(
"#visites_quotidiennes",
"statistiques_visites_quotidiennes statistiques_visites",
{
grille:{weekend:true},
flot:{
xaxis:{
@ -66,11 +73,11 @@ function trace_stats(){
},
bars:{barWidth:24 * 60 * 60 * 1000}
}
})
);
$("#visites_mensuelles").tFlot(
$.extend(true, {}, params, {
});
trace_stats_table(
"#visites_mensuelles",
"statistiques_visites_mensuelles statistiques_visites", {
grille:{years:true},
flot:{
xaxis:{
@ -79,8 +86,8 @@ function trace_stats(){
},
bars:{barWidth:30 * 24 * 60 * 60 * 1000 /* nb de jours... approximatif */}
}
})
);
});
}
(function($){
$(document).ready(function(){

Loading…
Cancel
Save