Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1744 → Rev 1745

/trunk/jrest/lib/GestionObservation.php
297,13 → 297,13
* @return $parametres le tableau modifié selon ce qu'il contenait
*/
private function formaterParametresObservation(&$parametres) {
 
$code_referentiel = 'bdtfx';
if(!isset($parametres['nom_referentiel'])) {
$parametres['nom_referentiel'] = 'bdtfx:v1.01';
$parametres['nom_referentiel'] = Cel::$default_referentiel;
}
$code_referentiel = substr($parametres['nom_referentiel'], 0, 5);
$code_referentiel = substr(trim($parametres['nom_referentiel']), 0, 5);
 
if($this->estUnNomRetenuSansSaisi($parametres)) {
echo $this->estUnNomRetenuSansSaisi($parametres, 'nom_ret_nn');exit;
$parametres['nom_ret']= "";
311,30 → 311,46
$parametres['nt']= "";
$parametres['famille']= "";
}
if ($this->estUnNomSolitaire($parametres)) {
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
 
// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
// de nom de taxon qui n'a pas été validé par la selection
if(count($complement) > 0) {
$parametres['nom_sel_nn'] = $complement[0][0];
/* pour un nom saisi sans autocomplétion 3 cas de figure existent:
1) référentiel bdtfx
1.1) trouvé par le webservice => ref = bdtfx
1.2) pas trouvé par le webservice => ref = autre
2) si le référentiel est inconnu (explicitement mis à "autre"), alors pas d'appel au webservice => ref = autre */
if(in_array($code_referentiel, Cel::$referentiels_valides)) {
if ($this->estUnNomSolitaire($parametres)) {
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
 
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
 
// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
// de nom de taxon qui n'a pas été validé par la selection
if(count($complement) > 0) {
$parametres['nom_sel_nn'] = $complement[0][0];
}
else {
// pas de résultat de recherche sur le référentiel demandé, le webservice doit peut-être être corrigé
// mais en tout état de cause nous n'insérerons PAS de données incertaines associé à un référentiel !
$code_referentiel = Cel::$fallback_referentiel;
// note: 'nom_sel_nn' devrait être NULL, donc parametreNumNomEstPresent() ci-dessous ne devrait pas advenir
}
}
}
 
if ($this->parametreNumNomEstPresent($parametres)) {
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
if ($this->parametreNumNomEstPresent($parametres)) {
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
$parametres['nom_ret']=$complement['Nom_Retenu'];
$parametres['nom_ret_nn']=$complement['Num_Nom_Retenu'];
$parametres['nt']=$complement['Num_Taxon'];
$parametres['famille']=$complement['Famille'];
$parametres['nom_ret']=$complement['Nom_Retenu'];
$parametres['nom_ret_nn']=$complement['Num_Nom_Retenu'];
$parametres['nt']=$complement['Num_Taxon'];
$parametres['famille']=$complement['Famille'];
}
}
 
// mise à jour du référentiel utilisé, sans n° de version
$parametres['nom_referentiel'] = $code_referentiel;
if(isset($parametres['ce_utilisateur'])) {
425,7 → 441,7
$sous_requete = '';
 
$parametres = $this->formaterParametresObservation($parametres);
 
$champs = '';
$valeurs = '';