Subversion Repositories eFlore/Applications.cel

Rev

Rev 798 | Details | Compare with Previous | Last modification | View Log | RSS feed

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