Subversion Repositories eFlore/Applications.cel

Rev

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

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