Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2037 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 les noms ou les valeurs des champs étendus 
7
// Fournit un référentiel relatif à l'utilisateur sur les noms ou les valeurs des champs étendus
8
class NomsChampsEtendus extends Cel {
8
class NomsChampsEtendus extends Cel {
9
	
9
 
10
	/**
10
	/**
11
	 * Suivant le type de référentiel donné en paramètre, renvoie les liste de ses éléments
11
	 * Suivant le type de référentiel donné en paramètre, renvoie les liste de ses éléments
12
	 * 
12
	 *
13
	 * uid[0] : "cle" ou "valeur"
13
	 * uid[0] : "cle" ou "valeur"
14
	 * $_GET["start"] et $GET_["limit"] : selection intervalle
14
	 * $_GET["start"] et $GET_["limit"] : selection intervalle
15
	 * $_GET["cle"] : restreint la recherche sur les valeurs d'une certaine clé
-
 
16
	 * $_GET["recherche"] : cherche les noms qui commmencent selon la valeur
15
	 * $_GET["cle"] : restreint la recherche sur les valeurs d'une certaine clé
17
	 * 
16
	 * $_GET["recherche"] : cherche les noms qui commmencent selon la valeur
18
	 */
-
 
19
	function getElement($uid){
17
	 */
20
					 
18
	function getElement($uid){
21
		if (!$this->paramObligatoiresSontPresents($uid)) {
19
		if (!$this->paramObligatoiresSontPresents($uid)) {
Line 22... Line 20...
22
			return;
20
			return;
23
		}
21
		}
24
 
22
 
25
		$_GET['recherche'] = str_replace('*', '%', $_GET['recherche']);
23
		$_GET['recherche'] = str_replace('*', '%', $_GET['recherche']);
26
		$referentiel = array();
24
		$referentiel = array();
27
		
25
 
28
		if($uid[0] == "cle") {
26
		if($uid[0] == "cle") {
29
			$referentiel = $this->rechercherCles($_GET['recherche']);
27
			$referentiel = $this->rechercherCles($_GET['recherche']);
Line 30... Line 28...
30
		} else if($uid[0] == "valeur") {
28
		} else if($uid[0] == "valeur") {
31
			$referentiel = $this->rechercherValeurs($_GET['cle'], $_GET['recherche']);
29
			$referentiel = $this->rechercherValeurs($_GET['cle'], $_GET['recherche']);
32
		}
30
		}
33
 
31
 
34
		$this->envoyerJson($referentiel);			
32
		$this->envoyerJson($referentiel);
35
		return true;	
33
		return true;
36
	}
34
	}
37
	
35
 
38
	function rechercherCles($recherche_cle) {
36
	function rechercherCles($recherche_cle) {
-
 
37
		$requete = "SELECT DISTINCT cle, label FROM cel_obs_etendues WHERE ".
39
		$requete = "SELECT DISTINCT cle, label FROM cel_obs_etendues WHERE ".
38
			"cle LIKE ".Cel::db()->proteger($recherche_cle)." OR ".
40
					"cle LIKE ".Cel::db()->proteger($recherche_cle)." OR ".
-
 
41
					"label LIKE ".Cel::db()->proteger($recherche_cle)." ";
39
			"label LIKE ".Cel::db()->proteger($recherche_cle)." ";
42
		$referentiel_resultat = Cel::db()->executerRequete($requete);
40
		$resultat = Cel::db()->requeter($requete);
43
		$referentiel = array();
41
 
44
		
-
 
45
		foreach($referentiel_resultat as $valeur) {
42
		$referentiel = array();
46
			$referentiel[$valeur['cle']] = $valeur['label'];
43
		foreach($resultat as $valeur) {
47
		}
44
			$referentiel[$valeur['cle']] = $valeur['label'];
48
		
45
		}
49
		return $referentiel;
46
		return $referentiel;
50
	}
47
	}
51
	
48
 
Line 52... Line 49...
52
	function rechercherValeurs($cle, $recherche_valeur) {
49
	function rechercherValeurs($cle, $recherche_valeur) {
53
		$requete = "SELECT DISTINCT valeur FROM cel_obs_etendues WHERE ".
50
		$requete = "SELECT DISTINCT valeur FROM cel_obs_etendues WHERE ".
54
					"cle = ".Cel::db()->proteger($cle)." AND ".
51
			"cle = ".Cel::db()->proteger($cle)." AND ".
55
		            "valeur LIKE ".Cel::db()->proteger($recherche_valeur.'%')." ";
52
			"valeur LIKE ".Cel::db()->proteger($recherche_valeur.'%')." ";
56
 
53
 
57
		$referentiel_resultat = Cel::db()->executerRequete($requete);
54
		$referentiel_resultat = Cel::db()->requeter($requete);
58
		$referentiel = array();
55
		$referentiel = array();
59
		
56
 
60
		foreach($referentiel_resultat as $valeur) {
57
		foreach ($referentiel_resultat as $valeur) {
61
			if(trim($valeur['valeur']) != "") {
58
			if (trim($valeur['valeur']) != '') {
62
				$referentiel[] = $valeur['valeur'];
59
				$referentiel[] = $valeur['valeur'];
63
			}
60
			}
64
		}
-
 
65
		return $referentiel;
61
		}
66
	}
62
		return $referentiel;
67
	
63
	}
68
	function paramObligatoiresSontPresents($uid) {
64
 
69
		
65
	function paramObligatoiresSontPresents($uid) {
70
		return (isset($uid[0]) && ($uid[0] == "cle" || $uid[0] == "valeur"));
66
		return (isset($uid[0]) && ($uid[0] == 'cle' || $uid[0] == 'valeur'));
71
	}
67
	}
72
	
68
 
73
	function filtreRechercheEstDemande() {
69
	function filtreRechercheEstDemande() {
74
		return (isset($_GET["recherche"]) && trim($_GET["recherche"]) != "");
70
		return (isset($_GET["recherche"]) && trim($_GET["recherche"]) != '');
75
	}
71
	}
76
	
72
 
77
	function limiteEstDemandee() {
73
	function limiteEstDemandee() {
78
		return isset($_GET["start"]) && is_numeric($_GET["start"]) && isset($_GET["limit"]) && is_numeric($_GET["limit"]);
74
		return isset($_GET["start"]) && is_numeric($_GET["start"]) && isset($_GET["limit"]) && is_numeric($_GET["limit"]);
79
	}
-
 
80
	
-
 
81
	function estUneValeurValide($chaine) {
75
	}
-
 
76
 
82
		return ($chaine != null && $chaine != "000null" &&  trim($chaine) != "");
77
	function estUneValeurValide($chaine) {