Changeset 45479 in spip-zone


Ignore:
Timestamp:
Mar 16, 2011, 11:37:25 PM (9 years ago)
Author:
cedric@…
Message:

debut de reecriture de l'affichage des stats en squelette :
on utilise une boucle (DATA){source stats,jour|mois,duree,id_article}
pour recuperer le tableau de donnees qu'on met en forme dans le squelette
la page offre deja le zom on/off en ajax

Location:
_core_/plugins/statistiques
Files:
5 added
2 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/statistiques/inc/statistiques.php

    r43429 r45479  
    120120}
    121121
    122 // http://doc.spip.org/@statistiques_collecte_date
    123 function statistiques_collecte_date($count, $date, $table, $where, $serveur)
    124 {
     122
     123/**
     124 *
     125 * // http://doc.spip.org/@statistiques_collecte_date
     126 *
     127 * @param string $count
     128 * @param string $date
     129 * @param string $table
     130 * @param string $where
     131 * @param string $serveur
     132 * @return array
     133 */
     134function statistiques_collecte_date($count, $date, $table, $where, $serveur){
    125135        $result = sql_select("$count AS n, $date AS d", $table, $where, 'd', 'd', '','', $serveur);
    126136        $log = array();
     
    141151
    142152        list($moyenne,$prec, $res) = stat_log1($log, $date_fin, $interval, $script);
    143         $res_mois = statistiques_mensuelles($order, $table, $where, $serveur, $script);
     153        $res_mois = statistiques_mensuelles($order, $table, $where, $serveur);
    144154        $stats =
    145155          "<table class='visites' id='visites_quotidiennes'>"
     
    388398}
    389399
    390 function statistiques_mois($key, $value, $moyenne, $script) {
     400function statistiques_mois($key, $value, $moyenne) {
    391401        $key = substr($key,0,4).'-'.substr($key,4,2);
    392402        $res = "<tr>"
     
    400410
    401411// http://doc.spip.org/@statistiques_mensuelles
    402 function statistiques_mensuelles($order, $table, $where, $serveur, $script) {
     412function statistiques_mensuelles($order, $table, $where, $serveur) {
    403413        $result = sql_select("SUM(visites) AS v, DATE_FORMAT($order,'%Y%m') AS d", "$table", "$where", "d", "d", "",'',$serveur);
    404414        $res_mois = '';
     
    406416        while ($r = sql_fetch($result,$serveur)) {
    407417                moyenne_glissante_mois($r['v']);
    408                 $res_mois .= statistiques_mois($r['d'], $r['v'], moyenne_glissante_mois() , $script);
     418                $res_mois .= statistiques_mois($r['d'], $r['v'], moyenne_glissante_mois());
    409419        }
    410420        return $res_mois;
     
    412422
    413423
    414 
    415 // http://doc.spip.org/@statistiques_moyenne
    416 function statistiques_moyenne($tab)
    417 {
     424/**
     425 * Calculer la moyenne glissante sur un nombre d'echantillons donnes
     426 * @param int|bool $valeur
     427 * @param int $glisse
     428 * @return float
     429 */
     430function moyenne_glissante($valeur = false, $glisse=0) {
     431        static $v = array();
     432        // pas d'argument, raz de la moyenne
     433        if ($valeur === false) {
     434                $v = array();
     435                return 0;
     436        }
     437
     438        // argument, on l'ajoute au tableau...
     439        // surplus, on enleve...
     440        $v[] = $valeur;
     441        if (count($v) > $glisse)
     442                array_shift($v);
     443
     444        return round(statistiques_moyenne($v),2);
     445}
     446
     447/**
     448 * Calculer la moyenne d'un tableau de valeurs
     449 *
     450 * http://doc.spip.org/@statistiques_moyenne
     451 *
     452 * @param array $tab
     453 * @return float
     454 */
     455function statistiques_moyenne($tab){
    418456        if (!$tab) return 0;
    419457        $moyenne = 0;
  • _core_/plugins/statistiques/prive/stats/visites.html

    r26689 r45479  
    44
    55<script type="text/javascript">
     6function trace_stats(){
     7        // copier le titre des tableaux
     8        titre = $("#visites_quotidiennes caption").text();
     9        $("#visites_quotidiennes")
     10                .before("<h3 class='caption'>" + titre + "</h3>")
     11                .wrap("<div class='statistiques_visites_quotidiennes statistiques_visites'></div>");
     12
     13        titre = $("#visites_mensuelles caption").text();
     14        $("#visites_mensuelles")
     15                .before("<h3 class='caption'>" + titre + "</h3>")
     16                .wrap("<div class='statistiques_visites_mensuelles statistiques_visites'></div>");;
     17
     18        // mettre les visites avec un fond colore pour le graphique
     19        $("#visites_mensuelles thead th:eq(1), #visites_quotidiennes thead th:eq(1)").addClass('flotFill');
     20
     21        params = {
     22                legendeExterne:true,
     23                legendeActions:true,
     24                width:'480px',
     25                height:'200px',
     26                modeDate:true,
     27                zoom:true,
     28                parse:{
     29                        axeOnTitle:true,
     30                        defaultSerie:{
     31                                bars:{show:false},
     32                                lines:{show:true}
     33                        }
     34                },
     35                flot:{
     36                        xaxis:{
     37                                labelWidth:30,
     38                                monthNames: [
     39                                        '[(#VAL{2000-01-01}|nom_mois)]',
     40                                        '[(#VAL{2000-02-01}|nom_mois)]',
     41                                        '[(#VAL{2000-03-01}|nom_mois)]',
     42                                        '[(#VAL{2000-04-01}|nom_mois)]',
     43                                        '[(#VAL{2000-05-01}|nom_mois)]',
     44                                        '[(#VAL{2000-06-01}|nom_mois)]',
     45                                        '[(#VAL{2000-07-01}|nom_mois)]',
     46                                        '[(#VAL{2000-08-01}|nom_mois)]',
     47                                        '[(#VAL{2000-09-01}|nom_mois)]',
     48                                        '[(#VAL{2000-10-01}|nom_mois)]',
     49                                        '[(#VAL{2000-11-01}|nom_mois)]',
     50                                        '[(#VAL{2000-12-01}|nom_mois)]'
     51                                ]
     52                        }
     53                },
     54                infobulle:{show:true}
     55        }
     56
     57        $("#visites_quotidiennes").tFlot(
     58                $.extend(true, {}, params, {
     59                        grille:{weekend:true}
     60                })
     61        );
     62
     63        $("#visites_mensuelles").tFlot(
     64                $.extend(true, {}, params, {
     65                        grille:{years:true},
     66                        flot:{
     67                                xaxis:{
     68                                        timeformat:"%b %y"
     69                                }
     70                        }
     71                })
     72        );
     73}
    674(function($){
    775        $(document).ready(function(){
    8 
    9                 // copier le titre des tableaux
    10                 titre = $("#visites_quotidiennes caption").text();
    11                 $("#visites_quotidiennes")
    12                         .before("<h3 class='caption'>" + titre + "</h3>")
    13                         .wrap("<div class='statistiques_visites_quotidiennes statistiques_visites'></div>");
    14                
    15                 titre = $("#visites_mensuelles caption").text();
    16                 $("#visites_mensuelles")
    17                         .before("<h3 class='caption'>" + titre + "</h3>")
    18                         .wrap("<div class='statistiques_visites_mensuelles statistiques_visites'></div>");;
    19                
    20                 // mettre les visites avec un fond colore pour le graphique
    21                 $("#visites_mensuelles thead th:eq(1), #visites_quotidiennes thead th:eq(1)").addClass('flotFill');
    22                
    23                 params = {
    24                         legendeExterne:true,
    25                         legendeActions:true,
    26                         width:'480px',
    27                         height:'200px',
    28                         modeDate:true,
    29                         zoom:true,
    30                         parse:{
    31                                 axeOnTitle:true,
    32                                 defaultSerie:{
    33                                         bars:{show:false},
    34                                         lines:{show:true}
    35                                 }
    36                         },
    37                         flot:{
    38                                 xaxis:{
    39                                         labelWidth:30,
    40                                         monthNames: [
    41                                                 '[(#VAL{2000-01-01}|nom_mois)]',
    42                                                 '[(#VAL{2000-02-01}|nom_mois)]',
    43                                                 '[(#VAL{2000-03-01}|nom_mois)]',
    44                                                 '[(#VAL{2000-04-01}|nom_mois)]',
    45                                                 '[(#VAL{2000-05-01}|nom_mois)]',
    46                                                 '[(#VAL{2000-06-01}|nom_mois)]',
    47                                                 '[(#VAL{2000-07-01}|nom_mois)]',
    48                                                 '[(#VAL{2000-08-01}|nom_mois)]',
    49                                                 '[(#VAL{2000-09-01}|nom_mois)]',
    50                                                 '[(#VAL{2000-10-01}|nom_mois)]',
    51                                                 '[(#VAL{2000-11-01}|nom_mois)]',
    52                                                 '[(#VAL{2000-12-01}|nom_mois)]'
    53                                         ]
    54                                 }
    55                         },
    56                         infobulle:{show:true}                   
    57                 }
    58                
    59                 $("#visites_quotidiennes").tFlot(
    60                         $.extend(true, {}, params, {
    61                                 grille:{weekend:true}
    62                         })
    63                 );
    64 
    65                 $("#visites_mensuelles").tFlot(
    66                         $.extend(true, {}, params, {
    67                                 grille:{years:true},
    68                                 flot:{
    69                                         xaxis:{
    70                                                 timeformat:"%b %y"
    71                                         }
    72                                 }
    73                         })
    74                 );
    75 
     76                trace_stats();
     77                onAjaxLoad(trace_stats);
    7678        });
    7779})(jQuery);
Note: See TracChangeset for help on using the changeset viewer.