Subversion Repositories eFlore/Applications.cel

Rev

Rev 1852 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1852 Rev 1862
Line 83... Line 83...
83
	}
83
	}
Line 84... Line 84...
84
	
84
	
85
	public function rechercherInformationsComplementairesSurNom($nom_saisi) {
85
	public function rechercherInformationsComplementairesSurNom($nom_saisi) {
86
		$nom_saisi = trim($nom_saisi);
86
		$nom_saisi = trim($nom_saisi);
87
		// Essai de recherche sur le nom saisi tel quel
87
		// Essai de recherche sur le nom saisi tel quel
88
		$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, true);
88
		$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, 'stricte');
-
 
89
		if($liste_genre_espece) return $liste_genre_espece;
89
		if(empty($liste_genre_espece)) {
90
 
90
			// Essai de recherche stricte en tentant de supprimer le nom d'auteur
-
 
91
			$nom_saisi_sans_auteur = self::supprimerAuteur($nom_saisi);
91
		// Essai de recherche stricte en tentant de supprimer le nom d'auteur
92
			if($nom_saisi_sans_auteur) { // ne pas faire la requête sur un mot vide
92
		if( ($nom_saisi_sans_auteur = self::supprimerAuteur($nom_saisi)) ) { // ne pas faire la requête sur un mot vide
93
				$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi_sans_auteur, true);
-
 
94
			}
-
 
95
			if(empty($liste_genre_espece)) {
-
 
96
				// Dernière tentative : essai de recherche étendue
-
 
97
				$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, false);
-
 
98
			}
93
			$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi_sans_auteur, 'stricte');
-
 
94
		}
-
 
95
		if($liste_genre_espece) return $liste_genre_espece;
-
 
96
 
-
 
97
		// avant-dernière tentative : essai de recherche étendue
-
 
98
		$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, 'etendue');
-
 
99
		if($liste_genre_espece) return $liste_genre_espece;
-
 
100
 
-
 
101
		// dernière tentative: concaténation (nom_sci,auteur) (= nom-retenu généré utilisé comme nom_sci)
-
 
102
		$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, 'concat');
99
		}
103
		
100
		return $liste_genre_espece;
104
		return $liste_genre_espece;
Line 101... Line 105...
101
	}
105
	}
102
	
106
	
103
	private function effectuerRequeteUrlRecherche($nom_saisi, $stricte = true) {
107
	private function effectuerRequeteUrlRecherche($nom_saisi, $mode = 'stricte') {
104
		$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',
108
		$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',
105
													  $this->url_service_nom,
109
													  $this->url_service_nom,
106
													  urlencode($nom_saisi),
110
													  urlencode($nom_saisi),
107
													  ($stricte ? 'stricte' : 'etendue'),
111
													  $mode,
108
													  implode(',', array("id","nom_sci","auteur","nom_retenu.id","famille","num_taxonomique","nom_retenu_complet")))));
112
													  implode(',', array("id","nom_sci","auteur","nom_retenu.id","famille","num_taxonomique","nom_retenu_complet")))));
109
		if(!$res) return NULL;
113
		if(!$res) return NULL;
110
		$resultat = (array)$res->resultat;
114
		$resultat = (array)$res->resultat;