17,6 → 17,7 |
class CelWidgetSaisie extends CelMotCle { |
|
private $projet = null; |
private $projetTags = array(); |
private $tagsObs = null; |
private $tagsImg = null; |
private $champsEtendusObs = null; |
30,21 → 31,24 |
if (self::ARRET_SERVICE) { |
$this->messages[] = "Désactivation temporaire du service d'envoi des données au CEL."; |
} else if (array_key_exists('projet', $requeteDonnees)) { |
$this->debug[] = 'Projet : ok'; |
$this->debug[] = 'Projet : '.$requeteDonnees['projet']; |
$this->projet = $requeteDonnees['projet']; |
if (array_key_exists('tag-obs', $requeteDonnees) && $requeteDonnees['tag-obs'] != '') { |
$this->tagsObs = explode(',', $requeteDonnees['tag-obs']); |
} |
$this->tagsObs[] = 'Projets coopératifs>'.$this->projet; |
if (array_key_exists('tag-img', $requeteDonnees) && $requeteDonnees['tag-img'] != '') { |
$this->tagsImg = explode(',', $requeteDonnees['tag-img']); |
} |
$this->tagsImg[] = 'Projets coopératifs>'.$this->projet; |
|
// Traitements des tags multiples de projet |
$this->traiterProjetTags(); |
|
// Traitement des tags spécifique aux obs |
$this->traiterTagObs($requeteDonnees); |
|
// Traitement des tags spécifique aux images |
$this->traiterTagImg($requeteDonnees); |
|
// Traitement des observations et des images |
if (filter_var($requeteDonnees['utilisateur']['courriel'], FILTER_VALIDATE_EMAIL)) { |
$this->debug[] = 'Utilisateur : ok'; |
$this->debug[] = 'Utilisateur : '.print_r($requeteDonnees['utilisateur'], true); |
$utilisateur = $requeteDonnees['utilisateur']; |
if (array_key_exists('courriel', $utilisateur)) { |
$this->debug[] = 'Courriel : ok'; |
$this->debug[] = 'Courriel : '.$utilisateur['courriel']; |
$utilisateur = $this->affecterChampsManquantsUtilisateur($utilisateur); |
extract($utilisateur); |
$this->utilisateur_id = $id_utilisateur; |
86,7 → 90,7 |
$obsAAjouter['latitude'] = $obs['latitude']; |
$obsAAjouter['longitude'] = $obs['longitude']; |
$obsAAjouter['geodatum'] = 'WGS84'; |
|
|
$obsAAjouter['certitude'] = isset($obs['certitude']) ? $obs['certitude'] : null; |
$obsAAjouter['phenologie'] = isset($obs['phenologie']) ? $obs['phenologie'] : null; |
$obsAAjouter['abondance'] = isset($obs['abondance']) ? $obs['abondance'] : null; |
116,6 → 120,9 |
} |
} |
$this->debug[] = 'Nbre obs ajoutée : '.count($observations); |
$this->debug[] = 'projet : '.$this->projet; |
$this->debug[] = 'tagsObs : '.print_r($this->tagsObs, true); |
$this->debug[] = 'tagsImg : '.print_r($this->tagsImg, true); |
|
// Insertion dans la base |
$obs_a_taguer_ordres = array(); |
159,6 → 166,9 |
} else { |
$this->messages[] = "Les informations concernant le projet coopératif n'ont pas été transmises."; |
} |
if (count($this->messages) > 0) { |
$this->debug[] = print_r($this->messages, true); |
} |
$msg = (count($this->messages) > 0) ? 'erreur' : 'ok'; |
$retour = (object) array('msg' => $msg); |
$this->envoyerJson($retour); |
165,6 → 175,35 |
exit; |
} |
|
private function traiterProjetTags() { |
if (strpos($this->projet, ',') === false) { |
$this->projetTags = array('Projets coopératifs>'.$this->projet); |
} else { |
$projetTagsTxt = explode(',', $this->projet); |
foreach ($projetTagsTxt as $tag) { |
$this->projetTags[] = 'Projets coopératifs>'.$tag; |
} |
} |
} |
|
private function traiterTagObs($requeteDonnees) { |
if (array_key_exists('tag-obs', $requeteDonnees) && $requeteDonnees['tag-obs'] != '') { |
$this->tagsObs = explode(',', $requeteDonnees['tag-obs']); |
} |
foreach ($this->projetTags as $tag) { |
$this->tagsObs[] = $tag; |
} |
} |
|
private function traiterTagImg($requeteDonnees) { |
if (array_key_exists('tag-img', $requeteDonnees) && $requeteDonnees['tag-img'] != '') { |
$this->tagsImg = explode(',', $requeteDonnees['tag-img']); |
} |
foreach ($this->projetTags as $tag) { |
$this->tagsImg[] = $tag; |
} |
} |
|
private function ajouterChampsEtendusObs($obs_ids, $obs_a_champs_etendus) { |
$champs_etendus_obs = array(); |
$gestionChampsEtendus = new GestionChampsEtendus($this->config, 'obs'); |
364,9 → 403,9 |
} |
} |
// Liaison des tags spécifiques à chaque image s'il y en a |
if(count($this->correspondanceIdImgTags) > 0) { |
if (count($this->correspondanceIdImgTags) > 0) { |
foreach ($this->correspondanceIdImgTags as $id_img => $tags) { |
if($tags != null && !empty($tags)) { |
if ($tags != null && !empty($tags)) { |
$this->lierImgAMotsCles(array($id_img), $tags); |
} |
} |
443,9 → 482,9 |
$ordre = Cel::db()->proteger($ordre); |
|
$requete = 'SELECT id_observation '. |
'FROM cel_obs '. |
"WHERE ce_utilisateur = $id_utilisateur ". |
" AND ordre = $ordre "; |
'FROM cel_obs '. |
"WHERE ce_utilisateur = $id_utilisateur ". |
" AND ordre = $ordre "; |
|
$resultat = Cel::db()->executerRequete($requete); |
|
454,14 → 493,15 |
} |
|
private function obtenirIdsObsPourTableauOrdres($id_utilisateur, $ordres) { |
$this->debug[] = print_r($ordres,true); |
$id_utilisateur = Cel::db()->proteger($id_utilisateur); |
$ordres = array_map(array(Cel::db(),'proteger'), $ordres); |
|
$requete = 'SELECT id_observation '. |
'FROM cel_obs '. |
"WHERE ce_utilisateur = $id_utilisateur ". |
" AND ordre IN (".implode(',',$ordres).") "; |
|
'FROM cel_obs '. |
"WHERE ce_utilisateur = $id_utilisateur ". |
" AND ordre IN (".implode(',',$ordres).") "; |
$this->debug[] = $requete; |
$resultat = Cel::db()->executerRequete($requete); |
$ids = array(); |
foreach($resultat as $id) { |