Subversion Repositories eFlore/Applications.cel

Rev

Rev 1765 | Rev 2385 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1765 Rev 2143
Line 2... Line 2...
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
Line 3... Line 3...
3
 
3
 
4
// in utf8
4
// in utf8
Line 5... Line 5...
5
// out utf8
5
// out utf8
6
 
6
 
7
// Fournit un référentiel relatif à l'utilisateur sur l'un des champs demandes 
7
// Fournit un référentiel relatif à l'utilisateur sur l'un des champs demandes
8
class SelfRefList extends Cel {
8
class SelfRefList extends Cel {
Line 9... Line 9...
9
	
9
 
10
	private $referentiels = array('station', 'lieudit', 'milieu');
10
	private $referentiels = array('station', 'lieudit', 'milieu');
11
 
11
 
12
	/**
12
	/**
13
	 * Suivant le type de référentiel donné en paramètre, renvoie les liste de ses éléments
13
	 * Suivant le type de référentiel donné en paramètre, renvoie les liste de ses éléments
14
	 * 
14
	 *
15
	 * uid[0] : utilisateur obligatoire
15
	 * uid[0] : utilisateur obligatoire
16
	 * uid[1] : referentiel demandé (obligatoire)
16
	 * uid[1] : referentiel demandé (obligatoire)
17
	 * $_GET["start"] et $GET_["limit"] : selection intervalle
17
	 * $_GET["start"] et $GET_["limit"] : selection intervalle
18
	 * $_GET["recherche"] : cherche les noms qui commmencent selon la valeur
18
	 * $_GET["recherche"] : cherche les noms qui commmencent selon la valeur
19
	 * 
-
 
20
	 */
19
	 *
21
	function getElement($uid){
20
	 */
22
		
21
	public function getElement($uid){
23
		   // Controle detournement utilisateur 
22
		// Controle detournement utilisateur
24
 	        $this->controleUtilisateur($uid[0]);
23
		$this->controleUtilisateur($uid[0]);
25
			 
24
 
26
			if (!$this->paramObligatoiresSontPresents($uid)) {
25
		if (!$this->paramObligatoiresSontPresents($uid)) {
27
				return;
26
			return;
28
			}
27
		}
29
			
28
 
30
			if($_GET['recherche'] == '*') {
29
		if ($_GET['recherche'] == '*') {
31
				$_GET['recherche'] = '%';
30
			$_GET['recherche'] = '%';
32
			}
-
 
33
			
-
 
34
			$referentiel_demande = $uid[1];
-
 
35
			
-
 
36
			$value=array();
-
 
37
	
-
 
38
           	$requete_referentiel = "SELECT DISTINCT ".$referentiel_demande." " .
31
		}
39
           							"FROM cel_obs WHERE ce_utilisateur = '".$uid[0]."' ";
-
 
40
           							
-
 
Line -... Line 32...
-
 
32
 
-
 
33
		$referentiel_demande = $uid[1];
-
 
34
		$idUtilisateur = Cel::db()->proteger($uid[0]);
-
 
35
 
-
 
36
		$requete = "SELECT DISTINCT $referentiel_demande " .
-
 
37
			'FROM cel_obs '.
41
           	if($this->filtreRechercheEstDemande()) { 
38
			"WHERE ce_utilisateur = '$idUtilisateur' ";
42
           		$requete_referentiel .= " AND ".$referentiel_demande." LIKE '".$_GET["recherche"]."%'";
39
		if ($this->filtreRechercheEstDemande()) {
-
 
40
			$requete .= " AND $referentiel_demande LIKE '".$_GET["recherche"]."%'";
-
 
41
		}
-
 
42
		if ($this->limiteEstDemandee()) {
-
 
43
			$requete .= " ORDER BY $referentiel_demande LIMIT ".$_GET['start'].','.$_GET['limit'];
-
 
44
		}
-
 
45
		$resultat = Cel::db()->requeter($requete);
-
 
46
 
43
           	}
47
		$referentiel = array();
44
 
48
		foreach ($resultat as $cle => $valeur) {
45
			if ($this->limiteEstDemandee()) {
-
 
46
				$requete_referentiel .= " ORDER BY '.$referentiel_demande.' LIMIT ".$_GET["start"].",".$_GET["limit"];
-
 
47
			}
-
 
48
		
-
 
49
		    $referentiel_resultat = Cel::db()->executerRequete($requete_referentiel);
-
 
50
		    $referentiel = array();
-
 
51
		    
-
 
52
		    foreach($referentiel_resultat as $cle => $valeur) {
-
 
53
		    	if($this->estUneValeurValide($valeur[$referentiel_demande])) {
49
			if ($this->estUneValeurValide($valeur[$referentiel_demande])) {
54
		    		$referentiel[] = $valeur[$referentiel_demande];
-
 
55
		    	}
50
				$referentiel[] = $valeur[$referentiel_demande];
56
 
51
			}
57
		    }
52
 
58
		
53
		}
59
		$this->envoyerJson($referentiel);			
54
		$this->envoyerJson($referentiel);
60
		return true;	
-
 
61
	}
55
		return true;
62
	
56
	}
63
	function paramObligatoiresSontPresents($uid) {
57
 
64
		
58
	private function paramObligatoiresSontPresents($uid) {
65
		return (isset($uid[1]) && in_array($uid[1],$this->referentiels) && (isset($uid[0]) && $uid[0] != ""));
59
		return (isset($uid[1]) && in_array($uid[1], $this->referentiels) && (isset($uid[0]) && $uid[0] != ''));
66
	}
60
	}
67
	
61
 
68
	function filtreRechercheEstDemande() {
62
	private function filtreRechercheEstDemande() {
69
		return (isset($_GET["recherche"]) && trim($_GET["recherche"]) != "");
63
		return (isset($_GET['recherche']) && trim($_GET['recherche']) != '');
70
	}
64
	}
71
	
65
 
72
	function limiteEstDemandee() {
66
	private function limiteEstDemandee() {
73
		return isset($_GET["start"]) && is_numeric($_GET["start"]) && isset($_GET["limit"]) && is_numeric($_GET["limit"]);
67
		return isset($_GET['start']) && is_numeric($_GET['start']) && isset($_GET['limit']) && is_numeric($_GET['limit']);
74
	}
68
	}
75
	
-
 
76
	function estUneValeurValide($chaine) {
-
 
77
		return ($chaine != null && $chaine != "000null" &&  trim($chaine) != "");
69
 
-
 
70
	private function estUneValeurValide($chaine) {
78
	}
71
		return ($chaine != null && $chaine != '000null' &&  trim($chaine) != '');