Line 159... |
Line 159... |
159 |
$resultat_infos_complementaires = $this->requeter($requete_infos_complementaires);
|
159 |
$resultat_infos_complementaires = $this->requeter($requete_infos_complementaires);
|
Line 160... |
Line 160... |
160 |
|
160 |
|
161 |
return $resultat_infos_complementaires;
|
161 |
return $resultat_infos_complementaires;
|
Line -... |
Line 162... |
- |
|
162 |
}
|
- |
|
163 |
|
- |
|
164 |
public function effectuerRequeteInfosComplementairesSurNumTax($numTax) {
|
- |
|
165 |
|
- |
|
166 |
$requete_infos_complementaires = "SELECT DISTINCT en_nom_genre, en_epithete_espece, en_nom_supra_generique, en_epithete_infra_generique,".
|
- |
|
167 |
" auteur_bex.enaia_intitule_abrege AS abreviation_auteur_basio_ex ".
|
- |
|
168 |
" , auteur_b.enaia_intitule_abrege AS abreviation_auteur_basio ".
|
- |
|
169 |
" , auteur_mex.enaia_intitule_abrege AS abreviation_auteur_modif_ex ".
|
- |
|
170 |
" , auteur_m.enaia_intitule_abrege AS abreviation_auteur_modif ".
|
- |
|
171 |
" , en_epithete_espece, en_epithete_infra_specifique, enrg_abreviation_rang, en_id_nom" .
|
- |
|
172 |
" FROM eflore_nom, eflore_nom_rang," .
|
- |
|
173 |
" eflore_naturaliste_intitule_abreviation AS auteur_bex ".
|
- |
|
174 |
" , eflore_naturaliste_intitule_abreviation AS auteur_b ".
|
- |
|
175 |
" , eflore_naturaliste_intitule_abreviation AS auteur_mex ".
|
- |
|
176 |
" , eflore_naturaliste_intitule_abreviation AS auteur_m ".
|
- |
|
177 |
" , eflore_selection_nom ".
|
- |
|
178 |
" WHERE esn_id_taxon = '".$numTax. "'".
|
- |
|
179 |
" AND esn_id_version_projet_taxon = 25 ".
|
- |
|
180 |
" AND esn_ce_statut=3 ".
|
- |
|
181 |
" AND en_id_nom = esn_id_nom" .
|
- |
|
182 |
" AND en_ce_rang = enrg_id_rang" .
|
- |
|
183 |
" AND en_ce_auteur_basio_ex = auteur_bex.enaia_id_intitule_naturaliste_abrege ".
|
- |
|
184 |
" AND en_ce_auteur_basio = auteur_b.enaia_id_intitule_naturaliste_abrege ".
|
- |
|
185 |
" AND en_ce_auteur_modif_ex = auteur_mex.enaia_id_intitule_naturaliste_abrege ".
|
- |
|
186 |
" AND en_ce_auteur_modif = auteur_m.enaia_id_intitule_naturaliste_abrege ".
|
- |
|
187 |
" AND esn_id_version_projet_taxon=en_id_version_projet_nom ";
|
- |
|
188 |
|
- |
|
189 |
$resultat_infos_complementaires = $this->requeter($requete_infos_complementaires);
|
- |
|
190 |
|
- |
|
191 |
return $resultat_infos_complementaires;
|
162 |
}
|
192 |
}
|
Line 163... |
Line 193... |
163 |
|
193 |
|
Line 164... |
Line 194... |
164 |
public function rechercherInformationsComplementairesSurNom($nom_saisi) {
|
194 |
public function rechercherInformationsComplementairesSurNom($nom_saisi) {
|
Line 252... |
Line 282... |
252 |
$presence_taxon = (is_array($resultat_presence_taxon) && count($resultat_presence_taxon) > 0);
|
282 |
$presence_taxon = (is_array($resultat_presence_taxon) && count($resultat_presence_taxon) > 0);
|
Line 253... |
Line 283... |
253 |
|
283 |
|
254 |
return $presence_taxon;
|
284 |
return $presence_taxon;
|
Line -... |
Line 285... |
- |
|
285 |
}
|
- |
|
286 |
|
- |
|
287 |
private function decouperNomEtRechercheEspeceOuSousEspece($identifiant_espece) {
|
- |
|
288 |
$nameparser=new NameParser();
|
- |
|
289 |
$nom_latin_decoupe=$nameparser->parse($identifiant_espece);
|
- |
|
290 |
|
- |
|
291 |
// requete sous espece (on privilegie les noms retenu cf tri par esn_ce_statut)
|
- |
|
292 |
if (isset($nom_latin_decoupe['infra']) && $nom_latin_decoupe['infra']!="") {
|
- |
|
293 |
$requete="SELECT DISTINCT en_id_nom, esn_ce_statut" .
|
- |
|
294 |
" FROM eflore_nom, eflore_nom_rang, eflore_selection_nom " .
|
- |
|
295 |
" WHERE en_id_version_projet_nom = '25' AND en_nom_genre = '".$this->proteger($nom_latin_decoupe['genus'])."' " .
|
- |
|
296 |
" AND enrg_abreviation_rang = '".$this->proteger($nom_latin_decoupe['infra_type'])."' " .
|
- |
|
297 |
" AND en_epithete_infra_specifique = '".$this->proteger($nom_latin_decoupe['infra'])."' " .
|
- |
|
298 |
" AND esn_id_nom= en_id_nom ".
|
- |
|
299 |
" AND esn_id_version_projet_taxon=en_id_version_projet_nom " .
|
- |
|
300 |
" AND en_epithete_espece = '".$this->proteger($nom_latin_decoupe['species'])."' AND en_ce_rang = enrg_id_rang " .
|
- |
|
301 |
" ORDER BY esn_ce_statut ".
|
- |
|
302 |
" LIMIT 1";
|
- |
|
303 |
}
|
- |
|
304 |
else { // espece (on privilegie les noms retenu cf tri par esn_ce_statut)
|
- |
|
305 |
$requete="SELECT DISTINCT en_id_nom, esn_ce_statut" .
|
- |
|
306 |
" FROM eflore_nom, eflore_nom_rang, eflore_selection_nom " .
|
- |
|
307 |
" WHERE en_id_version_projet_nom = '25' AND en_nom_genre = '".$this->proteger($nom_latin_decoupe['genus'])."' " .
|
- |
|
308 |
" AND enrg_abreviation_rang = 'sp.' " .
|
- |
|
309 |
" AND esn_id_nom= en_id_nom ".
|
- |
|
310 |
" AND esn_id_version_projet_taxon=en_id_version_projet_nom " .
|
- |
|
311 |
" AND en_epithete_espece = '".$this->proteger($nom_latin_decoupe['species'])."' AND en_ce_rang = enrg_id_rang " .
|
- |
|
312 |
" ORDER BY esn_ce_statut ".
|
- |
|
313 |
" LIMIT 1";
|
- |
|
314 |
|
- |
|
315 |
}
|
- |
|
316 |
|
- |
|
317 |
$resultat = $this->requeter($requete);
|
- |
|
318 |
|
- |
|
319 |
$retour = array();
|
- |
|
320 |
if (is_array($resultat) && count($resultat) > 0) {
|
- |
|
321 |
$retour = $resultat[0];
|
- |
|
322 |
}
|
- |
|
323 |
|
- |
|
324 |
return $resultat;
|
255 |
}
|
325 |
}
|
Line 256... |
Line 326... |
256 |
|
326 |
|
257 |
private function formaterNom($rawnom) {
|
327 |
private function formaterNom($rawnom) {
|
Line 309... |
Line 379... |
309 |
$auteurs = ' '.$auteur_basio;
|
379 |
$auteurs = ' '.$auteur_basio;
|
310 |
}
|
380 |
}
|
Line 311... |
Line 381... |
311 |
|
381 |
|
312 |
return $auteurs ;
|
382 |
return $auteurs ;
|
- |
|
383 |
}
|
- |
|
384 |
|
- |
|
385 |
function rechercherInfosSurTexteCodeOuNumTax($identifiant_espece) {
|
- |
|
386 |
// texte libre, nom scientifique,
|
- |
|
387 |
// ou code nomenclatural (format BDNFFnn999999)
|
- |
|
388 |
// ou code taxonomique (format BDNFFnt999999)
|
- |
|
389 |
$identifiant_espece=trim($identifiant_espece);
|
- |
|
390 |
$identifiant_espece=utf8_encode($identifiant_espece);
|
- |
|
391 |
|
- |
|
392 |
$retour = array();
|
- |
|
393 |
|
- |
|
394 |
preg_match('/BDNFFnn([0-9][0-9]*)/',$identifiant_espece, $elements);
|
- |
|
395 |
if (isset($elements[1])) {
|
- |
|
396 |
// Numero nomenclatural
|
- |
|
397 |
$infos_taxon = $this->rechercherInformationsComplementairesSurNumNom($elements[1]);
|
- |
|
398 |
$retour = array("nom_sel" => $this->formaterNom($infos_taxon), "en_id_nom" => $elements[1]);
|
- |
|
399 |
} else {
|
- |
|
400 |
// Numero taxonomique ou nom scientifique
|
- |
|
401 |
preg_match('/BDNFFnt([0-9][0-9]*)/', $identifiant_espece, $elements);
|
- |
|
402 |
|
- |
|
403 |
if (isset($elements[1])) {
|
- |
|
404 |
// Numero taxonomique
|
- |
|
405 |
$infos_taxon = $this->effectuerRequeteInfosComplementairesSurNumTax($elements[1]);
|
- |
|
406 |
$retour = array("nom_sel" => $this->formaterNom($infos_taxon), "en_id_nom" => $infos_taxon['en_id_nom']);
|
- |
|
407 |
} else {
|
- |
|
408 |
// Nom scientifique
|
- |
|
409 |
$id_nom = $this->decouperNomEtRechercheEspeceOuSousEspece($identifiant_espece);
|
- |
|
410 |
// Recherche du nom associe
|
- |
|
411 |
$infos_nom = $this->effectuerRequeteInfosComplementairesSurNumNom($id_nom['en_id_nom']);
|
- |
|
412 |
if (is_array($infos_nom) && !empty($infos_nom)) {
|
- |
|
413 |
$retour = array("nom_sel" => $this->formaterNom($infos_nom), "en_id_nom" => $id_nom['en_id_nom']);
|
- |
|
414 |
} else {
|
- |
|
415 |
$retour = array("nom_sel" => $identifiant_espece);
|
- |
|
416 |
}
|
- |
|
417 |
}
|
- |
|
418 |
}
|
- |
|
419 |
return $retour;
|
313 |
}
|
420 |
}
|
314 |
}
|
421 |
}
|
315 |
?>
|
422 |
?>
|