Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
416 aurelien 1
<?php
848 aurelien 2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
416 aurelien 3
 
4
// in : utf8
5
// out : utf8
6
 
757 aurelien 7
/**
8
 * Liste les date de releves par utilisateur
9
 *
10
 * uid[0] : utilisateur obligatoire
11
 * uid[1] : si absent : valeur 'all' (annee)
12
 * uid[2] : si absent : valeur 'all' (mois)
13
 * uid[3] : si absent : valeur 'all' (jour)
14
 **/
15
class InventoryDateList extends Cel {
416 aurelien 16
 
757 aurelien 17
	private $correspondance_fonction = array(1 => 'year', 2 => 'month', 3 => 'day');
416 aurelien 18
 
19
 
20
	function getElement($uid){
21
 
22
		   // Controle detournement utilisateur
23
		    session_start();
24
		 	$this->controleUtilisateur($uid[0]);
757 aurelien 25
 
26
			$condition_requete = $this->traiterParametresEtConstruireRequete($uid);
416 aurelien 27
 
757 aurelien 28
		   	$requete_liste_dates = 'SELECT DISTINCT '.
29
	    			'date_observation AS id '.
848 aurelien 30
	           		'FROM cel_obs WHERE '.$condition_requete.' '.
757 aurelien 31
	           		'ORDER BY date_observation';
32
 
33
		    $liste_dates = $this->executerRequete($requete_liste_dates);
34
 
35
	        $liste_dates = $this->formaterListeResultats($liste_dates);
36
 
37
			$output = json_encode($liste_dates);
38
			print($output);
416 aurelien 39
 
757 aurelien 40
			return true;
41
	}
42
 
43
	private function formaterListeResultats($liste_dates) {
416 aurelien 44
 
757 aurelien 45
		if (!$liste_dates) {
46
    	    $liste_dates = array();
47
        }
48
 
49
    	foreach($liste_dates as &$date) {
50
    		$date_heures = split(' ',$date['id']);
51
    		if(count($date_heures) > 1) {
52
    			$date = $date_heures[0];
53
    		}
54
 
55
    		$date = $date;
56
        }
57
 
58
        return $liste_dates;
59
	}
416 aurelien 60
 
757 aurelien 61
	private function traiterParametresEtConstruireRequete($params) {
416 aurelien 62
 
848 aurelien 63
		$requete_condition = ' ce_utilisateur = '.$this->proteger($params[0]);
416 aurelien 64
 
757 aurelien 65
		$taille_tableau_parametres = count($params);
66
		for($i=1; $i <= $taille_tableau_parametres; $i++) {
67
			if($this->estUnParametreDate($params[$i])) {
68
				$fonction_date = $this->correspondance_fonction[$i];
69
				$requete_condition .= ' AND '.$fonction_date.'(date_observation) = '.$this->proteger($params[$i]);
70
			}
71
		}
416 aurelien 72
 
757 aurelien 73
		return $requete_condition;
416 aurelien 74
	}
75
 
757 aurelien 76
	private function estUnParametreDate($valeur) {
77
		 return is_numeric($valeur) && $valeur != "all";
78
	}
416 aurelien 79
}
80
 
81
 
82
/* +--Fin du code ---------------------------------------------------------------------------------------+
83
* $Log$
84
* Revision 1.4  2008-01-30 08:57:28  ddelon
85
* fin mise en place mygwt
86
*
87
* Revision 1.3  2007-05-22 12:54:09  ddelon
88
* Securisation acces utilisateur
89
*
90
*
91
*
92
*/
93
 
94
 
95
 
96
?>