| Line 38... |
Line 38... |
| 38 |
$this->messages[] = "Désactivation temporaire du service d'envoi des données au CEL.";
|
38 |
$this->messages[] = "Désactivation temporaire du service d'envoi des données au CEL.";
|
| 39 |
} else if (array_key_exists('projet', $requeteDonnees)) {
|
39 |
} else if (array_key_exists('projet', $requeteDonnees)) {
|
| 40 |
$this->debug[] = 'Projet : '.$requeteDonnees['projet'];
|
40 |
$this->debug[] = 'Projet : '.$requeteDonnees['projet'];
|
| 41 |
$this->projet = $requeteDonnees['projet'];
|
41 |
$this->projet = $requeteDonnees['projet'];
|
| Line -... |
Line 42... |
| - |
|
42 |
|
| - |
|
43 |
// Si c'estune obs Pl@ntNet, la garde-t-on ou non ?
|
| - |
|
44 |
if (! empty($requeteDonnees['tag-obs']) && strpos(strtolower($requeteDonnees['tag-obs']), 'plantnet') !== false) {
|
| - |
|
45 |
// 1) l'email est-il dans notre annuaire ?
|
| - |
|
46 |
$inscritATela = $this->estInscritATela($requeteDonnees['utilisateur']['courriel']);
|
| - |
|
47 |
// 2) y a-t-il date, lieu, détermination, référentiel ? (à voir plus tard)
|
| - |
|
48 |
// $donneeQualifiee = $this->estUneDonneeQualifiee($requeteDonnees);
|
| - |
|
49 |
// @WARNING : ne pas relancer enrichirDonneesTaxonomiques() !
|
| - |
|
50 |
$donneeQualifiee = false; // debug
|
| - |
|
51 |
if (! $inscritATela && ! $donneeQualifiee) {
|
| - |
|
52 |
// fake ID
|
| - |
|
53 |
$retour = (object) array(
|
| - |
|
54 |
'msg' => "observation Pl@ntNet non sauvegardée",
|
| - |
|
55 |
'id' => "fake-" . uniqid(),
|
| - |
|
56 |
'images' => array()
|
| - |
|
57 |
);
|
| - |
|
58 |
$this->envoyerJson($retour);
|
| - |
|
59 |
exit; // envoyerJson() ne termine pas le script !
|
| - |
|
60 |
} // sinon traitement normal
|
| - |
|
61 |
}
|
| 42 |
|
62 |
|
| 43 |
// Traitements des tags multiples de projet
|
63 |
// Traitements des tags multiples de projet
|
| Line 44... |
Line 64... |
| 44 |
$this->traiterProjetTags();
|
64 |
$this->traiterProjetTags();
|
| 45 |
|
65 |
|
| Line 250... |
Line 270... |
| 250 |
$this->envoyerJson($retour);
|
270 |
$this->envoyerJson($retour);
|
| 251 |
exit;
|
271 |
exit;
|
| 252 |
}
|
272 |
}
|
| Line 253... |
Line 273... |
| 253 |
|
273 |
|
| - |
|
274 |
/**
|
| - |
|
275 |
* Retourne true si le courriel $courriel est présent dans l'annuaire Tela,
|
| - |
|
276 |
* false sinon
|
| - |
|
277 |
*/
|
| - |
|
278 |
protected function estInscritATela($courriel) {
|
| - |
|
279 |
if (empty($courriel)) {
|
| - |
|
280 |
return false;
|
| - |
|
281 |
}
|
| - |
|
282 |
// interrogation de l'annuaire
|
| - |
|
283 |
$url = sprintf($this->config['settings']['baseURLServicesAnnuaireTpl'], 'utilisateur/identite-par-courriel/' . $courriel);
|
| - |
|
284 |
$retour = file_get_contents($url);
|
| - |
|
285 |
if (! $retour) {
|
| - |
|
286 |
return false;
|
| - |
|
287 |
}
|
| - |
|
288 |
try {
|
| - |
|
289 |
$retour = json_decode($retour, true);
|
| - |
|
290 |
} catch (Exception $e) {
|
| - |
|
291 |
return false;
|
| - |
|
292 |
}
|
| - |
|
293 |
// le service annuaire a retourné qqch de valide
|
| - |
|
294 |
return (! empty($retour));
|
| - |
|
295 |
}
|
| - |
|
296 |
|
| - |
|
297 |
/**
|
| - |
|
298 |
* Retourne true si les champs suivants sont présents dans le tableau :
|
| - |
|
299 |
* - obsId1[nom_sel]
|
| - |
|
300 |
* - obsId1[latitude]' : obs.geoloc.lat || '',
|
| - |
|
301 |
'obsId1[longitude]' : obs.geoloc.lon || '',
|
| - |
|
302 |
* mot-clé "pn:referentiel"
|
| - |
|
303 |
*/
|
| - |
|
304 |
protected function estUneDonneeQualifiee($donnees) {
|
| - |
|
305 |
// vérifier date et géoloc
|
| - |
|
306 |
// lancer enrichirDonneesTaxonomiques et vérifier si ça a retrouvé un nn
|
| - |
|
307 |
}
|
| - |
|
308 |
|
| 254 |
/**
|
309 |
/**
|
| 255 |
* Si les données taxonomiques sont incomplètes dans $obs
|
310 |
* Si les données taxonomiques sont incomplètes dans $obs
|
| 256 |
* (clefs 'nom_sel_nn', 'nom_sel', 'nom_referentiel', 'nom_ret_nn',
|
311 |
* (clefs 'nom_sel_nn', 'nom_sel', 'nom_referentiel', 'nom_ret_nn',
|
| 257 |
* 'nom_ret', 'famille'), tente d'en récupérer un maximum à l'aide des
|
312 |
* 'nom_ret', 'famille'), tente d'en récupérer un maximum à l'aide des
|
| 258 |
* services eFlore, à condition que soient mentionnés au moins :
|
313 |
* services eFlore, à condition que soient mentionnés au moins :
|
| 259 |
* - un nom de référentiel
|
314 |
* - un nom de référentiel
|
| 260 |
* - un nom_sel_nn OU un nom_sel
|
315 |
* - un nom_sel_nn OU un nom_sel
|
| 261 |
*/
|
316 |
*/
|
| 262 |
protected function enrichirDonneesTaxonomiques(&$obs) {
|
317 |
protected function enrichirDonneesTaxonomiques(&$obs) {
|
| 263 |
// sans référentiel, on ne peut rien faire
|
318 |
// sans référentiel, on ne peut rien faire
|
| 264 |
if (! empty($obs['nom_referentiel'])) {
|
319 |
if (! empty($obs['nom_referentiel'])) {
|
| 265 |
// copies locales pour ne pas abimer les donénes d'entrée
|
320 |
// copies locales pour ne pas abimer les données d'entrée
|
| 266 |
$nn = $obs['nom_sel_nn'];
|
321 |
$nn = $obs['nom_sel_nn'];
|
| 267 |
$ref = $obs['nom_referentiel'];
|
322 |
$ref = $obs['nom_referentiel'];
|
| 268 |
$ns = $obs['nom_sel'];
|
323 |
$ns = $obs['nom_sel'];
|
| 269 |
$nr = $obs['nom_ret'];
|
324 |
$nr = $obs['nom_ret'];
|