Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1925 → Rev 1926

/trunk/jrest/lib/RechercheInfosTaxonBeta.php
1,16 → 1,16
<?php
/**
* PHP Version 5
*
* @category PHP
* @package jrest
* @author David Delon <david@tela-botania.org>
* @author Aurélien Peronnet <aurelien@tela-botania.org>
* @copyright 2010 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version SVN: <svn_id>
* @link /doc/jrest/
*/
* PHP Version 5
*
* @category PHP
* @package jrest
* @author David Delon <david@tela-botania.org>
* @author Aurélien Peronnet <aurelien@tela-botania.org>
* @copyright 2010 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version SVN: <svn_id>
* @link /doc/jrest/
*/
 
/**
*
18,7 → 18,9
* ne soit dépendant de la version d'eflore
*/
class RechercheInfosTaxonBeta extends Cel {
 
const DEBUG = FALSE;
 
private $url_service_nom = null;
private $url_service_taxon = null;
private $url_service_chorologie = null;
48,6 → 50,7
$liste_genre_espece = array();
$this->masque_recherche = trim(trim($genre).' '.trim($espece,' *'));
$masque = urlencode($this->masque_recherche);
if(self::DEBUG) error_log("CEL fetch: " . $this->url_service_nom.'?masque='.$masque.'&recherche=etendue&retour.format=min&navigation.limite=50&ns.structure=au');
$requete = @file_get_contents($this->url_service_nom.'?masque='.$masque.'&recherche=etendue&retour.format=min&navigation.limite=50&ns.structure=au');
if($requete != '') {
$requete = json_decode($requete);
76,8 → 79,8
$resultat_infos_complementaires = (array)$this->effectuerRequeteInfosComplementairesSurNumNom($numNom);
$retour_infos_complementaires = array();
if (isset($resultat_infos_complementaires['nom_retenu_complet']) && $resultat_infos_complementaires['nom_retenu_complet']) {
$retour_infos_complementaires=array((self::supprimerBiblio($resultat_infos_complementaires['nom_retenu_complet'])));
}
$retour_infos_complementaires=array((self::supprimerBiblio($resultat_infos_complementaires['nom_retenu_complet'])));
}
return $retour_infos_complementaires;
}
105,11 → 108,12
}
private function effectuerRequeteUrlRecherche($nom_saisi, $mode = 'stricte') {
if(self::DEBUG) error_log("CEL fetch: " . 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), $mode, implode(',', array("id","nom_sci","auteur","nom_retenu.id","famille","num_taxonomique","nom_retenu_complet"))));
$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),
$mode,
implode(',', array("id","nom_sci","auteur","nom_retenu.id","famille","num_taxonomique","nom_retenu_complet")))));
$this->url_service_nom,
urlencode($nom_saisi),
$mode,
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);
143,18 → 147,20
public function effectuerRequeteInfosComplementairesSurNumNom($num_nom, $ref = NULL) {
if($ref && isset($this->config['eflore']['api_host'])) {
if(self::DEBUG) error_log("CEL fetch: " .$this->config['eflore']['api_host'] . '/');
return @json_decode(file_get_contents($this->config['eflore']['api_host'] . '/' .
$ref . '/' .
'noms' . '/' .
$num_nom .
'?retour.champs=' . implode(',', array('nom_sci,auteur',
'id',
'nom_retenu_complet',
'nom_retenu.id',
'num_taxonomique',
'famille'))));
$ref . '/' .
'noms' . '/' .
$num_nom .
'?retour.champs=' . implode(',', array('nom_sci,auteur',
'id',
'nom_retenu_complet',
'nom_retenu.id',
'num_taxonomique',
'famille'))));
}
// XXX: compat
if(self::DEBUG) error_log("CEL fetch: " . $this->url_service_nom.'/'.$num_nom.'?retour.champs=nom_sci,auteur,id,nom_retenu_complet,nom_retenu.id,num_taxonomique,famille');
return @json_decode(file_get_contents($this->url_service_nom.'/'.$num_nom.'?retour.champs=nom_sci,auteur,id,nom_retenu_complet,nom_retenu.id,num_taxonomique,famille'));
}
 
165,6 → 171,7
public function rechercherNumTaxSurNumNom($num_nom) {
$nt = null;
$url = $this->url_service_nom."/".$num_nom.'?retour.champs=num_taxonomique';
if(self::DEBUG) error_log("CEL fetch: $url");
$resultat = @file_get_contents($url);
if($resultat != '') {
$infos = json_decode($resultat);
177,6 → 184,7
public function taxonEstPresentDansDepartement($num_taxon,$code_departement) {
$presence_taxon = false;
$url = $this->url_service_chorologie_obs.'?masque.departement='.$code_departement.'&masque.determination.nt='.$num_taxon.'&navigation.limite=1';
if(self::DEBUG) error_log("CEL fetch: $url");
$resultat = @file_get_contents($url);
if($resultat != '') {
$resultat = json_decode($resultat);
211,6 → 219,7
// Numero taxonomique
else {
//TODO: retourner moins de champs grâce au paramètre retour.champs
if(self::DEBUG) error_log("CEL fetch: " . $this->url_service_taxon."/nt:".$num);
$obj = @json_decode(file_get_contents($this->url_service_taxon."/nt:".$num));
}
if($obj) $obj->ref = $ref;
223,6 → 232,7
public function rechercherSynonymesSurNumNom($num_nom) {
$retour = array();
if(self::DEBUG) error_log("CEL fetch: " . $this->url_service_nom.'/'.$num_nom.'/relations/synonymie/?retour.format=min');
$resultat = @file_get_contents($this->url_service_nom.'/'.$num_nom.'/relations/synonymie/?retour.format=min');
if($resultat != '') {
$resultat = json_decode($resultat);
233,4 → 243,3
return $retour;
}
}
?>