Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1895 → Rev 1896

/trunk/jrest/services/CelWidgetSaisie.php
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) {