Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1427 Rev 1432
Line 78... Line 78...
78
		$masque = ((isset($nom_decoupe['genus']) && $nom_decoupe['genus']!= '') && 
78
		$masque = ((isset($nom_decoupe['genus']) && $nom_decoupe['genus']!= '') && 
79
				  (isset($nom_decoupe['species']) && $nom_decoupe['species']!= ''))
79
				  (isset($nom_decoupe['species']) && $nom_decoupe['species']!= ''))
80
				  ? $nom_decoupe['genus'].' '.$nom_decoupe['species'] : $nom_saisi;
80
				  ? $nom_decoupe['genus'].' '.$nom_decoupe['species'] : $nom_saisi;
Line 81... Line 81...
81
		
81
		
82
		$liste_genre_espece = array();
82
		$liste_genre_espece = array();
83
		$url = $this->url_service_nom.'?masque='.urlencode($nom_decoupe['genus'].' '.$nom_decoupe['species']).'&recherche=etendue&ns.format=txt&retour.champs=nom_retenu,nom_retenu.*,num_taxonomique,auteur&navigation.limite=1';
-
 
84
 
83
		$url = $this->url_service_nom.'?masque='.urlencode($nom_decoupe['genus'].' '.$nom_decoupe['species']).'&recherche=etendue&ns.format=txt&retour.champs=nom_sci,auteur,nom_retenu.id&navigation.limite=1';
85
		$resultat = @file_get_contents($url);
84
		$resultat = @file_get_contents($url);
86
		if($resultat != '') {
85
		if($resultat != '') {
87
			$resultat = json_decode($resultat);
86
			$resultat = json_decode($resultat);
88
			if(is_object($resultat) && isset($resultat->resultat)) {
87
			if(is_object($resultat) && isset($resultat->resultat)) {
89
				foreach ($resultat->resultat as $id => $res) {
88
				foreach ($resultat->resultat as $id => $res) {
90
					$nom_complet = $res->{'nom_sci'}.' '.$res->auteur;
89
					$nom_complet = $res->{'nom_sci'}.' '.$res->auteur;
91
					$liste_genre_espece[] = array($res->{'nom_retenu.id'},$nom_complet);
90
					$liste_genre_espece[] = array($id,$nom_complet);
92
				}
91
				}
93
			}
92
			}
94
		}
93
		}		
95
		return $liste_genre_espece;
94
		return $liste_genre_espece;
Line 96... Line 95...
96
	}
95
	}
97
	
96
	
Line 104... Line 103...
104
		return $infos_formatees;
103
		return $infos_formatees;
105
	}
104
	}
Line 106... Line 105...
106
	
105
	
107
	public function effectuerRequeteInfosComplementairesSurNumNom($num_nom) {
106
	public function effectuerRequeteInfosComplementairesSurNumNom($num_nom) {
108
		$infos = array();
-
 
109
		//TODO: retourner moins de champs grâce au paramètre retour.champs
107
		$infos = array();
110
		$url = $this->url_service_nom.'/'.$num_nom;
108
		$url = $this->url_service_nom.'/'.$num_nom.'?retour.champs=nom_sci,auteur,id,nom_retenu_complet,nom_retenu.id,num_taxonomique,famille';
111
		$resultat = @file_get_contents($url);
109
		$resultat = @file_get_contents($url);
112
		if($resultat != '') {
110
		if($resultat != '') {
113
			$infos = json_decode($resultat);
111
			$infos = json_decode($resultat);
114
		}
112
		}
Line 197... Line 195...
197
			} else { 
195
			} else { 
198
				// Nom scientifique
196
				// Nom scientifique
199
				$id_nom = $this->rechercherInformationsComplementairesSurNom($identifiant_espece);
197
				$id_nom = $this->rechercherInformationsComplementairesSurNom($identifiant_espece);
200
				// Recherche du nom associe
198
				// Recherche du nom associe
201
				$retour = array("nom_sel" => $identifiant_espece);
199
				$retour = array("nom_sel" => $identifiant_espece);
202
				if(is_array($id_nom) && count($id_nom) > 0 && isset($id_nom[0][0])) {
200
				if(is_array($id_nom) && count($id_nom) > 0 && isset($id_nom[0][0]) && isset($id_nom[0][1])) {
203
					$nn = $id_nom[0][0];
201
					$nn = $id_nom[0][0];
204
					$infos_nom = (array)$this->effectuerRequeteInfosComplementairesSurNumNom($nn);
-
 
205
					if (is_array($infos_nom) && !empty($infos_nom)) {
-
 
206
						$retour = array("nom_sel" => $infos_nom['nom_sci'].' '.$infos_nom['auteur'], "en_id_nom" => $infos_nom['id']);
202
					$retour = array("nom_sel" => $id_nom[0][1], "en_id_nom" => $id_nom[0][0]);
207
					}
-
 
208
				}
203
				}
209
			}
204
			}
210
		}
205
		}
Line 211... Line 206...
211
		
206