40,6 → 40,26 |
$this->debug[] = 'Projet : '.$requeteDonnees['projet']; |
$this->projet = $requeteDonnees['projet']; |
|
// Si c'estune obs Pl@ntNet, la garde-t-on ou non ? |
if (! empty($requeteDonnees['tag-obs']) && strpos(strtolower($requeteDonnees['tag-obs']), 'plantnet') !== false) { |
// 1) l'email est-il dans notre annuaire ? |
$inscritATela = $this->estInscritATela($requeteDonnees['utilisateur']['courriel']); |
// 2) y a-t-il date, lieu, détermination, référentiel ? (à voir plus tard) |
// $donneeQualifiee = $this->estUneDonneeQualifiee($requeteDonnees); |
// @WARNING : ne pas relancer enrichirDonneesTaxonomiques() ! |
$donneeQualifiee = false; // debug |
if (! $inscritATela && ! $donneeQualifiee) { |
// fake ID |
$retour = (object) array( |
'msg' => "observation Pl@ntNet non sauvegardée", |
'id' => "fake-" . uniqid(), |
'images' => array() |
); |
$this->envoyerJson($retour); |
exit; // envoyerJson() ne termine pas le script ! |
} // sinon traitement normal |
} |
|
// Traitements des tags multiples de projet |
$this->traiterProjetTags(); |
|
252,6 → 272,41 |
} |
|
/** |
* Retourne true si le courriel $courriel est présent dans l'annuaire Tela, |
* false sinon |
*/ |
protected function estInscritATela($courriel) { |
if (empty($courriel)) { |
return false; |
} |
// interrogation de l'annuaire |
$url = sprintf($this->config['settings']['baseURLServicesAnnuaireTpl'], 'utilisateur/identite-par-courriel/' . $courriel); |
$retour = file_get_contents($url); |
if (! $retour) { |
return false; |
} |
try { |
$retour = json_decode($retour, true); |
} catch (Exception $e) { |
return false; |
} |
// le service annuaire a retourné qqch de valide |
return (! empty($retour)); |
} |
|
/** |
* Retourne true si les champs suivants sont présents dans le tableau : |
* - obsId1[nom_sel] |
* - obsId1[latitude]' : obs.geoloc.lat || '', |
'obsId1[longitude]' : obs.geoloc.lon || '', |
* mot-clé "pn:referentiel" |
*/ |
protected function estUneDonneeQualifiee($donnees) { |
// vérifier date et géoloc |
// lancer enrichirDonneesTaxonomiques et vérifier si ça a retrouvé un nn |
} |
|
/** |
* Si les données taxonomiques sont incomplètes dans $obs |
* (clefs 'nom_sel_nn', 'nom_sel', 'nom_referentiel', 'nom_ret_nn', |
* 'nom_ret', 'famille'), tente d'en récupérer un maximum à l'aide des |
262,7 → 317,7 |
protected function enrichirDonneesTaxonomiques(&$obs) { |
// sans référentiel, on ne peut rien faire |
if (! empty($obs['nom_referentiel'])) { |
// copies locales pour ne pas abimer les donénes d'entrée |
// copies locales pour ne pas abimer les données d'entrée |
$nn = $obs['nom_sel_nn']; |
$ref = $obs['nom_referentiel']; |
$ns = $obs['nom_sel']; |