Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1832 → Rev 1833

/trunk/jrest/lib/RechercheInfosTaxonBeta.php
87,7 → 87,7
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, true);
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);
$nom_saisi_sans_auteur = self::supprimerAuteur($nom_saisi);
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);
}
110,30 → 110,29
return array_pop($resultat);
}
private function supprimerAuteur($nom_saisi) {
// Attention le parseur de nom n'est pas fiable à 100%
// mais ça marche dans la plupart des cas
// à part les formules d'hybridité saisies avec un auteur
static function supprimerAuteur($nom_saisi) {
// TODO: gérer les hybrides
$nameparser = new NameParser();
if($this->estUnHybride($nom_saisi) || $this->estUneFormuleHybridite($nom_saisi)) {
if(self::estUnHybride($nom_saisi) || self::estUneFormuleHybridite($nom_saisi)) {
$nom_decoupe = explode(' ', $nom_saisi);
$derniere_position_hybride = end(array_keys($nom_decoupe, 'x'));
$nom_saisi_sans_auteur = implode(' ',array_slice($nom_decoupe, 0, $derniere_position_hybride + 2));
} else {
/* Attention le parseur de nom n'est pas fiable à 100%
mais ça marche dans la plupart des cas
à part les formules d'hybridité saisies avec un auteur */
$nameparser = new NameParser();
$auteur = $nameparser->parse_auth($nom_saisi);
$nom_saisi_sans_auteur = str_replace($auteur, '', $nom_saisi);
}
 
$nom_saisi_sans_auteur = trim($nom_saisi_sans_auteur);
return $nom_saisi_sans_auteur;
return trim($nom_saisi_sans_auteur);
}
private function estUneFormuleHybridite($nom_saisi) {
static function estUneFormuleHybridite($nom_saisi) {
return strpos($nom_saisi,' x ') !== false;
}
private function estUnHybride($nom_saisi) {
static function estUnHybride($nom_saisi) {
return strpos($nom_saisi,'x ') === 0;
}