Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1939 Rev 2037
1
<?php
1
<?php
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
3
 
3
 
4
// in utf8
4
// in utf8
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é
15
	 * $_GET["cle"] : restreint la recherche sur les valeurs d'une certaine clé
16
	 * $_GET["recherche"] : cherche les noms qui commmencent selon la valeur
16
	 * $_GET["recherche"] : cherche les noms qui commmencent selon la valeur
17
	 * 
17
	 * 
18
	 */
18
	 */
19
	function getElement($uid){
19
	function getElement($uid){
20
					 
20
					 
21
		if (!$this->paramObligatoiresSontPresents($uid)) {
21
		if (!$this->paramObligatoiresSontPresents($uid)) {
22
			return;
22
			return;
23
		}
23
		}
24
 
24
 
25
		$_GET['recherche'] = str_replace('*', '%', $_GET['recherche']);
25
		$_GET['recherche'] = str_replace('*', '%', $_GET['recherche']);
26
		$referentiel = array();
26
		$referentiel = array();
27
		
27
		
28
		if($uid[0] == "cle") {
28
		if($uid[0] == "cle") {
29
			$referentiel = $this->rechercherCles($_GET['recherche']);
29
			$referentiel = $this->rechercherCles($_GET['recherche']);
30
		} else if($uid[0] == "valeur") {
30
		} else if($uid[0] == "valeur") {
31
			$referentiel = $this->rechercherValeurs($_GET['cle'], $_GET['recherche']);
31
			$referentiel = $this->rechercherValeurs($_GET['cle'], $_GET['recherche']);
32
		}
32
		}
33
 
33
 
34
		$this->envoyerJson($referentiel);			
34
		$this->envoyerJson($referentiel);			
35
		return true;	
35
		return true;	
36
	}
36
	}
37
	
37
	
38
	function rechercherCles($recherche_cle) {
38
	function rechercherCles($recherche_cle) {
39
		$requete = "SELECT DISTINCT cle, label FROM cel_obs_etendues WHERE ".
39
		$requete = "SELECT DISTINCT cle, label FROM cel_obs_etendues WHERE ".
40
					"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)." ";
41
					"label LIKE ".Cel::db()->proteger($recherche_cle)." ";
42
		$referentiel_resultat = Cel::db()->executerRequete($requete);
42
		$referentiel_resultat = Cel::db()->executerRequete($requete);
43
		$referentiel = array();
43
		$referentiel = array();
44
		
44
		
45
		foreach($referentiel_resultat as $valeur) {
45
		foreach($referentiel_resultat as $valeur) {
46
			$referentiel[$valeur['cle']] = $valeur['label'];
46
			$referentiel[$valeur['cle']] = $valeur['label'];
47
		}
47
		}
48
		
48
		
49
		return $referentiel;
49
		return $referentiel;
50
	}
50
	}
51
	
51
	
52
	function rechercherValeurs($cle, $recherche_valeur) {
52
	function rechercherValeurs($cle, $recherche_valeur) {
53
		$requete = "SELECT DISTINCT valeur FROM cel_obs_etendues WHERE ".
53
		$requete = "SELECT DISTINCT valeur FROM cel_obs_etendues WHERE ".
54
					"cle = ".Cel::db()->proteger($cle)." AND ".
54
					"cle = ".Cel::db()->proteger($cle)." AND ".
55
		            "valeur LIKE ".Cel::db()->proteger($recherche_valeur.'%')." ";
55
		            "valeur LIKE ".Cel::db()->proteger($recherche_valeur.'%')." ";
56
 
56
 
57
		$referentiel_resultat = Cel::db()->executerRequete($requete);
57
		$referentiel_resultat = Cel::db()->executerRequete($requete);
58
		$referentiel = array();
58
		$referentiel = array();
59
		
59
		
60
		foreach($referentiel_resultat as $valeur) {
60
		foreach($referentiel_resultat as $valeur) {
-
 
61
			if(trim($valeur['valeur']) != "") {
61
			$referentiel[] = $valeur['valeur'];
62
				$referentiel[] = $valeur['valeur'];
-
 
63
			}
62
		}
64
		}
63
		return $referentiel;
65
		return $referentiel;
64
	}
66
	}
65
	
67
	
66
	function paramObligatoiresSontPresents($uid) {
68
	function paramObligatoiresSontPresents($uid) {
67
		
69
		
68
		return (isset($uid[0]) && ($uid[0] == "cle" || $uid[0] == "valeur"));
70
		return (isset($uid[0]) && ($uid[0] == "cle" || $uid[0] == "valeur"));
69
	}
71
	}
70
	
72
	
71
	function filtreRechercheEstDemande() {
73
	function filtreRechercheEstDemande() {
72
		return (isset($_GET["recherche"]) && trim($_GET["recherche"]) != "");
74
		return (isset($_GET["recherche"]) && trim($_GET["recherche"]) != "");
73
	}
75
	}
74
	
76
	
75
	function limiteEstDemandee() {
77
	function limiteEstDemandee() {
76
		return isset($_GET["start"]) && is_numeric($_GET["start"]) && isset($_GET["limit"]) && is_numeric($_GET["limit"]);
78
		return isset($_GET["start"]) && is_numeric($_GET["start"]) && isset($_GET["limit"]) && is_numeric($_GET["limit"]);
77
	}
79
	}
78
	
80
	
79
	function estUneValeurValide($chaine) {
81
	function estUneValeurValide($chaine) {
80
		return ($chaine != null && $chaine != "000null" &&  trim($chaine) != "");
82
		return ($chaine != null && $chaine != "000null" &&  trim($chaine) != "");
81
	}
83
	}
82
}
84
}
83
?>
85
?>