Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1805 Rev 1949
Line 37... Line 37...
37
		$this->parametres = $parametres;
37
		$this->parametres = $parametres;
38
		$this->verifierParametres();
38
		$this->verifierParametres();
Line 39... Line 39...
39
 
39
 
40
		$this->completerParametresUtilisateur();
40
		$this->completerParametresUtilisateur();
-
 
41
		$this->gererPropositionInitiale();
-
 
42
		// Dernière chance de rattachement au référentiel d'un nom 
-
 
43
		// sans nn (cas du copier-coller ou bien de l'appli tierce
-
 
44
		// qui envoie des infos incomplètes)
41
		$this->gererPropositionInitiale();
45
		$this->tenterEnrichissementTaxonomique();
Line 42... Line 46...
42
		$idCommentaireAjoute = $this->insererCommentaire();
46
		$idCommentaireAjoute = $this->insererCommentaire();
43
 
47
 
44
		// Mettre en forme le résultat et l'envoyer pour affichage
48
		// Mettre en forme le résultat et l'envoyer pour affichage
Line 202... Line 206...
202
				}
206
				}
203
			}
207
			}
204
		}
208
		}
205
		return implode(', ', $suite);
209
		return implode(', ', $suite);
206
	}
210
	}
-
 
211
	
-
 
212
	private function tenterEnrichissementTaxonomique() {
-
 
213
		if($this->commentaireEstPropositionSansNn()) {
-
 
214
			$referentiel = $this->parametres['nom_referentiel'];
-
 
215
			$requete = urlencode($this->parametres['nom_sel']);
-
 
216
			
-
 
217
			$url = sprintf($this->conteneur->getParametre('nomstaxons.url_autocompletion_tpl'), $referentiel, $requete);
-
 
218
			$restClient = $this->conteneur->getRestClient();
-
 
219
			// Un retour vide est possible (un cas normal où il n'y a pas de résultat)
-
 
220
			// mais il fait planter le retour du service si on active l'affichage des erreurs
-
 
221
			// donc on passe sciemment les erreurs sous silence (car cette erreur n'en est pas une)
-
 
222
			$resultatJson = @$restClient->consulter($url);
-
 
223
			$resultats = json_decode($resultatJson, true);
-
 
224
 
-
 
225
			// On ne fait l'affectation que si l'on est sur (donc si un seul résultat)
-
 
226
			if (isset($resultats['resultat']) && count($resultats['resultat']) == 1) {
-
 
227
				$info = array_pop($resultats['resultat']);
-
 
228
				$this->parametres['nom_sel_nn'] = $info['num_nom'];
-
 
229
			}
-
 
230
		}
-
 
231
	}
-
 
232
	
-
 
233
	private function commentaireEstPropositionSansNn() {
-
 
234
		// Pas besoin de tester si c'est vide, normalement verifierParametres 
-
 
235
		// l'a déjà fait au-dessus
-
 
236
		return isset($this->parametres['nom_sel']) 
-
 
237
				&& isset($this->parametres['nom_referentiel']) 
-
 
238
						&& !isset($this->parametres['nom_sel_nn']);
-
 
239
	}
207
}
240
}
208
241