<?php
/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
+ * Copyright (C) 2003-2009 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
function handlers()
{
return array(
- 'stats' => $this->make_hook('stats', AUTH_COOKIE),
- 'stats/evolution' => $this->make_hook('evolution', AUTH_COOKIE),
- 'stats/graph' => $this->make_hook('graph', AUTH_COOKIE),
- 'stats/graph/evolution'
- => $this->make_hook('graph_evo', AUTH_COOKIE),
- 'stats/promos' => $this->make_hook('promos', AUTH_COOKIE),
-
- 'stats/coupures' => $this->make_hook('coupures', AUTH_PUBLIC),
+ 'stats' => $this->make_hook('stats', AUTH_COOKIE),
+ 'stats/evolution' => $this->make_hook('evolution', AUTH_COOKIE),
+ 'stats/graph' => $this->make_hook('graph', AUTH_COOKIE),
+ 'stats/graph/evolution' => $this->make_hook('graph_evo', AUTH_COOKIE),
+ 'stats/promos' => $this->make_hook('promos', AUTH_COOKIE),
+
+ 'stats/coupures' => $this->make_hook('coupures', AUTH_PUBLIC),
);
}
function handler_graph_evo(&$page, $jours = 365)
{
- global $globals;
-
define('DUREEJOUR',24*3600);
//recupere le nombre d'inscriptions par jour sur la plage concernée
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
// 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) {
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);
function handler_graph(&$page, $promo = null)
{
- global $globals;
-
if ($promo == 'all') {
// date de départ
- $depart = 1920;
+ $depart = 1930;
//recupere le nombre d'inscriptions par jour sur la plage concernée
$res = XDB::iterRow(
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}
//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
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
function handler_promos(&$page, $promo = null)
{
- global $globals;
-
$page->changeTpl('stats/nb_by_promo.tpl');
$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;
function handler_coupures(&$page, $cp_id = null)
{
- global $globals;
-
$page->changeTpl('stats/coupure.tpl');
if (!is_null($cp_id)) {
- $res = XDB::query("SELECT UNIX_TIMESTAMP(debut) AS debut,
- TIME_FORMAT(duree,'%kh%i') AS duree,
- resume, description, services
- FROM coupures
- WHERE id = {?}", $cp_id);
+ $res = XDB::query("SELECT debut,
+ TIME_FORMAT(duree,'%kh%i') AS duree,
+ resume, description, services
+ FROM coupures
+ WHERE id = {?}", $cp_id);
$cp = $res->fetchOneAssoc();
}
- if($cp) {
+ if(@$cp) {
$cp['lg_services'] = serv_to_str($cp['services']);
$page->assign_by_ref('cp',$cp);
} else {
$beginning_date = date("Ymd", time() - 3600*24*21) . "000000";
- $sql = "SELECT id, UNIX_TIMESTAMP(debut) AS debut, resume, services
+ $sql = "SELECT id, debut, resume, services
FROM coupures where debut > '$beginning_date' order by debut desc";
$page->assign('coupures', XDB::iterator($sql));
+ $res = XDB::iterator("SELECT host, text
+ FROM mx_watch
+ WHERE state != 'ok'");
+ $page->assign('mxs', $res);
}
}
}
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>