64,7 → 64,8 |
|
$this->debug[] = 'Courriel : '.$utilisateur['courriel']; |
$utilisateur = $this->affecterChampsManquantsUtilisateur($utilisateur); |
extract($utilisateur); |
extract($utilisateur); // @TODO pendre le paltoquet qui a écrit ça !!! |
// $id_utilisateur vient du extract() de $utilisateur['id_utilisateur'] |
$this->utilisateur_id = $id_utilisateur; |
$ordre = $this->getMaxOrdre($id_utilisateur); |
if (!is_null($ordre)) { |
146,7 → 147,7 |
|
// Insertion dans la base |
$obs_a_taguer_ordres = array(); |
$img_a_taguer_ids = array(); |
$img_a_taguer_ids_noms = array(); |
foreach ($observations as $infos) { |
$obs = $infos['obs']; |
$img = $infos['img']; |
168,12 → 169,12 |
// si le formulaire contient une image on la traite |
if ($img != null) { |
$this->nettoyerImagesUploades(); |
$img_a_taguer_ids = $this->stockerImagesEtLierAObs($idNouvelleObs, $img, $utilisateur); |
if ($img_a_taguer_ids === false) { |
$img_a_taguer_ids_noms = $this->stockerImagesEtLierAObs($idNouvelleObs, $img, $utilisateur); |
if ($img_a_taguer_ids_noms === false) { |
$erreursDurantTraitement = true; |
$this->messages[] = "Au moins une des images n'a pas pu être enregistrée."; |
} else { |
$cmd = sprintf($this->config['cel']['commande_script_images'],implode(',', $img_a_taguer_ids)); |
$cmd = sprintf($this->config['cel']['commande_script_images'],implode(',', array_keys($img_a_taguer_ids_noms))); |
pclose(popen($cmd,"r")); |
} |
} |
184,8 → 185,8 |
|
$obs_a_taguer_ids = $this->obtenirIdsObsPourTableauOrdres($this->utilisateur_id, $obs_a_taguer_ordres); |
$this->taguerObs($obs_a_taguer_ids); |
if ($img_a_taguer_ids !== false) { |
$this->taguerImg($img_a_taguer_ids); |
if ($img_a_taguer_ids_noms !== false) { |
$this->taguerImg(array_keys($img_a_taguer_ids_noms)); |
} |
|
// Les champs taggés sont des champs supplémentaires stockés sous forme de clé => valeur |
202,8 → 203,8 |
} else { |
// On annule l'écriture des images enregistrées sur le disque dur - la transaction |
// se charge de les retirer de la base de données |
if ($img_a_taguer_ids !== false) { |
foreach ($img_a_taguer_ids as $idImageASupprimer) { |
if ($img_a_taguer_ids_noms !== false) { |
foreach (array_keys($img_a_taguer_ids_noms) as $idImageASupprimer) { |
$this->effacerImageDuDd($idImageASupprimer); |
} |
} |
227,7 → 228,19 |
} else { |
$msg = 'ok'; |
} |
$retour = (object) array('msg' => $msg, 'id' => $idNouvelleObs); |
// renvoi des infos d'images (id, nom) ordonnées, en plus des infos obs. |
$infosImages = array(); |
foreach ($img_a_taguer_ids_noms as $id => $nom) { |
$infosImages[] = array( |
'id' => $id, |
'nom' => $nom |
); |
} |
$retour = (object) array( |
'msg' => $msg, |
'id' => $idNouvelleObs, |
'images' => $infosImages |
); |
$this->envoyerJson($retour); |
exit; |
} |
327,7 → 340,7 |
$img = $imgTmp; |
} |
|
$img_a_taguer_ids = array(); |
$img_a_taguer_ids_noms = array(); |
foreach ($img as $image) { |
$nomFichierImg = $this->traiterNomFichierImage($image['nom']); |
$cheminImage = $this->config['cel']['chemin_stockage_temp']."/$nomFichierImg"; |
339,7 → 352,7 |
$this->debug[] = 'Nom fichier img debut :'.$nomFichierImg; |
$idImg = $this->ajouterImageSurDdEtBdd($id_obs, $utilisateur, $cheminImage, $nomFichierImg); |
if ($idImg !== false) { |
$img_a_taguer_ids[] = $idImg; |
$img_a_taguer_ids_noms[$idImg] = $nomFichierImg; |
if (isset($image['tags'])) { |
$this->correspondanceIdImgTags[$idImg] = $image['tags']; |
} |
347,14 → 360,14 |
// L'image n'a pas pu être écrite. |
// On annule l'écriture des précédentes et on s'arrête là - la transaction |
// se chargera de les retirer de la base de données |
foreach ($img_a_taguer_ids as $idImageASupprimer) { |
foreach (array_keys($img_a_taguer_ids_noms) as $idImageASupprimer) { |
$this->effacerImageDuDd($idImageASupprimer); |
} |
$img_a_taguer_ids = false; |
$img_a_taguer_ids_noms = false; |
break; |
} |
} |
return $img_a_taguer_ids; |
return $img_a_taguer_ids_noms; |
} |
|
private function affecterChampsManquantsUtilisateur($utilisateur) { |