Subversion Repositories eFlore/Applications.cel

Rev

Rev 696 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
/**
 * Service fournissant des urls vers des images de graphiques sur les statistiques de l'application CEL.
 * Encodage en entrée : utf8
 * Encodage en sortie : utf8
 *
 * Cas d'utilisation :
 * /CelStatistique/TypeDeGraph : retourne le graphique demandé
 * Paramêtres :
 * serveur=[0-9] : retourne le graphique demandé sur le serveur numéro 0 à 9 (voir http://code.google.com/intl/fr/apis/chart/docs/making_charts.html#enhancements )
 *
 * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
 * @version $Id$
 * @copyright 2009
 */
class CelStatistiqueTxt extends Cel {

        /**
         * Méthode appelée avec une requête de type GET.
         */
        public function getElement($param) {
                $graph = null;
                $serveur = '';

                if (isset($param[0])) {
                        $stat_demande = array_shift($param);
                        $methode = 'get'.$stat_demande;
                        if (method_exists($this, $methode)) {
                                $stats = $this->$methode($param);
                        } else {
                                $this->messages[] = "Ce type de statistiques '$stat_demande' n'est pas disponible.";
                        }
                } else {
                        $this->messages[] = "Le premier paramêtre du service CEL StatistiqueTxt doit correspondre au type de statistique.";
                }

                if (!is_null($stats)) {
                        $this->envoyerJson($stats);
                }
        }
        
        private function getNombres($param) {
                $utilisateur = isset($_GET['utilisateur']) ? $this->bdd->quote($_GET['utilisateur']) : null;
                
                $requete =      'SELECT COUNT(id) AS nbre '.
                                        'FROM cel_inventory '.
                                        ((isset($utilisateur)) ? "WHERE identifiant = $utilisateur " : '');
                $info['observations'] = $this->executerRequete($requete, 'Column');
                                
                $requete =      "SELECT COUNT(ci_id_image) AS nbre ".
                        "FROM cel_images ".
                        ((isset($utilisateur)) ? "WHERE ci_ce_utilisateur = $utilisateur " : '');
                $info['images'] = $this->executerRequete($requete, 'Column');
                
                
                $requete =      'SELECT COUNT(ci_id_image) AS nbre '.
                        'FROM cel_obs_images LEFT JOIN cel_images ON (coi_ce_image = ci_id_image) '.
                        "WHERE ci_meta_date_ajout != '0000-00-00 00:00:00' ".
                        ((isset($utilisateur)) ? " AND ci_ce_utilisateur = $utilisateur " : '');
                $info['imagesLiees'] = $this->executerRequete($requete, 'Column');
                
                return $info;           
        }
}
?>