Subversion Repositories eFlore/Applications.cel

Rev

Rev 3088 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3088 Rev 3117
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'];