Subversion Repositories eFlore/Applications.cel

Rev

Rev 3087 | Rev 3112 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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