[SPIP] ~version 3.0.7-->3.0.10
[ptitvelo/web/www.git] / www / plugins-dist / statistiques / prive / squelettes / contenu / stats_repartition_fonctions.php
index bf7d12b..900d8ea 100644 (file)
@@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/presentation');
 
 // http://doc.spip.org/@enfants
-function enfants($id_parent, $critere, &$nombre_vis, &$nombre_abs){
+function enfants($id_parent, $critere, &$nombre_branche, &$nombre_rub){
        $result = sql_select("id_rubrique", "spip_rubriques", "id_parent=".intval($id_parent));
 
        $nombre = 0;
@@ -24,12 +24,12 @@ function enfants($id_parent, $critere, &$nombre_vis, &$nombre_abs){
                $id_rubrique = $row['id_rubrique'];
 
                $visites = intval(sql_getfetsel("SUM(".$critere.")", "spip_articles", "id_rubrique=".intval($id_rubrique)));
-               $nombre_abs[$id_rubrique] = $visites;
-               $nombre_vis[$id_rubrique] = $visites;
-               $nombre += $visites + enfants($id_rubrique, $critere, $nombre_vis, $nombre_abs);
+               $nombre_rub[$id_rubrique] = $visites;
+               $nombre_branche[$id_rubrique] = $visites;
+               $nombre += $visites + enfants($id_rubrique, $critere, $nombre_branche, $nombre_rub);
        }
-       if (!isset($nombre_vis[$id_parent])) $nombre_vis[$id_parent]=0;
-       $nombre_vis[$id_parent] += $nombre;
+       if (!isset($nombre_branche[$id_parent])) $nombre_branche[$id_parent]=0;
+       $nombre_branche[$id_parent] += $nombre;
        return $nombre;
 }
 
@@ -37,19 +37,21 @@ function enfants($id_parent, $critere, &$nombre_vis, &$nombre_abs){
 // http://doc.spip.org/@enfants_aff
 function enfants_aff($id_parent,$decalage, $taille, $critere, $gauche=0) {
        global $spip_lang_right, $spip_lang_left;
-       static $abs_total=null;
+       static $total_site=null;
        static $niveau=0;
-       static $nombre_vis;
-       static $nombre_abs;
-       if (is_null($abs_total)){
-               $nombre_vis = array();
-               $nombre_abs = array();
-               $abs_total = enfants(0, $critere, $nombre_vis, $nombre_abs);
-               if ($abs_total<1) $abs_total=1;
-               $nombre_vis[0] = 0;
+       static $nombre_branche;
+       static $nombre_rub;
+       if (is_null($total_site)){
+               $nombre_branche = array();
+               $nombre_rub = array();
+               $total_site = enfants(0, $critere, $nombre_branche, $nombre_rub);
+               if ($total_site<1) $total_site=1;
        }
        $visites_abs = 0;
        $out = "";
+       $width = intval(floor(($nombre_branche[$id_parent]/$total_site)*$taille));
+       $width = "width:{$width}px;float:$spip_lang_left;";
+
 
        $result = sql_select("id_rubrique, titre, descriptif", "spip_rubriques", "id_parent=$id_parent",'', '0+titre,titre');
 
@@ -58,11 +60,11 @@ function enfants_aff($id_parent,$decalage, $taille, $critere, $gauche=0) {
                $titre = typo($row['titre']);
                $descriptif = attribut_html(couper(typo($row['descriptif']),80));
 
-               if ($nombre_vis[$id_rubrique]>0 OR $nombre_abs[$id_rubrique]>0){
-                       $largeur_rouge = floor(($nombre_vis[$id_rubrique] - $nombre_abs[$id_rubrique]) * $taille / $abs_total);
-                       $largeur_vert = floor($nombre_abs[$id_rubrique] * $taille / $abs_total);
+               if ($nombre_branche[$id_rubrique]>0 OR $nombre_rub[$id_rubrique]>0){
+                       $largeur_branche = floor(($nombre_branche[$id_rubrique] - $nombre_rub[$id_rubrique]) * $taille / $total_site);
+                       $largeur_rub = floor($nombre_rub[$id_rubrique] * $taille / $total_site);
                        
-                       if ($largeur_rouge+$largeur_vert>0){
+                       if ($largeur_branche+$largeur_rub>0){
                                        
                                if ($niveau == 0) {
                                        $couleur="#cccccc";
@@ -79,23 +81,19 @@ function enfants_aff($id_parent,$decalage, $taille, $critere, $gauche=0) {
                                $out .= "\n<td style='border-bottom: 1px solid #aaaaaa; padding-$spip_lang_left: ".($niveau*20+5)."px;'>";
 
                                
-                               if ( $largeur_rouge > 2) 
+                               if ( $largeur_branche > 2) 
                                        $out .= bouton_block_depliable("<a href='" . generer_url_entite($id_rubrique,'rubrique') . "' style='color: black;' title=\"$descriptif\">$titre</a>","incertain", "stats$id_rubrique");
                                else
-                                       $out .= "<div class='verdana1' style='padding-left: 18px; padding-top: 4px; padding-bottom: 3px;'>"
+                                       $out .= "<div class='rubsimple' style='padding-left: 18px;'>"
                                                . "<a href='" . generer_url_entite($id_rubrique,'rubrique') . "' style='color: black;' title=\"$descriptif\">$titre</a>"
                                                . "</div>";
                                $out .= "</td>";
                                
-                               
-                               if ($niveau==0 OR 1==1){
-                                       $pourcent = round($nombre_vis[$id_rubrique]/$abs_total*1000)/10;
-                                       $out .= "\n<td class='verdana1' style='text-align: $spip_lang_right; width: 40px; border-bottom: 1px solid #aaaaaa;'>$pourcent%</td>";
-                               }
-                               else {
-                                       $out .= "<td style='width: 10px; border-bottom: 1px solid #aaaaaa;'></td>";
-                               }
-                               
+
+                               // pourcentage de visites dans la branche par rapport au total du site
+                               $pourcent = round($nombre_branche[$id_rubrique]/$total_site*1000)/10;
+                               $out .= "\n<td class='verdana1' style='text-align: $spip_lang_right; width: 40px; border-bottom: 1px solid #aaaaaa;'>$pourcent%</td>";
+
                                
                                $out .= "\n<td align='right' style='border-bottom: 1px solid #aaaaaa; width:" . ($taille+5) ."px'>";
                                
@@ -104,24 +102,24 @@ function enfants_aff($id_parent,$decalage, $taille, $critere, $gauche=0) {
                                $out .= "\n<tr>";
                                if ($gauche > 0) $out .= "<td style='width: " .$gauche."px'></td>";
                                $out .= "\n<td style='border: 0px; white-space: nowrap;'>";
-                               $out .= "<div style='border: 1px solid #999999; background-color: #dddddd; height: 12px; padding: 0px; margin: 0px;'>";
-                               if ($visites_abs > 0) $out .= "<img src='" . chemin_image('rien.gif') . "' style='vertical-align: top; height: 12px; border: 0px; width: ".$visites_abs."px;' alt= ' '/>";
-                               if ($largeur_rouge>0) $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_cumul' style='vertical-align: top; height: 12px; border: 0px; width: " . $largeur_rouge . "px;' alt=' ' />";
-                               if ($largeur_vert>0) $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_nombre' style='vertical-align: top; width: " . $largeur_vert ."px; height: 12px; border: 0px' alt=' ' />";
+                               $out .= "<div style='border: 1px solid #999999; background-color: #dddddd; height: 1em; padding: 0px; margin: 0px;$width'>";
+                               if ($visites_abs > 0) $out .= "<img src='" . chemin_image('rien.gif') . "' style='vertical-align: top; height: 1em; border: 0px; width: ".$visites_abs."px;' alt= ' '/>";
+                               if ($largeur_branche>0) $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_cumul' style='vertical-align: top; height: 1em; border: 0px; width: " . $largeur_branche . "px;' alt=' ' />";
+                               if ($largeur_rub>0) $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_nombre' style='vertical-align: top; width: " . $largeur_rub ."px; height: 1em; border: 0px' alt=' ' />";
                                $out .= "</div>";
                                $out .= "</td></tr></table>\n";
                                $out .= "</td></tr></table>";
                        }       
                }
                
-               if (isset($largeur_rouge) && ($largeur_rouge > 0)) {
+               if (isset($largeur_branche) && ($largeur_branche > 0)) {
                        $niveau++;
                        $out .= debut_block_depliable(false,"stats$id_rubrique");
-                       $out .= enfants_aff($id_rubrique,$largeur_rouge, $taille, $critere, $visites_abs+$gauche);
+                       $out .= enfants_aff($id_rubrique,$largeur_branche, $taille, $critere, $visites_abs+$gauche);
                        $out .= fin_block();
                        $niveau--;
                }
-               $visites_abs = $visites_abs + round($nombre_vis[$id_rubrique]/$abs_total*$taille);
+               $visites_abs = $visites_abs + round($nombre_branche[$id_rubrique]/$total_site*$taille);
        }
        return $out;
 }