Subversion Repositories eFlore/Applications.cel

Rev

Rev 1821 | Rev 1903 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1821 Rev 1896
Line 15... Line 15...
15
 * @copyright © 2011, Jean-Pascal MILCENT
15
 * @copyright © 2011, Jean-Pascal MILCENT
16
 */
16
 */
17
class CelWidgetSaisie extends CelMotCle {
17
class CelWidgetSaisie extends CelMotCle {
Line 18... Line 18...
18
 
18
 
-
 
19
	private $projet = null;
19
	private $projet = null;
20
	private $projetTags = array();
20
	private $tagsObs = null;
21
	private $tagsObs = null;
21
	private $tagsImg = null;
22
	private $tagsImg = null;
22
	private $champsEtendusObs = null;
23
	private $champsEtendusObs = null;
23
	private $utilisateur_id = null;
24
	private $utilisateur_id = null;
Line 28... Line 29...
28
 
29
 
29
	public function createElement($requeteDonnees) {
30
	public function createElement($requeteDonnees) {
30
		if (self::ARRET_SERVICE) {
31
		if (self::ARRET_SERVICE) {
31
			$this->messages[] = "Désactivation temporaire du service d'envoi des données au CEL.";
32
			$this->messages[] = "Désactivation temporaire du service d'envoi des données au CEL.";
32
		} else if (array_key_exists('projet', $requeteDonnees)) {
33
		} else if (array_key_exists('projet', $requeteDonnees)) {
33
			$this->debug[] = 'Projet : ok';
34
			$this->debug[] = 'Projet : '.$requeteDonnees['projet'];
-
 
35
			$this->projet = $requeteDonnees['projet'];
34
			$this->projet = $requeteDonnees['projet'];
36
 
35
			if (array_key_exists('tag-obs', $requeteDonnees) && $requeteDonnees['tag-obs'] != '') {
37
			// Traitements des tags multiples de projet
36
				$this->tagsObs = explode(',', $requeteDonnees['tag-obs']);
38
			$this->traiterProjetTags();
37
			}
39
 
38
			$this->tagsObs[] = 'Projets coopératifs>'.$this->projet;
40
			// Traitement des tags spécifique aux obs
-
 
41
			$this->traiterTagObs($requeteDonnees);
-
 
42
 
39
			if (array_key_exists('tag-img', $requeteDonnees) && $requeteDonnees['tag-img'] != '') {
43
			// Traitement des tags spécifique aux images
40
				$this->tagsImg = explode(',', $requeteDonnees['tag-img']);
44
			$this->traiterTagImg($requeteDonnees);
41
			}
45
 
42
			$this->tagsImg[] = 'Projets coopératifs>'.$this->projet;
46
			// Traitement des observations et des images
43
			if (filter_var($requeteDonnees['utilisateur']['courriel'], FILTER_VALIDATE_EMAIL)) {
47
			if (filter_var($requeteDonnees['utilisateur']['courriel'], FILTER_VALIDATE_EMAIL)) {
44
				$this->debug[] = 'Utilisateur : ok';
48
				$this->debug[] = 'Utilisateur : '.print_r($requeteDonnees['utilisateur'], true);
45
				$utilisateur = $requeteDonnees['utilisateur'];
49
				$utilisateur = $requeteDonnees['utilisateur'];
46
				if (array_key_exists('courriel', $utilisateur)) {
50
				if (array_key_exists('courriel', $utilisateur)) {
47
					$this->debug[] = 'Courriel : ok';
51
					$this->debug[] = 'Courriel : '.$utilisateur['courriel'];
48
					$utilisateur = $this->affecterChampsManquantsUtilisateur($utilisateur);
52
					$utilisateur = $this->affecterChampsManquantsUtilisateur($utilisateur);
49
					extract($utilisateur);
53
					extract($utilisateur);
50
					$this->utilisateur_id = $id_utilisateur;
54
					$this->utilisateur_id = $id_utilisateur;
51
					$ordre = $this->getMaxOrdre($id_utilisateur);
55
					$ordre = $this->getMaxOrdre($id_utilisateur);
Line 114... Line 118...
114
									'obs' => $this->protegerTableau($obsAAjouter),
118
									'obs' => $this->protegerTableau($obsAAjouter),
115
									'img' => $imgAAjouter);
119
									'img' => $imgAAjouter);
116
							}
120
							}
117
						}
121
						}
118
						$this->debug[] = 'Nbre obs ajoutée : '.count($observations);
122
						$this->debug[] = 'Nbre obs ajoutée : '.count($observations);
-
 
123
						$this->debug[] = 'projet : '.$this->projet;
-
 
124
						$this->debug[] = 'tagsObs : '.print_r($this->tagsObs, true);
-
 
125
						$this->debug[] = 'tagsImg : '.print_r($this->tagsImg, true);
Line 119... Line 126...
119
 
126
 
120
						// Insertion dans la base
127
						// Insertion dans la base
121
						$obs_a_taguer_ordres = array();
128
						$obs_a_taguer_ordres = array();
122
						$img_a_taguer_ids = array();
129
						$img_a_taguer_ids = array();
Line 157... Line 164...
157
				$this->messages[] = "Les informations concernant l'utilisateur (prénom, nom, courriel) n'ont pas été transmises.";
164
				$this->messages[] = "Les informations concernant l'utilisateur (prénom, nom, courriel) n'ont pas été transmises.";
158
			}
165
			}
159
		} else {
166
		} else {
160
			$this->messages[] = "Les informations concernant le projet coopératif n'ont pas été transmises.";
167
			$this->messages[] = "Les informations concernant le projet coopératif n'ont pas été transmises.";
161
		}
168
		}
-
 
169
		if (count($this->messages) > 0) {
-
 
170
			$this->debug[] = print_r($this->messages, true);
-
 
171
		}
162
		$msg = (count($this->messages) > 0) ? 'erreur' : 'ok';
172
		$msg = (count($this->messages) > 0) ? 'erreur' : 'ok';
163
		$retour = (object) array('msg' => $msg);
173
		$retour = (object) array('msg' => $msg);
164
		$this->envoyerJson($retour);
174
		$this->envoyerJson($retour);
165
		exit;
175
		exit;
166
	}
176
	}
Line -... Line 177...
-
 
177
 
-
 
178
	private function traiterProjetTags() {
-
 
179
		if (strpos($this->projet, ',') === false) {
-
 
180
			$this->projetTags = array('Projets coopératifs>'.$this->projet);
-
 
181
		} else {
-
 
182
			$projetTagsTxt = explode(',', $this->projet);
-
 
183
			foreach ($projetTagsTxt as $tag) {
-
 
184
				$this->projetTags[] = 'Projets coopératifs>'.$tag;
-
 
185
			}
-
 
186
		}
-
 
187
	}
-
 
188
 
-
 
189
	private function traiterTagObs($requeteDonnees) {
-
 
190
		if (array_key_exists('tag-obs', $requeteDonnees) && $requeteDonnees['tag-obs'] != '') {
-
 
191
			$this->tagsObs = explode(',', $requeteDonnees['tag-obs']);
-
 
192
		}
-
 
193
		foreach ($this->projetTags as $tag) {
-
 
194
			$this->tagsObs[] = $tag;
-
 
195
		}
-
 
196
	}
-
 
197
 
-
 
198
	private function traiterTagImg($requeteDonnees) {
-
 
199
		if (array_key_exists('tag-img', $requeteDonnees) && $requeteDonnees['tag-img'] != '') {
-
 
200
			$this->tagsImg = explode(',', $requeteDonnees['tag-img']);
-
 
201
		}
-
 
202
		foreach ($this->projetTags as $tag) {
-
 
203
			$this->tagsImg[] = $tag;
-
 
204
		}
-
 
205
	}
167
 
206
 
168
	private function ajouterChampsEtendusObs($obs_ids, $obs_a_champs_etendus) {
207
	private function ajouterChampsEtendusObs($obs_ids, $obs_a_champs_etendus) {
169
		$champs_etendus_obs = array();
208
		$champs_etendus_obs = array();
Line 170... Line 209...
170
		$gestionChampsEtendus = new GestionChampsEtendus($this->config, 'obs');
209
		$gestionChampsEtendus = new GestionChampsEtendus($this->config, 'obs');
Line 452... Line 491...
452
		$id_obs = (count($resultat) > 0) ? $resultat[0]['id_observation'] : false;
491
		$id_obs = (count($resultat) > 0) ? $resultat[0]['id_observation'] : false;
453
		return $id_obs;
492
		return $id_obs;
454
	}
493
	}
Line 455... Line 494...
455
 
494
 
-
 
495
	private function obtenirIdsObsPourTableauOrdres($id_utilisateur, $ordres) {
456
	private function obtenirIdsObsPourTableauOrdres($id_utilisateur, $ordres) {
496
		$this->debug[] = print_r($ordres,true);
457
		$id_utilisateur = Cel::db()->proteger($id_utilisateur);
497
		$id_utilisateur = Cel::db()->proteger($id_utilisateur);
Line 458... Line 498...
458
		$ordres = array_map(array(Cel::db(),'proteger'), $ordres);
498
		$ordres = array_map(array(Cel::db(),'proteger'), $ordres);
459
 
499
 
460
		$requete = 'SELECT id_observation '.
500
		$requete = 'SELECT id_observation '.
461
							'FROM cel_obs '.
501
			'FROM cel_obs '.
462
							"WHERE ce_utilisateur = $id_utilisateur ".
-
 
-
 
502
			"WHERE ce_utilisateur = $id_utilisateur ".
463
							" AND ordre IN (".implode(',',$ordres).") ";
503
			"	AND ordre IN (".implode(',',$ordres).") ";
464
 
504
		$this->debug[] = $requete;
465
		$resultat = Cel::db()->executerRequete($requete);
505
		$resultat = Cel::db()->executerRequete($requete);
466
		$ids = array();
506
		$ids = array();
467
		foreach($resultat as $id) {
507
		foreach($resultat as $id) {