Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 631 Rev 700
Line 46... Line 46...
46
			switch ($param) {
46
			switch ($param) {
47
				case 'masque' :
47
				case 'masque' :
48
					$this->ajouterFiltreMasque('nom_sci', $val);										 
48
					$this->ajouterFiltreMasque('nom_sci', $val);										 
49
					break;
49
					break;
50
				case 'masque.nt' :
50
				case 'masque.nt' :
51
					$this->requete_condition[] = "num_taxonomique IN ($val)";		
51
					$this->requete_condition[] = "num_tax IN ($val)";		
52
					$this->masque[] = "num_tax=$val";						 
52
					$this->masque[] = "num_tax=$val";						 
53
					break;
53
					break;
54
				case 'masque.rg':
54
				case 'masque.rg':
55
					$this->requete_condition[] = 'rang = '.$this->getBdd()->proteger($val); 
55
					$this->requete_condition[] = 'rang = '.$this->getBdd()->proteger($val); 
56
					$this->masque[] = "rang=$val";					
56
					$this->masque[] = "rang=$val";					
Line 62... Line 62...
62
//------------------------------------------Fonction ressources---------------------------------------------------------------------
62
//------------------------------------------Fonction ressources---------------------------------------------------------------------
Line 63... Line 63...
63
	
63
	
64
	public function gererNumTax() {
64
	public function gererNumTax() {
65
		if (!in_array('num_taxonomique', $this->champs_table)) {
65
		if (!in_array('num_taxonomique', $this->champs_table)) {
66
			$this->presence_num_tax = false;
66
			$this->presence_num_tax = false;
67
			$this->requete_champ = str_replace(', num_taxonomique ', '', $this->requete_champ);
67
			$this->requete_champ = str_replace(', num_tax ', '', $this->requete_champ);
68
		} else {
68
		} else {
69
			$this->presence_num_tax = true;
69
			$this->presence_num_tax = true;
70
		}
70
		}
Line 98... Line 98...
98
	
98
	
99
	public function traiterRessourceNtId() {
99
	public function traiterRessourceNtId() {
100
		if (strrpos($this->ressources[0], 'nt:') !== false) {
100
		if (strrpos($this->ressources[0], 'nt:') !== false) {
101
			if ($this->presence_num_tax) {
101
			if ($this->presence_num_tax) {
102
				// SELECT num_nom FROM bdtfx_v2_00 WHERE num_nom = num_nom_retenu AND num_taxonomique = X;
102
				// SELECT num_nom FROM bdtfx_v2_00 WHERE num_nom = num_nom_retenu AND num_taxonomique = X;
103
				$this->requete_condition[0] = ' num_taxonomique = '
103
				$this->requete_condition[0] = ' num_tax = '
104
					.str_replace('nt:', '', $this->ressources[0]).' ';
104
					.str_replace('nt:', '', $this->ressources[0]).' ';
105
			} else {
105
			} else {
106
				$e = 'Erreur dans votre requête : </br> Le numéro taxonomique n\'existe pas dans ce projet';
106
				$e = 'Erreur dans votre requête : </br> Le numéro taxonomique n\'existe pas dans ce projet';
107
				$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
107
				$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e);
Line 149... Line 149...
149
				case 'inferieurs' : 
149
				case 'inferieurs' : 
150
					$rel = 'recupererIdInf';
150
					$rel = 'recupererIdInf';
151
					$this->format_reponse .= '/inferieurs'; 	
151
					$this->format_reponse .= '/inferieurs'; 	
152
					$this->traiterRessourceIdRelationInfSup($rel); 				
152
					$this->traiterRessourceIdRelationInfSup($rel); 				
153
					break;
153
					break;
-
 
154
				case 'hierarchie' :
-
 
155
					$rel = 'recupererIdHierarchie';
-
 
156
					$this->format_reponse .= '/hierarchie';
-
 
157
					$this->traiterRessourceIdRelationHierarchie($rel);
-
 
158
					break;
154
				default : 
159
				default : 
155
					$e = 'Erreur dans votre requête </br> Ressources disponibles : <br/>
160
					$e = 'Erreur dans votre requête </br> Ressources disponibles : <br/>
156
						 <li> taxons/#id/relations </li><li> #id/relations/inferieurs </li>
161
						 <li> taxons/#id/relations </li><li> #id/relations/inferieurs </li>
157
						 <li> #id/relations/superieurs </li>';
162
						 <li> #id/relations/superieurs </li>';
158
					$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); 
163
					$this->renvoyerErreur(RestServeur::HTTP_CODE_MAUVAISE_REQUETE, $e); 
159
					break;
164
					break;
160
			}
165
			}
161
		} 
166
		} 
162
	}
167
	}
-
 
168
	
-
 
169
	public function traiterRessourceIdRelationHierarchie($rel) {
-
 
170
		//Appel de la fct récupérerIdSup ou recupererIdInf : retourne les num_nom des noms inferieurs ou superieurs
-
 
171
		$res_relation = $this->$rel();
-
 
172
		//analyse du résultat retourné par la requete de recherche des identifiants correspondant aux taxons inf|sup :
-
 
173
		if ($res_relation == '') {
-
 
174
			//dans le cas ou la requete comporte des erreurs
-
 
175
			$e = 'Fct traiterRessourceIdRelationInfSup : La requête forme comporte une erreur!';
-
 
176
			$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
-
 
177
		} elseif ($res_relation) {
-
 
178
			//dans le cas ou une ou plusieurs relations est retournée, on récupère les identifiants ss la forme (id, id, id)
-
 
179
			foreach ($res_relation as $ligne) $res[] = $ligne['num_nom'];
-
 
180
			$res = implode(',',$res);
-
 
181
			$this->requete_condition[0] = "num_nom IN ($res)";
-
 
182
			$this->requete_champ 	 .=  ', rang, num_tax_sup ';
-
 
183
		} else { //dans le cas ou aucune relation n'existe
-
 
184
			$res = array($this->num_nom_taxon => null);
-
 
185
			$this->corps_http = json_encode($res);
-
 
186
			$this->entete_http = RestServeur::HTTP_CODE_OK;
-
 
187
		}
-
 
188
	}
-
 
189
	
-
 
190
	public function recupererIdHierarchie() {
-
 
191
		$req_relation = 'SELECT num_nom FROM '.$this->table.' '.
-
 
192
				' WHERE hierarchie LIKE CONCAT('.
-
 
193
					'(SELECT hierarchie FROM '.
-
 
194
		$this->table.' '.
-
 
195
						'WHERE num_nom = '.$this->getBdd()->proteger($this->num_nom_taxon).')'.
-
 
196
						', '.$this->getBdd()->proteger($this->num_nom_taxon.'-%').
-
 
197
					')';
-
 
198
		$res_relation = $this->getBdd()->recupererTous($req_relation);
-
 
199
		return $res_relation;
-
 
200
	}
Line 163... Line 201...
163
		
201
		
164
	public function traiterRessourceIdRelationInfSup($rel) {
202
	public function traiterRessourceIdRelationInfSup($rel) {
165
		//Appel de la fct récupérerIdSup ou recupererIdInf : retourne les num_nom des noms inferieurs ou superieurs
203
		//Appel de la fct récupérerIdSup ou recupererIdInf : retourne les num_nom des noms inferieurs ou superieurs
166
		$res_relation = $this->$rel(); 
204
		$res_relation = $this->$rel(); 
Line 284... Line 322...
284
				$reponse = $this->formaterIdSuperieur($resultat, $version);
322
				$reponse = $this->formaterIdSuperieur($resultat, $version);
285
				break;
323
				break;
286
			case 'taxons/id/relations/inferieurs' :
324
			case 'taxons/id/relations/inferieurs' :
287
				$reponse = $this->formaterIdInferieur($resultat);
325
				$reponse = $this->formaterIdInferieur($resultat);
288
				break;
326
				break;
-
 
327
			case 'taxons/id/relations/hierarchie' :
-
 
328
				// le formatage de la hiérarchie est identique aux relations inférieures
-
 
329
				$reponse = $this->formaterIdInferieur($resultat);
-
 
330
				break;
289
			case 'taxons/stats/annees' :  //ds CommunNomsTaxons
331
			case 'taxons/stats/annees' :  //ds CommunNomsTaxons
290
				$reponse = $this->formaterStatsAnnee($resultat);
332
				$reponse = $this->formaterStatsAnnee($resultat);
291
				break;
333
				break;
292
			case 'taxons/stats/rangs' ://ds CommunNomsTaxons
334
			case 'taxons/stats/rangs' ://ds CommunNomsTaxons
293
				$reponse = $this->formaterStatsRang($resultat);
335
				$reponse = $this->formaterStatsRang($resultat);