Changeset 96867 in spip-zone


Ignore:
Timestamp:
Apr 29, 2016, 4:41:27 PM (4 years ago)
Author:
kent1@…
Message:

Amélioration des graphs

Version 1.1.2

Location:
_plugins_/shortcut_url/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/shortcut_url/trunk/README.md

    r96860 r96867  
    1313
    1414## Changelog
     15
     16### Version 1.1.2 (29/04/2016)
     17
     18- Amélioration des graphs
     19- Mettre des fils d'Ariane partout
     20- Modification CSS pour éviter que les listes se barrent en sucette
    1521
    1622### Version 1.1.1 (29/04/2016)
  • _plugins_/shortcut_url/trunk/json/compteur_bots.html

    r92352 r96867  
    1 [(#SET{user_agent,#ARRAY})]
     1[(#SET{user_agent,#ARRAY})][(#SET{total20,0})][(#SET{total,0})]
    22<BOUCLE_liste_shortcut_url_user_agent(SHORTCUT_URLS_LOGS){fusion user_agent}{par user_agent}{id_shortcut_url}>
    33        <BOUCLE_compte(SHORTCUT_URLS_LOGS){user_agent}{humain=bot}{id_shortcut_url}> </BOUCLE_compte>
    4         [(#SET{total_user_agent,[(#TOTAL_BOUCLE)]})]
     4        [(#SET{total_user_agent,[(#TOTAL_BOUCLE)]})][(#SET{total,[(#GET{total}|plus{[(#TOTAL_BOUCLE)]})]})]
    55        [(#SET{user_agent,[(#GET{user_agent}|array_merge{[(#ARRAY{#USER_AGENT,[(#GET{total_user_agent})]})]})]})]
    66        </B_compte>
     
    88<BOUCLE_comptetotal(SHORTCUT_URLS_BOTS){id_shortcut_url}> </BOUCLE_comptetotal>[(#SET{total,[(#TOTAL_BOUCLE)]})]</B_comptetotal>
    99
    10 [<BOUCLE_liste_shortcut_url_user_agent_pie(DATA){source table,#GET{user_agent}}{!par valeur}{0,#ENV{limite,20}}{','}>
     10[<BOUCLE_liste_shortcut_url_user_agent_pie(DATA){source table,#GET{user_agent}}{!par valeur}{0,#ENV{limite,20}}{','}>#SET{total20,#GET{total20}|plus{#VALEUR}}
    1111        {
    1212                "label": "[(#CLE|=={''}|?{nc,#CLE})]",
    1313                "value": [(#VALEUR)],
    1414                "percent": [(#VALEUR|div{#GET{total}}|mult{100}|intval)]
    15         }</BOUCLE_liste_shortcut_url_user_agent_pie>]
     15        }</BOUCLE_liste_shortcut_url_user_agent_pie>[(#GET{total}|moins{#GET{total20}}|>{0}|oui),{
     16                "label": "<:shortcut_url:label_autres:>",
     17                "value": [(#GET{total}|moins{#GET{total20}})],
     18                "percent": [(#GET{total}|moins{#GET{total20}}|div{#GET{total}}|mult{100}|intval)]
     19        }]]
    1620#FILTRE{trim}
  • _plugins_/shortcut_url/trunk/json/compteur_pays.html

    r92352 r96867  
    1 [(#SET{pays,#ARRAY})]
     1[(#SET{pays,#ARRAY})][(#SET{total,0})][(#SET{total9,0})]
    22<BOUCLE_liste_shortcut_url_pays(SHORTCUT_URLS_LOGS){fusion country_code}{par country_code}{humain=oui}{id_shortcut_url}>
    33        <BOUCLE_compte(SHORTCUT_URLS_LOGS){country_code}{humain=oui}{id_shortcut_url}> </BOUCLE_compte>
    4         [(#SET{total_pays,[(#TOTAL_BOUCLE)]})]
     4        [(#SET{total_pays,[(#TOTAL_BOUCLE)]})][(#SET{total,[(#GET{total}|plus{[(#TOTAL_BOUCLE)]})]})]
    55        [(#SET{pays,[(#GET{pays}|array_merge{[(#ARRAY{#COUNTRY_CODE,[(#GET{total_pays})]})]})]})]
    66        </B_compte>
     
    88<BOUCLE_comptetotal(SHORTCUT_URLS_LOGS){id_shortcut_url}> </BOUCLE_comptetotal>[(#SET{total,[(#TOTAL_BOUCLE)]})]</B_comptetotal>
    99
    10 [<BOUCLE_liste_shortcut_url_pays_pie(DATA){source table,#GET{pays}}{!par valeur}{0,#ENV{limite,9}}{','}>
     10[<BOUCLE_liste_shortcut_url_pays_pie(DATA){source table,#GET{pays}}{!par valeur}{0,#ENV{limite,9}}{','}>#SET{total9,#GET{total9}|plus{#VALEUR}}
    1111        {
    1212                "label": "[(#CLE|=={''}|?{nc,#CLE})]",
    1313                "value": [(#VALEUR)],
    1414                "percent": [(#VALEUR|div{#GET{total}}|mult{100}|intval)]
    15         }</BOUCLE_liste_shortcut_url_pays_pie>]
     15        }</BOUCLE_liste_shortcut_url_pays_pie>[(#GET{total}|moins{#GET{total9}}|>{0}|oui),{
     16                "label": "<:shortcut_url:label_autres:>",
     17                "value": [(#GET{total}|moins{#GET{total9}})],
     18                "percent": [(#GET{total}|moins{#GET{total9}}|div{#GET{total}}|mult{100}|intval)]
     19        }]]
    1620#FILTRE{trim}
  • _plugins_/shortcut_url/trunk/lang/shortcut_url_fr.php

    r96854 r96867  
    3434        'form_url' => 'URL',
    3535        'form_user_agent' => 'User agent',
    36         'form_click' => 'Nb click',
     36        'form_click' => 'Nb clics',
    3737
    3838        // I
     
    4040        'icone_stats_shortcut'  => 'Statistiques',
    4141        'icone_stats_shortcut_url'  => 'Retour à la liste statistique',
    42         'info_1_shortcut_url_click' => 'Ce lien a totalisé @nb@ click',
    43         'info_nb_shortcut_url_clicks' => 'Ce lien a totalisé @nb@ clicks',
     42        'info_1_shortcut_url_click' => 'Ce lien a totalisé @nb@ clic',
     43        'info_nb_shortcut_url_clicks' => 'Ce lien a totalisé @nb@ clics',
    4444        'info_1_shortcut_url' => '@nb@ URL raccourcie',
    4545        'info_nb_shortcut_urls' => '@nb@ URL raccourcies',
    4646        'info_nb_shortcut_url_stat' => '@nb@ connexion sur l\'ensemble des URLs',
    4747        'info_nb_shortcut_url_stats' => '@nb@ connexions sur l\'ensemble des URLs',
    48         'info_1_shortcut_url_humain' => '<strong>@click@</strong> clicks pour les humains',
    49         'info_1_shortcut_url_bot' => '<strong>@click@</strong> clicks pour les robots',
     48        'info_1_shortcut_url_humain' => '<strong>@click@</strong> clics pour les humains',
     49        'info_1_shortcut_url_bot' => '<strong>@click@</strong> clics pour les robots',
    5050        'item_utiliser_shortcut_export' => 'Exporter les statistiques des liens raccourcis',
    5151        'item_utiliser_shortcut_url' => 'Ajouter une URL et puis c\'est tout',
    5252        'item_utiliser_shortcut_title' => 'Vous pouvez définir le raccourci de votre URL (max @nb@ caractères)',
    5353
     54        // L
     55        'label_annee' => 'Sélectionner une année',
     56        'label_autres' => 'Autres',
    5457        'label_mois' => 'Sélectionner un mois',
    55         'label_annee' => 'Sélectionner une année',
    5658
    5759        // M
     
    5961
    6062        // N
    61         'nb_click' => 'click',
     63        'nb_click' => 'clics',
    6264        'non_communique' => 'nc',
    6365       
     
    99101        'titre_shortcut_url_graph_carte' => 'Raccourcis par pays',
    100102        'titre_shortcut_url_graph_bots' => 'Raccourcis par bots',
    101         'titre_shortcut_url_graph_click' => 'Nombre de clicks par jour',
    102         'titre_shortcut_url_graph_humain_click' => 'Nombre de clicks par jour pour les humains',
    103         'titre_shortcut_url_graph_bot_click' => 'Nombre de clicks par jour pour les robots',
     103        'titre_shortcut_url_graph_click' => 'Nombre de clics par jour',
     104        'titre_shortcut_url_graph_humain_click' => 'Nombre de clics par jour pour les humains',
     105        'titre_shortcut_url_graph_bot_click' => 'Nombre de clics par jour pour les robots',
    104106        'titre_shortcut_url_liste_logs_bots' => 'Liste statistique des bots'
    105107);
  • _plugins_/shortcut_url/trunk/paquet.xml

    r96860 r96867  
    22        prefix="shortcut_url"
    33        categorie="edition"
    4         version="1.1.1"
     4        version="1.1.2"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
     
    2929
    3030        <menu nom="menu_shortcut_url" position="10" action="navigation" parametres="menu=menu_shortcut_url" titre="shortcut_url:icone_stats_shortcut" icone="images/shortcut_url-menu.png" />
    31 
    32 
    3331</paquet>
  • _plugins_/shortcut_url/trunk/prive/objets/editer/shortcut_url_bots_graphs.html

    r96547 r96867  
    3131
    3232<script type="text/javascript">
    33 
    3433$(document).ready(function($) {
    3534
    3635        var data = #INCLURE{fond=json/compteur_bots,id_shortcut_url};
    37 
     36        var scale = [1, 10, 50, 100, 500],
     37                colors = ["couleur1","couleur2","couleur3","couleur4","couleur5"];
     38        if(data.length > 0){
     39                max = d3.max(data, function(d) { return d.value+1; });
     40                if(max > 500){
     41                        var interval = (max - 500) / 5,
     42                                last = 500;
     43                        for (i = 0; i < 4; i++) {
     44                                last = last +interval;
     45                                scale.push(Math.floor(last));
     46                                colors.push("couleur"+(6+i));
     47                        }
     48                       
     49                        scale.push(max);
     50                        colors.push("couleur10");
     51                }
     52        }
    3853        var color = d3.scale.threshold()
    39                 .domain([1, 10, 20, 50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000])
    40                 .range(["couleur1", "couleur2", "couleur3", "couleur4", "couleur5", "couleur6", "couleur7", "couleur8", "couleur9", "couleur10"]);
     54                .domain(scale)
     55                .range(colors);
    4156
    4257        var margin = {top: 20, right: 20, bottom: 20, left: 30},
     
    5974                .ticks(6);
    6075
    61         var div = d3.select("body")
     76        var tooltip = d3.select("body")
    6277                .append("div")
    6378                .attr("class", "tooltip")
     
    7792                        .call(yAxis)
    7893                        .append("text")
    79                         .attr("transform", "rotate(-90)")
    8094                        .attr("y", -15)
    8195                        .attr("dy", ".71em")
     
    92106                        .attr("height", function(d) { return height - y(d.value); })
    93107                        .on("mouseenter", function(d) {
    94                                 div.transition()
     108                                tooltip.transition()
    95109                                        .duration(500)
    96110                                        .style("opacity", 0);
    97                                 div.transition()
     111                                tooltip.transition()
    98112                                        .duration(200)
    99113                                        .style("opacity", .9);
    100                                 div.html(d.label + "<br /><strong>" + d.value + " <:shortcut_url:nb_click:></strong>")
     114                                tooltip.html(d.label + "<br /><strong>" + d.value + " <:shortcut_url:nb_click:></strong>")
    101115                                        .style("left", (d3.event.pageX) + "px")
    102116                                        .style("top", (d3.event.pageY - 28) + "px")
     
    104118                        })
    105119                        .on("mousemove", function (d) {
    106                                 if(d3.event.clientX && d3.event.clientY){
    107                                         div.style("left", (d3.event.clientX + 20)+ "px")
    108                                                 .style("top",(d3.event.clientY + 20) + "px");
     120                                if(d3.event.pageX && d3.event.pageY){
     121                                        tooltip.style("left", (d3.event.pageX + 20)+ "px")
     122                                                .style("top",(d3.event.pageY + 20) + "px");
    109123                                }
    110124                        }).on("mouseout", function (d) {
    111                                 return div.style("opacity", "0");
     125                                return tooltip.style("opacity", "0");
    112126                        });
    113127});
     
    135149                                </BOUCLE_liste_shortcut_url_click_graph>
    136150                        ];
    137 
     151                       
    138152                        var title_value = "<:shortcut_url:nb_click:>";
    139153
     
    141155                                width = 760 - margin.left - margin.right,
    142156                                height = 400 - margin.top - margin.bottom;
    143 
     157                       
    144158                        var parseDate = d3.time.format("%Y-%m-%d").parse;
    145159                        var tooltipDate = d3.time.format("%e %b");
    146 
     160                       
    147161                        var x = d3.time.scale()
    148162                                .range([0, width]);
     
    165179                                .y(function(d) { return y(d.value); });
    166180
    167                         var div = d3.select("body")
     181                        var tooltip = d3.select("body")
    168182                                .append("div")
    169183                                .attr("class", "tooltip")
     
    216230                                .attr("cy", function(d) { return y(d.value); })
    217231                                .on("mouseover", function(d) {
    218                                         div.transition()
     232                                        tooltip.transition()
    219233                                                .duration(500)
    220234                                                .style("opacity", 0);
    221                                         div.transition()
     235                                        tooltip.transition()
    222236                                                .duration(200)
    223237                                                .style("opacity", .9);
    224                                         div.html(tooltipDate(d.label) + "<br/>"  + d.value + " " + title_value)
     238                                        tooltip.html(tooltipDate(d.label) + "<br/>"  + d.value + " " + title_value)
    225239                                                .style("left", (d3.event.pageX) + "px")
    226240                                                .style("top", (d3.event.pageY - 28) + "px")
     
    228242                                })
    229243                                .on("mousemove", function (d) {
    230                                         div.style("left", (d3.event.pageX)+ "px")
     244                                        tooltip.style("left", (d3.event.pageX)+ "px")
    231245                                                .style("top",(d3.event.pageY - 48) + "px");
    232246                                })
    233247                                .on("mouseout", function(d) {
    234                                         div.style("opacity", 0);
     248                                        tooltip.style("opacity", 0);
    235249                                });
    236250
  • _plugins_/shortcut_url/trunk/prive/objets/editer/shortcut_url_logs_graphs.html

    r96547 r96867  
    3232<script type="text/javascript">
    3333
    34 var data = #INCLURE{fond=json/compteur_pays,id_shortcut_url};
     34var data = [(#INCLURE{fond=json/compteur_pays,id_shortcut_url}|trim)];
     35var data_full = [(#INCLURE{fond=json/compteur_pays,id_shortcut_url,limite=300}|trim)];
    3536
    3637$(document).ready(function($) {
    37 
     38        var scale = [1, 10, 50, 100, 500],
     39                colors = ["couleur1","couleur2","couleur3","couleur4","couleur5"];
     40        if(data.length > 0){
     41                max = d3.max(data, function(d) { return d.value+1; });
     42                if(max > 500){
     43                        var interval = (max - 500) / 5,
     44                                last = 500;
     45                        for (i = 0; i < 4; i++) {
     46                                last = last +interval;
     47                                scale.push(Math.floor(last));
     48                                colors.push("couleur"+(6+i));
     49                        }
     50                       
     51                        scale.push(max);
     52                        colors.push("couleur10");
     53                }
     54        }
    3855        // Affiche les stats sur la carte
    3956        var color = d3.scale.threshold()
    40                 .domain([1, 10, 20, 50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000])
    41                 .range(["couleur1", "couleur2", "couleur3", "couleur4", "couleur5", "couleur6", "couleur7", "couleur8", "couleur9", "couleur10"]);
     57                .domain(scale)
     58                .range(colors);
    4259
    4360        var width = 760,
     
    7693                for (var i = 0; i < collection.features.length; i++) {
    7794                        var iso2 = collection.features[i].properties.ISO2;
    78                         data.forEach(function(d) {
     95                        data_full.forEach(function(d) {
    7996                                        if(iso2 == d.label) {
    8097                                                color_fill[d.label] = color(d.value);
     
    116133
    117134        // Affiche les barres horizontales
    118         var margin = {top: 20, right:20, bottom: 20, left: 20},
     135        var margin = {top: 20, right:20, bottom: 20, left: 60},
    119136                width = 760 - margin.left - margin.right,
    120137                height = 300 - margin.top - margin.bottom;
     
    127144
    128145        var svg = d3.select("#bar").append("svg")
    129                 .attr("width", width + margin.right + margin.bottom)
    130                 .attr("height", height + margin.top + margin.left)
     146                .attr("width", width + margin.right + margin.left)
     147                .attr("height", height + margin.top + margin.bottom)
    131148                .append("g")
    132                 .attr("transform", "translate(" + margin.bottom + "," + margin.top + ")");
     149                .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
    133150
    134151        var tooltip2 = d3.select("body")
     
    148165                        .attr("transform", function(d) { return "translate(0," + y(d.label) + ")"; })
    149166                        .on("mouseenter", function (d,event) {
    150                                 if(d.value > 10)
    151                                         tooltip2.html("<strong>" + d.percent + " %</strong> ");
    152                                 else
    153                                         tooltip2.html("<strong>" + d.value + " <:shortcut_url:nb_click:></strong> (" + d.value + " %) ");
     167                                tooltip2.html("<strong>" + d.value + " <:shortcut_url:nb_click:></strong> (" + d.percent + " %) ");
    154168                                if(d3.event.pageX && d3.event.pageY) {
    155169                                        tooltip2.style("left", (d3.event.pageX +20)+ "px")
     
    166180                        });
    167181
    168                 bar.append("rect")
     182                bar.append("rect")
    169183                        .attr("width", function(d) { return x(d.value); })
    170184                        .attr("height", y.rangeBand());
    171 
    172                 bar.append("text")
    173                         .attr("class", "value")
    174                         .attr("x", function(d) { return x(d.value); })
    175                         .attr("y", y.rangeBand() / 2)
    176                         .attr("dx", -3)
    177                         .attr("dy", ".35em")
    178                         .attr("text-anchor", "end")
    179                         .text(function(d) {
    180                                 if(d.value > 10)
    181                                         return d.value + ' <:shortcut_url:nb_click:>'; }
    182                         );
    183185
    184186                svg.append("g")
     
    198200
    199201<script type="text/javascript">
    200 
     202        var d3_locale_fr = d3.locale({
     203                decimal: ".",
     204                thousands: " ",
     205                grouping: [ 3 ],
     206                currency: [ "$", "" ],
     207                dateTime: "%a %b %e %X %Y",
     208                date: "%m/%d/%Y",
     209                time: "%H:%M:%S",
     210                periods: [ "AM", "PM" ],
     211                days: [ "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ],
     212                shortDays: [ "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam" ],
     213                months: [ "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" ],
     214                shortMonths: [ "Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Aou", "Sep", "Oct", "Nov", "Déc" ]
     215        });
    201216        $(document).ready(function($) {
    202217                        var json = [
     
    215230                        var title_value = "<:shortcut_url:nb_click:>";
    216231
    217                         var margin = {top: 60, right: 60, bottom: 60, left: 60},
     232                        var margin = {top: 60, right: 60, bottom: 80, left: 60},
    218233                                width = 760 - margin.left - margin.right,
    219234                                height = 400 - margin.top - margin.bottom;
    220235
    221                         var parseDate = d3.time.format("%Y-%m-%d").parse;
    222                         var tooltipDate = d3.time.format("%e %b");
     236                        var parseDate = d3_locale_fr.timeFormat("%Y-%m-%d");
     237                        var tooltipDate = d3_locale_fr.timeFormat("%e %b");
    223238
    224239                        var x = d3.time.scale()
     
    231246                                .scale(x)
    232247                                .tickSize(-height)
     248                                .tickFormat(d3_locale_fr.timeFormat("%B %Y"))
    233249                                .tickSubdivide(1);
    234250
     
    254270
    255271                        json.forEach(function(d) {
    256                                 d.label = parseDate(d.label);
     272                                d.label = parseDate.parse(d.label);
    257273                                d.value = +d.value;
    258274                        });
Note: See TracChangeset for help on using the changeset viewer.