Subversion Repositories eFlore/Applications.cel

Rev

Rev 798 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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