| 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 84... |
Line 88... |
| 84 |
$obsAAjouter['station'] = isset($obs['station']) ? $obs['station'] : null;
|
88 |
$obsAAjouter['station'] = isset($obs['station']) ? $obs['station'] : null;
|
| 85 |
$obsAAjouter['milieu'] = isset($obs['milieu']) ? $obs['milieu'] : null;
|
89 |
$obsAAjouter['milieu'] = isset($obs['milieu']) ? $obs['milieu'] : null;
|
| 86 |
$obsAAjouter['latitude'] = $obs['latitude'];
|
90 |
$obsAAjouter['latitude'] = $obs['latitude'];
|
| 87 |
$obsAAjouter['longitude'] = $obs['longitude'];
|
91 |
$obsAAjouter['longitude'] = $obs['longitude'];
|
| 88 |
$obsAAjouter['geodatum'] = 'WGS84';
|
92 |
$obsAAjouter['geodatum'] = 'WGS84';
|
| 89 |
|
93 |
|
| 90 |
$obsAAjouter['certitude'] = isset($obs['certitude']) ? $obs['certitude'] : null;
|
94 |
$obsAAjouter['certitude'] = isset($obs['certitude']) ? $obs['certitude'] : null;
|
| 91 |
$obsAAjouter['phenologie'] = isset($obs['phenologie']) ? $obs['phenologie'] : null;
|
95 |
$obsAAjouter['phenologie'] = isset($obs['phenologie']) ? $obs['phenologie'] : null;
|
| 92 |
$obsAAjouter['abondance'] = isset($obs['abondance']) ? $obs['abondance'] : null;
|
96 |
$obsAAjouter['abondance'] = isset($obs['abondance']) ? $obs['abondance'] : null;
|
| Line 93... |
Line 97... |
| 93 |
|
97 |
|
| 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 362... |
Line 401... |
| 362 |
$this->messages[] = $e;
|
401 |
$this->messages[] = $e;
|
| 363 |
}
|
402 |
}
|
| 364 |
}
|
403 |
}
|
| 365 |
}
|
404 |
}
|
| 366 |
// Liaison des tags spécifiques à chaque image s'il y en a
|
405 |
// Liaison des tags spécifiques à chaque image s'il y en a
|
| 367 |
if(count($this->correspondanceIdImgTags) > 0) {
|
406 |
if (count($this->correspondanceIdImgTags) > 0) {
|
| 368 |
foreach ($this->correspondanceIdImgTags as $id_img => $tags) {
|
407 |
foreach ($this->correspondanceIdImgTags as $id_img => $tags) {
|
| 369 |
if($tags != null && !empty($tags)) {
|
408 |
if ($tags != null && !empty($tags)) {
|
| 370 |
$this->lierImgAMotsCles(array($id_img), $tags);
|
409 |
$this->lierImgAMotsCles(array($id_img), $tags);
|
| 371 |
}
|
410 |
}
|
| 372 |
}
|
411 |
}
|
| 373 |
}
|
412 |
}
|
| 374 |
}
|
413 |
}
|
| Line 441... |
Line 480... |
| 441 |
|
480 |
|
| 442 |
$id_utilisateur = Cel::db()->proteger($id_utilisateur);
|
481 |
$id_utilisateur = Cel::db()->proteger($id_utilisateur);
|
| Line 443... |
Line 482... |
| 443 |
$ordre = Cel::db()->proteger($ordre);
|
482 |
$ordre = Cel::db()->proteger($ordre);
|
| 444 |
|
483 |
|
| 445 |
$requete = 'SELECT id_observation '.
|
484 |
$requete = 'SELECT id_observation '.
|
| 446 |
'FROM cel_obs '.
|
485 |
'FROM cel_obs '.
|
| Line 447... |
Line 486... |
| 447 |
"WHERE ce_utilisateur = $id_utilisateur ".
|
486 |
"WHERE ce_utilisateur = $id_utilisateur ".
|
| Line 448... |
Line 487... |
| 448 |
" AND ordre = $ordre ";
|
487 |
" AND ordre = $ordre ";
|
| 449 |
|
488 |
|
| 450 |
$resultat = Cel::db()->executerRequete($requete);
|
489 |
$resultat = Cel::db()->executerRequete($requete);
|
| Line 451... |
Line 490... |
| 451 |
|
490 |
|
| - |
|
491 |
$id_obs = (count($resultat) > 0) ? $resultat[0]['id_observation'] : false;
|
| 452 |
$id_obs = (count($resultat) > 0) ? $resultat[0]['id_observation'] : false;
|
492 |
return $id_obs;
|
| 453 |
return $id_obs;
|
493 |
}
|
| Line 454... |
Line 494... |
| 454 |
}
|
494 |
|
| 455 |
|
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);
|
| 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).") ";
|