Google Apps code polishing.
[platal.git] / modules / stats.php
index c6f12e7..6d97fcd 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2007 Polytechnique.org                              *
+ *  Copyright (C) 2003-2008 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -22,7 +22,7 @@
 function serv_to_str($params) {
     $flags = explode(',',$params);
     $trad = Array('web' => 'site web', 'mail'=> 'redirection mail',
-                  'smtp' => 'serveur sécurisé d\'envoi de mails',
+                  'smtp' => 'serveur sécurisé d\'envoi de mails',
                   'nntp' => 'serveur des forums de discussion');
     $ret = Array();
     foreach ($flags as $flag) {
@@ -62,24 +62,23 @@ class StatsModule extends PLModule
     {
         define('DUREEJOUR',24*3600);
 
-        //recupere le nombre d'inscriptions par jour sur la plage concernée
+        //recupere le nombre d'inscriptions par jour sur la plage concernée
         $res = XDB::iterRow(
                 "SELECT  IF( date_ins>DATE_SUB(NOW(),INTERVAL $jours DAY),
                              TO_DAYS(date_ins)-TO_DAYS(NOW()),
                             ".(-($jours+1)).") AS jour,
                          COUNT(user_id) AS nb
-                   FROM  auth_user_md5 
-                  WHERE  perms IN ('admin','user')
+                   FROM  auth_user_md5
+                  WHERE  perms IN ('admin','user') AND deces = 0
                GROUP BY  jour");
 
         //genere des donnees compatibles avec GNUPLOT
         $inscrits='';
 
-        // la première ligne contient le total des inscrits avant la date de départ (J - $jours)
+        // la première ligne contient le total des inscrits avant la date de départ (J - $jours)
         list(,$init_nb) = $res->next();
-        $total = $init_nb;
-
-        list($numjour, $nb) = $res->next();
+        $total    = $init_nb;
+        $numjour = - $jours - 1;
 
         for ($i = -$jours; $i<=0; $i++) {
             if ($numjour<$i) {
@@ -92,10 +91,11 @@ class StatsModule extends PLModule
             $inscrits .= date('d/m/y',$i*DUREEJOUR+time())." ".$total."\n";
         }
 
-        //Genere le graphique à la volée avec GNUPLOT
+        //Genere le graphique à la volée avec GNUPLOT
         header( "Content-type: image/png");
 
         $delt = ($total - $init_nb)/10;
+        $delt = $delt ? $delt : 5;
         $ymin = round($init_nb - $delt,0);
         $ymax = round($total   + $delt,0);
 
@@ -124,10 +124,10 @@ EOF2;
     function handler_graph(&$page, $promo = null)
     {
         if ($promo == 'all') {
-            // date de départ
-            $depart = 1920;
+            // date de départ
+            $depart = 1930;
 
-            //recupere le nombre d'inscriptions par jour sur la plage concernée
+            //recupere le nombre d'inscriptions par jour sur la plage concernée
             $res = XDB::iterRow(
                     "SELECT  promo, SUM(perms IN ('admin', 'user')) / COUNT(*) * 100
                        FROM  auth_user_md5
@@ -137,7 +137,7 @@ EOF2;
             //genere des donnees compatibles avec GNUPLOT
             $inscrits='';
 
-            // la première ligne contient le total des inscrits avant la date de départ
+            // la première ligne contient le total des inscrits avant la date de départ
             list($annee, $nb) = $res->next();
 
             for ($i = $depart; $i <= date("Y"); $i++) {
@@ -151,7 +151,7 @@ EOF2;
                     $inscrits .= $i.' '.$nb."\n";
             }
 
-            //Genere le graphique à la volée avec GNUPLOT
+            //Genere le graphique à la volée avec GNUPLOT
             $fin = $i+2;
 
             $gnuplot = <<<EOF2
@@ -164,7 +164,7 @@ set timefmt "%d/%m/%y"
 set xr [$depart:$fin]
 set yr [0:100]
 
-set title "Nombre d'inscrits par promotion depuis $depart."
+set title "Proportion d'inscrits par promotion depuis $depart, en %."
 
 plot "-" using 1:2 title 'inscrits' with boxes;
 {$inscrits}
@@ -175,27 +175,27 @@ EOF2;
             //nombre de jours sur le graph
             $jours = 365;
             define('DUREEJOUR',24*3600);
-            $res = XDB::query("SELECT min(TO_DAYS(date_ins)-TO_DAYS(now()))
-                                           FROM auth_user_md5
-                                          WHERE promo = {?}
-                                                AND perms IN ('admin', 'user')",
-                                        $promo);
+            $res = XDB::query(
+                    "SELECT  min(TO_DAYS(date_ins)-TO_DAYS(now()))
+                       FROM  auth_user_md5
+                      WHERE  promo = {?} AND perms IN ('admin', 'user') AND deces = 0",
+                    $promo);
             $jours = -$res->fetchOneCell();
 
-            //recupere le nombre d'inscriptions par jour sur la plage concernée
+            //recupere le nombre d'inscriptions par jour sur la plage concernée
             $res = XDB::iterRow(
                     "SELECT  IF( date_ins>DATE_SUB(NOW(),INTERVAL $jours DAY),
                                  TO_DAYS(date_ins)-TO_DAYS(NOW()),
                                 ".(-($jours+1)).") AS jour,
                              COUNT(user_id) AS nb
-                       FROM  auth_user_md5 
-                      WHERE  promo = {?} AND perms IN ('admin','user')
+                       FROM  auth_user_md5
+                      WHERE  promo = {?} AND perms IN ('admin','user') AND deces = 0
                    GROUP BY  jour", $promo);
 
             //genere des donnees compatibles avec GNUPLOT
             $inscrits='';
 
-            // la première ligne contient le total des inscrits avant la date de départ (J - $jours)
+            // la première ligne contient le total des inscrits avant la date de départ (J - $jours)
             list(,$init_nb) = $res->next();
             $total = $init_nb;
 
@@ -212,7 +212,7 @@ EOF2;
                 $inscrits .= date('d/m/y',$i*DUREEJOUR+time())." ".$total."\n";
             }
 
-            //Genere le graphique à la volée avec GNUPLOT
+            //Genere le graphique à la volée avec GNUPLOT
             $delt = ($total - $init_nb) / 10;
             $delt += ($delt < 1);
             $ymin = round($init_nb - $delt,0);
@@ -249,7 +249,7 @@ EOF2;
         $res = XDB::iterRow(
                 "SELECT  promo,COUNT(*)
                    FROM  auth_user_md5
-                  WHERE  promo > 1900 AND perms IN ('admin','user')
+                  WHERE  promo > 1900 AND perms IN ('admin','user') AND deces = 0
                GROUP BY  promo
                ORDER BY  promo");
         $max=0; $min=3000;
@@ -297,4 +297,5 @@ EOF2;
     }
 }
 
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
 ?>