Subversion Repositories eFlore/Applications.cel

Rev

Rev 756 | Rev 878 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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