Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3072 Rev 3073
Line 298... Line 298...
298
	 * avec auteur
298
	 * avec auteur
299
	 */
299
	 */
300
	protected function enrichirDonneesTaxonomiquesParNS($ref, $ns, &$obs) {
300
	protected function enrichirDonneesTaxonomiquesParNS($ref, $ns, &$obs) {
301
		$url_nom = $this->config['eflore']['url_service_nom'];
301
		$url_nom = $this->config['eflore']['url_service_nom'];
302
		$url_nom = str_replace('{referentiel}', $ref, $url_nom);
302
		$url_nom = str_replace('{referentiel}', $ref, $url_nom);
303
		$url_nom .= '?recherche=etendue&masque=' . urlencode($ns);
303
		$url_nom .= '?recherche=etendue&ns.structure=au&masque=' . urlencode($ns);
304
		// un horrible @ car les erreurs de file_get_contents() ne sont pas try/catchables
304
		// un horrible @ car les erreurs de file_get_contents() ne sont pas try/catchables
305
		// @TODO mettre du cURL à l'occase
305
		// @TODO mettre du cURL à l'occase
306
		$infos_nom = @file_get_contents($url_nom);
306
		$infos_nom = @file_get_contents($url_nom);
307
		if ($infos_nom != NULL) {
307
		if ($infos_nom != NULL) {
308
			try {
308
			try {
309
				$infos_nom = json_decode($infos_nom, true);
309
				$infos_nom = json_decode($infos_nom, true);
310
				if (count($infos_nom['resultat']) > 0) {
310
				if (count($infos_nom['resultat']) > 0) {
311
					$nn_trouve = null;
311
					$nn_trouve = null;
312
					$ret_trouve = false;
312
					$ret_trouve = false;
313
					// on prend le premier nom retenu qu'on trouve, ou à défaut
313
					// on prend le nom avec auteur correspondant exactement;
314
					// le premier nom tout court
314
					// s'il y en a plusieurs on prend le premier qui est retenu
315
					foreach($infos_nom['resultat'] as $n => $nom) {
315
					foreach($infos_nom['resultat'] as $n => $nom) {
-
 
316
						if (! $ret_trouve) {
-
 
317
							if ($nom['nom_sci_complet'] == $ns) {
316
						if (! $ret_trouve && ($nn_trouve == null || $nom['retenu'] == 'true')) { // oui oui, un 'true' entre quotes :/
318
								if ($nn_trouve == null || $nom['retenu'] == 'true') {
317
							$nn_trouve = $n;
319
									$nn_trouve = $n;
318
							$ret_trouve = ($nom['retenu'] == 'true');
320
									$ret_trouve = ($nom['retenu'] == 'true');
-
 
321
								}
-
 
322
							}
319
						}
323
						}
320
					}
324
					}
321
					if ($nn_trouve != null) {
325
					if ($nn_trouve != null) {
322
						// gagné !
326
						// gagné !
323
						$obs['nom_sel_nn'] = $nn_trouve;
327
						$obs['nom_sel_nn'] = $nn_trouve;