445,13 → 445,14 |
*/ |
static function chargerLigne($ligne, $dernier_ordre, $cel) { |
// en premier car le résultat est utile pour |
// traiter longitude et latitude (traiterLonLat()) |
$referentiel = self::identReferentiel($ligne[C_NOM_REFERENTIEL]); |
// * traiter espèce (traiterEspece()) |
// * traiter longitude et latitude (traiterLonLat()) |
$referentiel = self::identReferentiel(trim(strtolower($ligne[C_NOM_REFERENTIEL]))); |
|
// $espece est rempli de plusieurs informations |
$espece = Array(C_NOM_SEL => NULL, C_NOM_SEL_NN => NULL, C_NOM_RET => NULL, |
C_NOM_RET_NN => NULL, C_NT => NULL, C_FAMILLE => NULL); |
self::traiterEspece($ligne, $espece, $cel); |
self::traiterEspece($ligne, $espece, $referentiel, $cel); |
|
// $localisation est rempli à partir de plusieurs champs: C_ZONE_GEO et C_CE_ZONE_GEO |
$localisation = Array(C_ZONE_GEO => NULL, C_CE_ZONE_GEO => NULL); |
593,10 → 594,11 |
|
static function identReferentiel($referentiel) { |
// SELECT DISTINCT nom_referentiel, COUNT(id_observation) AS count FROM cel_obs GROUP BY nom_referentiel ORDER BY count DESC; |
if(strpos(strtolower($referentiel), 'bdtfx') !== FALSE) return 'bdtfx:v1.01'; |
if(strpos(strtolower($referentiel), 'bdtxa') !== FALSE) return 'bdtxa:v1.00'; |
if(strpos(strtolower($referentiel), 'bdnff') !== FALSE) return 'bdnff:4.02'; |
if(strpos(strtolower($referentiel), 'isfan') !== FALSE) return 'isfan:v1.00'; |
if(strpos($referentiel, 'bdtfx') !== FALSE) return 'bdtfx:v1.01'; |
if(strpos($referentiel, 'bdtxa') !== FALSE) return 'bdtxa:v1.00'; |
if(strpos($referentiel, 'bdnff') !== FALSE) return 'bdnff:4.02'; |
if(strpos($referentiel, 'isfan') !== FALSE) return 'isfan:v1.00'; |
if(strpos($referentiel, 'autre') !== FALSE) return 'autre'; |
|
if($referentiel) { |
trigger_error("ligne \"{$ligne[C_NOM_SEL]}\": Attention: référentiel inconnu", E_USER_NOTICE); |
647,13 → 649,13 |
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, $cel) { |
static function traiterEspece($ligne, Array &$espece, $referentiel, $cel) { |
if(!$ligne[C_NOM_SEL]) return; |
|
// nom_sel reste toujours celui de l'utilisateur |
$espece[C_NOM_SEL] = trim($ligne[C_NOM_SEL]); |
|
$taxon_info_webservice = new RechercheInfosTaxonBeta($cel->config); |
$taxon_info_webservice = new RechercheInfosTaxonBeta($cel->config, $referentiel); |
|
$ascii = iconv('UTF-8', 'ASCII//TRANSLIT', $ligne[C_NOM_SEL]); |
|