/trunk/jrest/tests/phptests/determ-espece-syno-bdnff.test.php |
---|
8,4 → 8,4 |
| 101838 | 101838 | Rhaponticum coniferum | |
+---------+----------------+-----------------------+ |
*/ |
return array('data' => array('Espèce' => 'BDNFFnn38821')); |
return array('data' => array('Espèce' => 'bdtfx:nn:38821')); |
/trunk/jrest/tests/phptests/determ-espece-bdnffnn.test.php |
---|
1,3 → 1,3 |
<?php |
// test détermination espèce avec bdnffnn |
return array('data' => array('Espèce' => 'BDNFFnn72475')); |
return array('data' => array('Espèce' => 'bdtfx:nn:72475')); |
/trunk/jrest/tests/phptests/determ-espece-bdnffnt.test.php |
---|
1,3 → 1,3 |
<?php |
// test détermination espèce avec bdnffnt, minuscules |
return array('data' => array('Espèce' => 'BDNFFnt5757')); |
return array('data' => array('Espèce' => 'bdtfx:nt:5757')); |
/trunk/jrest/services/ImportXLS.php |
---|
674,7 → 674,7 |
TODO: s'affranchir du webservice pour la détermination du nom scientifique en s'appuyant sur cel_references, |
pour des questions de performances |
*/ |
static function traiterEspece($ligne, Array &$espece, $referentiel, $cel) { |
static function traiterEspece($ligne, Array &$espece, &$referentiel, $cel) { |
if(empty($ligne[C_NOM_SEL])) return; |
// nom_sel reste toujours celui de l'utilisateur |
698,7 → 698,7 |
SELECT nom_sci, num_nom_retenu, nom_sci_html, auteur, annee, biblio_origine FROM bdtfx_v1_01 WHERE num_nom = 31468 |
*/ |
// $determ = $taxon_info_webservice->rechercherInformationsComplementairesSurNom($ligne[C_NOM_SEL]); |
// permet une reconnaissance de BDNFFnnXXXX |
// permet une reconnaissance de bdtfx:nn:XXXX |
$determ = $taxon_info_webservice->rechercherInfosSurTexteCodeOuNumTax(trim($ligne[C_NOM_SEL])); |
// note: rechercherInfosSurTexteCodeOuNumTax peut ne retourner qu'une seule clef "nom_sel" |
722,8 → 722,19 |
// ne devrait jamais arriver ! |
if(!$determ) die("erreur critique: " . __FILE__ . ':' . __LINE__); |
// succès de la détection = écrasement du numéro nomenclatural saisi... |
$espece[C_NOM_SEL] = $determ->nom_sci; |
// un schéma <ref>:(nt|nn):<num> (ie: bdtfx:nt:8503) a été passé |
// dans ce cas on met à jour le référentiel avec celui passé dans le champ espèce |
if(isset($determ->ref)) { |
$referentiel = $determ->ref; |
} |
// succès de la détection |
// nom_sel est remplacé, mais seulement si un motif spécial à été utilisé (bdtfx:nn:4567) |
if($taxon_info_webservice->is_notation_spe) { |
$espece[C_NOM_SEL] = $determ->nom_sci; |
} |
// écrasement des numéros (nomenclatural, taxonomique) saisis... |
$espece[C_NOM_SEL_NN] = $determ->id; |
$espece[C_NOM_RET] = RechercheInfosTaxonBeta::supprimerBiblio($determ->nom_retenu_complet); |
$espece[C_NOM_RET_NN] = $determ->{"nom_retenu.id"}; |
/trunk/jrest/lib/RechercheInfosTaxonBeta.php |
---|
25,7 → 25,11 |
private $masque_recherche = null; |
private $code_referentiel = 'bdtfx'; |
// initialisé à TRUE par rechercherInfosSurTexteCodeOuNumTax() |
// si l'espèce passée a le motif <ref>:(nt|nn):<num>, eg: isfan:nt:1591 |
public $is_notation_spe = FALSE; |
public function RechercheInfosTaxonBeta($config, $code_referentiel = 'bdtfx') { |
parent::__construct($config); |
$this->code_referentiel = $code_referentiel; |
166,27 → 170,28 |
return $presence_taxon; |
} |
public function effectuerRequeteInfosComplementairesSurNumTax($numTax) { |
//TODO: retourner moins de champs grâce au paramètre retour.champs |
return @json_decode(file_get_contents($this->url_service_taxon."/nt:".$numTax)); |
} |
/* texte libre, nom scientifique, |
ou code nomenclatural (format BDNFFnn999999) |
ou code taxonomique (format BDNFFnt999999) |
ou code nomenclatural (format bdtfx:nn:999999) |
ou code taxonomique (format bdtfx:nt:999999) |
TODO: voir ce qu'on fait pour l'import de différent référentiels */ |
function rechercherInfosSurTexteCodeOuNumTax($identifiant_espece) { |
preg_match('/BDNFFnn(\d+)/',$identifiant_espece, $elements); |
// Numero nomenclatural |
if (isset($elements[1])) |
return $this->effectuerRequeteInfosComplementairesSurNumNom($elements[1]); |
preg_match('/(' . implode('|', Cel::$referentiels_valides) .'):(nn|nt):(\d+)/i', $identifiant_espece, $elements); |
if($elements) { |
$this->is_notation_spe = TRUE; |
list(, $ref, $type, $num) = $elements; |
// Numero nomenclatural |
if ($type == 'nn') { |
$obj = $this->effectuerRequeteInfosComplementairesSurNumNom($num); |
} |
// Numero taxonomique |
else { |
//TODO: retourner moins de champs grâce au paramètre retour.champs |
$obj = @json_decode(file_get_contents($this->url_service_taxon."/nt:".$num)); |
} |
$obj->ref = $ref; |
return $obj; |
} |
// Numero taxonomique ou nom scientifique |
preg_match('/BDNFFnt(\d+)/', $identifiant_espece, $elements); |
// Numero taxonomique |
if (isset($elements[1])) |
return $this->effectuerRequeteInfosComplementairesSurNumTax($elements[1]); |
// Nom scientifique |
return $this->rechercherInformationsComplementairesSurNom($identifiant_espece); |
} |