Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1786 → Rev 1787

/trunk/jrest/lib/RechercheInfosTaxonBeta.php
88,7 → 88,9
if(empty($liste_genre_espece)) {
// Essai de recherche stricte en tentant de supprimer le nom d'auteur
$nom_saisi_sans_auteur = $this->supprimerAuteur($nom_saisi);
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi_sans_auteur, true);
if($nom_saisi_sans_auteur) { // ne pas faire la requête sur un mot vide
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi_sans_auteur, true);
}
if(empty($liste_genre_espece)) {
// Dernière tentative : essai de recherche étendue
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, false);
98,18 → 100,16
}
private function effectuerRequeteUrlRecherche($nom_saisi, $stricte = true) {
$url_recherche = $this->getUrlRechercheInfosComplementaires($nom_saisi, $stricte);
$res = @json_decode(file_get_contents($url_recherche));
$res = @json_decode(file_get_contents(sprintf('%1$s?masque=%2$s&recherche=%3$s&ns.format=txt&retour.champs=%4$s&navigation.limite=1',
$this->url_service_nom,
urlencode($nom_saisi),
($stricte ? 'stricte' : 'etendue'),
implode(',', array("id","nom_sci","auteur","nom_retenu.id","famille","num_taxonomique","nom_retenu_complet")))));
if(!$res) return NULL;
$resultat = (array)$res->resultat;
return array_pop($resultat);
}
private function getUrlRechercheInfosComplementaires($nom_saisi, $stricte = true) {
$type_recherche = $stricte ? 'stricte' : 'etendue';
return $url_recherche_etendue = $this->url_service_nom.'?masque='.urlencode($nom_saisi).'&recherche='.$type_recherche.'&ns.format=txt&retour.champs=nom_sci,auteur,nom_retenu.id&navigation.limite=1';
}
private function supprimerAuteur($nom_saisi) {
// Attention le parseur de nom n'est pas fiable à 100%
// mais ça marche dans la plupart des cas