source: spip-zone/_core_/plugins/statistiques/prive/stats/visites.html @ 94388

Last change on this file since 94388 was 94388, checked in by cedric@…, 5 years ago

D'experience cela ne pose pas de probleme de charger dans la page toutes les donnes de visites/jour depuis le debut de l'existence du site, y compris pour les vieux gros sites.
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

File size: 3.3 KB
Line 
1<!--[if IE]>[<script type="text/javascript" src="(#CHEMIN{javascript/excanvas.js})"></script>]<![endif]-->
2[<script type="text/javascript" src="(#CHEMIN{javascript/jquery.flot.js})"></script>]
3[<script type="text/javascript" src="(#CHEMIN{javascript/jquery.flot.selection.js})"></script>]
4[<script type="text/javascript" src="(#CHEMIN{javascript/jquery.flot.time.js})"></script>]
5[<script type="text/javascript" src="(#CHEMIN{javascript/jquery.tflot.js})"></script>]
6
7<script type="text/javascript">
8       
9function trace_stats_table(table, classes, options) {
10        $table = $(table);
11        if ($table.is(':hidden')) {
12                return true; // pas a faire ou deja fait.
13        }
14
15        // copier le titre des tableaux
16        titre = $table.find("caption").text();
17        $table.siblings('.pagination').before("<h3 class='caption'>" + titre + "</h3>");
18        $table
19
20                .wrap("<div class='" + classes + "'></div>");
21
22        // mettre les visites avec un fond colore pour le graphique
23        $table.find("thead th:eq(1)").data({fill: true, serie: 'bar', color: '#FFD845',lineWidth:0});
24        $table.find("thead th:eq(2)").data({serie: 'line', color: '#7FC4FF'});
25        $table.find("thead th:eq(3)").data({fill: true, serie: 'bar', color: '#A9DD3A',lineWidth:0});
26       
27        // mettre les previsions en premier
28        // (pour que les autres graph passent par dessus)
29        $table.find('thead tr th:first-child').after(function(){
30                return $(this).parent().find('th:eq(3)').detach();
31        });
32        $table.find('tbody tr th:first-child').after(function(){
33                return $(this).parent().find('td:last-child').detach();
34        });
35
36        params = {
37                legendeExterne:true,
38                legendeActions:true,
39                width:($('.large #page').length)?'755px':'560px', // 795px, 600px (sans le tableau de resume) ...
40                height:'250px',
41                modeDate:true,
42                zoom:true,
43                parse:{
44                        axeOnTitle:true,
45                        defaultSerie:{
46                                bars:{show:true},
47                                lines:{show:true},
48                                points:{show:false}
49                        }
50                },
51                flot:{
52                        grid:{
53                                axismargin:10
54                        },
55                        xaxis:{
56                                labelWidth:45,
57                                monthNames: [
58                                        '[(#VAL{2000-01-01}|nom_mois)]',
59                                        '[(#VAL{2000-02-01}|nom_mois)]',
60                                        '[(#VAL{2000-03-01}|nom_mois)]',
61                                        '[(#VAL{2000-04-01}|nom_mois)]',
62                                        '[(#VAL{2000-05-01}|nom_mois)]',
63                                        '[(#VAL{2000-06-01}|nom_mois)]',
64                                        '[(#VAL{2000-07-01}|nom_mois)]',
65                                        '[(#VAL{2000-08-01}|nom_mois)]',
66                                        '[(#VAL{2000-09-01}|nom_mois)]',
67                                        '[(#VAL{2000-10-01}|nom_mois)]',
68                                        '[(#VAL{2000-11-01}|nom_mois)]',
69                                        '[(#VAL{2000-12-01}|nom_mois)]'
70                                ]
71                        },
72                        yaxis:{
73                                position: "right"
74                        }
75                },
76                infobulle:{show:true}
77        }
78
79        $table.tFlot($.extend(true, {}, params, options));     
80}
81
82function trace_stats(){
83        trace_stats_table(
84                "#visites_quotidiennes",
85                "statistiques_visites_quotidiennes statistiques_visites",
86                {
87                        grille:{weekend:true},
88                        flot:{
89                                xaxis:{
90                                        min: [(#ENV{date}|affdate{'Y-m-d 00:00:00'}|strtotime|moins{7776000}|mult{1000})], /* 90 jours */
91                                        timeformat:"%d %b",
92                                        minTickSize: [1, "day"]
93                                },
94                                bars:{barWidth:24 * 60 * 60 * 1000}
95                        }
96                });
97               
98        trace_stats_table(
99                "#visites_mensuelles",
100                "statistiques_visites_mensuelles statistiques_visites", {
101                        grille:{years:true},
102                        flot:{
103                                xaxis:{
104                                        timeformat:"%b %y",
105                                        minTickSize: [1, "month"]
106                                },
107                                bars:{barWidth:30.4 * 24 * 60 * 60 * 1000 /* nb de jours... approximatif */}
108                        }
109        });
110       
111}
112(function($){
113        $(document).ready(function(){
114                trace_stats();
115                onAjaxLoad(trace_stats);
116        });
117})(jQuery);
118</script>
Note: See TracBrowser for help on using the repository browser.