| Line 1... |
Line 1... |
| 1 |
<?php
|
1 |
<?php
|
| 2 |
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
|
- |
|
| 3 |
|
- |
|
| 4 |
/**
|
- |
|
| 5 |
* PHP Version 5
|
- |
|
| 6 |
*
|
- |
|
| 7 |
* @category PHP
|
- |
|
| 8 |
* @package jrest
|
- |
|
| 9 |
* @author Aurelien Peronnet <aurelien@tela-botanica.org>
|
- |
|
| 10 |
* @copyright 2010 Tela-Botanica
|
- |
|
| 11 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
- |
|
| 12 |
* @version SVN: <svn_id>
|
- |
|
| 13 |
* @link /doc/jrest/
|
- |
|
| 14 |
*/
|
- |
|
| 15 |
|
- |
|
| 16 |
/**
|
2 |
/**
|
| - |
|
3 |
* PHP Version 5.2
|
| - |
|
4 |
*
|
| - |
|
5 |
* @category PHP
|
| - |
|
6 |
* @package jrest
|
| - |
|
7 |
* @author Raphaël Droz <raphael@tela-botanica.org>
|
| - |
|
8 |
* @author Aurelien Peronnet <aurelien@tela-botanica.org>
|
| - |
|
9 |
* @copyright 2010, 2013 Tela-Botanica
|
| - |
|
10 |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
|
| - |
|
11 |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
|
| - |
|
12 |
* @link /doc/jrest/
|
| - |
|
13 |
*
|
| 17 |
* Classe de gestion de l'ajout, modification et suppression des observations
|
14 |
* Classe de gestion de l'ajout, modification et suppression des observations
|
| 18 |
*
|
15 |
*
|
| 19 |
* in=utf8
|
16 |
* TODO: $sous_requete .= ' date_modification = now() '
|
| 20 |
* out=utf8
|
17 |
* devrait être une clause ON UPDATE ou un TRIGGER
|
| - |
|
18 |
* afin de mettre à jour la date de modification uniquement lorsqu'une modification a effectivement eu lieu
|
| 21 |
*
|
19 |
*
|
| 22 |
*/
|
20 |
*/
|
| 23 |
class GestionObservation extends Cel {
|
21 |
class GestionObservation extends Cel {
|
| 24 |
|
22 |
|
| - |
|
23 |
static $cel_obs = array(
|
| - |
|
24 |
"id_observation", "ordre", "ce_utilisateur", "prenom_utilisateur", "nom_utilisateur", "courriel_utilisateur", "nom_sel", "nom_sel_nn", "nom_ret", "nom_ret_nn", "nt", "famille", "nom_referentiel",
|
| - |
|
25 |
"ce_zone_geo", "zone_geo", "lieudit", "station", "milieu", "latitude", "longitude", "altitude", "geodatum", "date_observation", "mots_cles_texte", "commentaire", "transmission",
|
| - |
|
26 |
"date_creation", "date_modification", "date_transmission", "abondance", "certitude", "phenologie", "code_insee_calcul");
|
| - |
|
27 |
|
| 25 |
/**
|
28 |
/**
|
| 26 |
* Ajoute une observation grâce aux paramètres fournis
|
29 |
* Ajoute une observation grâce aux paramètres fournis
|
| 27 |
*
|
30 |
*
|
| 28 |
* @param int $utilisateur id utilisateur du proprietaire de l'observation
|
31 |
* @param int $utilisateur id utilisateur du proprietaire de l'observation
|
| 29 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
32 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
| 30 |
*
|
33 |
*
|
| 31 |
* @return true ou false suivant le succès de l'opération
|
34 |
* @return true ou false suivant le succès de l'opération
|
| 32 |
*/
|
35 |
*/
|
| 33 |
public function ajouterObservation($utilisateur, $parametres) {
|
36 |
public function ajouterObservation($utilisateur, $parametres) {
|
| - |
|
37 |
$origin_params = $parametres;
|
| - |
|
38 |
$base_param = array('nom_sel_nn' => NULL,
|
| - |
|
39 |
'nom_sel' => NULL,
|
| - |
|
40 |
'nom_ret_nn' => NULL,
|
| - |
|
41 |
'nom_referentiel' => NULL);
|
| - |
|
42 |
$parametres = array_merge($base_param, $parametres);
|
| 34 |
|
43 |
|
| 35 |
$retour = true;
|
44 |
$retour = true;
|
| 36 |
$parametres['ordre'] = $this->renvoyerDernierOrdreUtilisePlusUn($utilisateur);
|
45 |
$parametres['ordre'] = $this->renvoyerDernierOrdreUtilisePlusUn($utilisateur);
|
| Line 37... |
Line 46... |
| 37 |
|
46 |
|
| - |
|
47 |
$this->traiterEspece($parametres);
|
| - |
|
48 |
|
| - |
|
49 |
// si la détermination à échoué, alors:
|
| - |
|
50 |
// soit le référentiel d'origine était "valide", soit non
|
| - |
|
51 |
if(!$parametres['nom_sel_nn']) {
|
| - |
|
52 |
// quoiqu'il en soit, on le met à "autre"
|
| - |
|
53 |
$parametres['nom_referentiel'] = Cel::$fallback_referentiel;
|
| - |
|
54 |
}
|
| - |
|
55 |
|
| 38 |
$this->traiterEspece($parametres);
|
56 |
$this->ajoutInfoUtilisateurARequete($parametres);
|
| Line 39... |
Line 57... |
| 39 |
$this->formaterParametresObservation($parametres);
|
57 |
self::formaterParametresObservation($parametres);
|
| 40 |
|
58 |
|
| Line 41... |
Line 59... |
| 41 |
$requete_insertion_observation = 'INSERT INTO cel_obs ';
|
59 |
$requete_insertion_observation = 'INSERT INTO cel_obs ';
|
| Line 108... |
Line 126... |
| 108 |
public function modifierObservation($utilisateur, $ordre, $parametres) {
|
126 |
public function modifierObservation($utilisateur, $ordre, $parametres) {
|
| 109 |
$base_param = array('nom_sel_nn' => NULL,
|
127 |
$base_param = array('nom_sel_nn' => NULL,
|
| 110 |
'nom_sel' => NULL,
|
128 |
'nom_sel' => NULL,
|
| 111 |
'nom_ret_nn' => NULL,
|
129 |
'nom_ret_nn' => NULL,
|
| 112 |
'nom_referentiel' => NULL);
|
130 |
'nom_referentiel' => NULL);
|
| 113 |
$parametres = array_merge($base_param, $parametres);
|
131 |
// $parametres = array_merge($base_param, $parametres);
|
| 114 |
|
- |
|
| 115 |
$retour = true;
|
132 |
$retour = true;
|
| 116 |
$requete_modification = "UPDATE cel_obs SET " ;
|
133 |
$requete_modification = "UPDATE cel_obs SET " ;
|
| Line 117... |
Line 134... |
| 117 |
|
134 |
|
| 118 |
// si pas de nom_sel : on supprime les champs automatiques. et le référentiel.
|
135 |
// si pas de nom_sel : on supprime les champs automatiques. et le référentiel.
|
| 119 |
if(!isset($parametres['nom_sel']) || !@$parametres['nom_sel']) {
|
136 |
if(false && (!isset($parametres['nom_sel']) || !@$parametres['nom_sel'])) {
|
| 120 |
$parametres['nom_referentiel'] = NULL; // pas d'update de traiterParametresObservationEtConstruireSousRequeteMaj()
|
137 |
$parametres['nom_referentiel'] = NULL; // pas d'update de traiterParametresObservationEtConstruireSousRequeteMaj()
|
| 121 |
$requete_modification .= "nom_referentiel = NULL, nom_sel_nn = NULL, nom_ret_nn = NULL, nom_ret = NULL, nt = NULL, famille = NULL,";
|
138 |
$requete_modification .= "nom_referentiel = NULL, nom_sel_nn = NULL, nom_ret_nn = NULL, nom_ret = NULL, nt = NULL, famille = NULL,";
|
| 122 |
}
|
139 |
}
|
| 123 |
elseif(false) {
|
140 |
elseif(false) {
|
| Line 133... |
Line 150... |
| 133 |
nom_ret = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nom_ret),
|
150 |
nom_ret = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nom_ret),
|
| 134 |
nt = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nt),
|
151 |
nt = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nt),
|
| 135 |
famille = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, famille),
|
152 |
famille = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, famille),
|
| 136 |
EOF;
|
153 |
EOF;
|
| 137 |
}
|
154 |
}
|
| 138 |
else {
|
155 |
elseif(isset($parametres['nom_sel'])) {
|
| 139 |
// uniquement en cas de nom_sel présent
|
156 |
// uniquement en cas de nom_sel présent
|
| 140 |
$this->traiterEspece($parametres);
|
157 |
$this->traiterEspece($parametres);
|
| 141 |
}
|
158 |
}
|
| 142 |
$this->formaterParametresObservation($parametres);
|
- |
|
| Line -... |
Line 159... |
| - |
|
159 |
|
| - |
|
160 |
self::formaterParametresObservation($parametres);
|
| 143 |
|
161 |
|
| - |
|
162 |
$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
|
| - |
|
163 |
$champ_maj[] = "date_modification = now()";
|
| - |
|
164 |
|
| - |
|
165 |
$requete_modification .=
|
| 144 |
$requete_modification .= $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) .
|
166 |
implode(', ', $champ_maj)
|
| Line 145... |
Line 167... |
| 145 |
" WHERE ordre IN (".$ordre.") AND ce_utilisateur = ".Cel::db()->proteger($utilisateur);
|
167 |
. " WHERE ordre IN (".$ordre.") AND ce_utilisateur = ".Cel::db()->proteger($utilisateur);
|
| 146 |
|
168 |
|
| 147 |
|
169 |
|
| 148 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
170 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
| Line 149... |
Line 171... |
| 149 |
// ce qui peut arriver dans les commentaires
|
171 |
// ce qui peut arriver dans les commentaires
|
| 150 |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
|
172 |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
|
| 151 |
$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification);
|
173 |
$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification . ' -- ' . __FILE__ . ':' . __LINE__);
|
| 152 |
|
174 |
|
| Line 153... |
Line 175... |
| 153 |
if ($resultat_modification === false) {
|
175 |
if ($resultat_modification === false) {
|
| 154 |
$retour = false;
|
176 |
$retour = false;
|
| - |
|
177 |
$this->logger("CEL_bugs","Erreur de mise à jour d'une liste d'observations : ".$requete_modification);
|
| - |
|
178 |
}
|
| - |
|
179 |
|
| - |
|
180 |
return $retour;
|
| - |
|
181 |
}
|
| - |
|
182 |
|
| - |
|
183 |
/**
|
| - |
|
184 |
* @return nombre d'observations mises à jour, ou FALSE en cas de problème
|
| - |
|
185 |
*/
|
| - |
|
186 |
static function modifierMultiplesObservation($utilisateur, Array $ordre, $parametres) {
|
| - |
|
187 |
// nous pouvons aussi retirer 'ce_utilisateur' (== $utilisateur) qui sera dans la clause WHERE
|
| - |
|
188 |
$exclusions = array('nom_sel_nn', 'nom_sel', 'nom_ret_nn', 'nom_referentiel', 'ce_utilisateur');
|
| - |
|
189 |
$parametres = array_diff_key($parametres, array_flip($exclusions));
|
| - |
|
190 |
$parametres = array_intersect_key($parametres, array_flip(self::$cel_obs));
|
| - |
|
191 |
|
| - |
|
192 |
$parametres = array_filter(
|
| - |
|
193 |
$parametres,
|
| - |
|
194 |
create_function('$e','return strpos($e, "(Valeurs multiples)") === false;'));
|
| - |
|
195 |
|
| - |
|
196 |
// modifie $parametres par référence
|
| - |
|
197 |
self::formaterParametresObservation($parametres);
|
| - |
|
198 |
|
| - |
|
199 |
$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
|
| - |
|
200 |
if(!$champ_maj) return 0; // rien à mettre à jour finalement
|
| - |
|
201 |
|
| - |
|
202 |
$champ_maj[] = "date_modification = now()";
|
| - |
|
203 |
$nb_upd = Cel::db()->executer(sprintf(
|
| - |
|
204 |
"UPDATE cel_obs SET %s WHERE ordre IN (%s) AND ce_utilisateur = %s -- %s:%d",
|
| - |
|
205 |
implode(', ', $champ_maj),
|
| - |
|
206 |
implode(', ', $ordre),
|
| - |
|
207 |
Cel::db()->proteger($utilisateur),
|
| - |
|
208 |
__FILE__, __LINE__));
|
| - |
|
209 |
|
| Line 155... |
Line 210... |
| 155 |
$this->logger("CEL_bugs","Erreur de mise à jour d'une liste d'observations : ".$requete_modification);
|
210 |
if($nb_upd === FALSE) return FALSE;
|
| 156 |
}
|
211 |
return $nb_upd;
|
| 157 |
|
212 |
// TODO: return json_encode(updated_rows());
|
| 158 |
return $retour;
|
213 |
}
|
| Line 173... |
Line 228... |
| 173 |
'nom_ret_nn' => NULL,
|
228 |
'nom_ret_nn' => NULL,
|
| 174 |
'nom_referentiel' => NULL);
|
229 |
'nom_referentiel' => NULL);
|
| 175 |
$parametres = array_merge($base_param, $parametres);
|
230 |
$parametres = array_merge($base_param, $parametres);
|
| Line 176... |
Line 231... |
| 176 |
|
231 |
|
| 177 |
$this->traiterEspece($parametres);
|
232 |
$this->traiterEspece($parametres);
|
| Line 178... |
Line 233... |
| 178 |
$this->formaterParametresObservation($parametres);
|
233 |
self::formaterParametresObservation($parametres);
|
| - |
|
234 |
|
| - |
|
235 |
$retour = true;
|
| - |
|
236 |
|
| - |
|
237 |
$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
|
| 179 |
|
238 |
$champ_maj[] = "date_modification = now()";
|
| 180 |
$retour = true;
|
239 |
|
| 181 |
$requete_modification = "UPDATE cel_obs SET " .
|
240 |
$requete_modification = "UPDATE cel_obs SET " .
|
| 182 |
$this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) .
|
241 |
implode(', ', $champ_maj) .
|
| 183 |
" WHERE id_observation = ".Cel::db()->proteger($id).
|
242 |
" WHERE id_observation = ".Cel::db()->proteger($id).
|
| Line 184... |
Line 243... |
| 184 |
" AND ce_utilisateur = ".Cel::db()->proteger($utilisateur)." ".
|
243 |
" AND ce_utilisateur = ".Cel::db()->proteger($utilisateur)." ".
|
| 185 |
" AND transmission = 1";
|
244 |
" AND transmission = 1";
|
| 186 |
|
245 |
|
| 187 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
246 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
| 188 |
// ce qui peut arriver dans les commentaires
|
247 |
// ce qui peut arriver dans les commentaires
|
| 189 |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
|
248 |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
|
| 190 |
$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification);
|
- |
|
| 191 |
|
249 |
$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification . ' -- ' . __FILE__ . ':' . __LINE__);
|
| 192 |
if ($resultat_modification === false) {
|
250 |
|
| Line 193... |
Line 251... |
| 193 |
$retour = false;
|
251 |
if ($resultat_modification === false) {
|
| 194 |
$this->logger("CEL_bugs","Erreur de mise à jour de l\'observation : ".$id);
|
252 |
$this->logger("CEL_bugs","Erreur de mise à jour de l\'observation : ".$id);
|
| Line 195... |
Line 253... |
| 195 |
}
|
253 |
}
|
| 196 |
|
254 |
|
| 197 |
return $retour;
|
255 |
return $resultat_modification;
|
| Line 372... |
Line 430... |
| 372 |
}
|
430 |
}
|
| 373 |
}
|
431 |
}
|
| Line 374... |
Line 432... |
| 374 |
|
432 |
|
| 375 |
// XXX: ne devrait plus être nécessaire maintenant que rechercherInformationsComplementairesSurNom() [plus précisément effectuerRequeteUrlRecherche()]
|
433 |
// XXX: ne devrait plus être nécessaire maintenant que rechercherInformationsComplementairesSurNom() [plus précisément effectuerRequeteUrlRecherche()]
|
| 376 |
// a été modifiée pour retourner tous les champs nécessaire.
|
434 |
// a été modifiée pour retourner tous les champs nécessaire.
|
| 377 |
if ($deuxieme_passe && (!$parametres['nom_ret_nn'] || !$parametres['nt'])) {
|
435 |
if ($deuxieme_passe && (! array_key_exists('nom_ret_nn', $parametres) || ! array_key_exists('nt', $parametres))) {
|
| 378 |
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
|
436 |
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
|
| 379 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
|
437 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
|
| 380 |
$complement = $chercheur_infos_complementaires->effectuerRequeteInfosComplementairesSurNumNom($parametres['nom_sel_nn']);
|
438 |
$complement = $chercheur_infos_complementaires->effectuerRequeteInfosComplementairesSurNumNom($parametres['nom_sel_nn']);
|
| 381 |
// les paramètres passés datait peut-être d'une précédente autocomplétion, mais le référentiel ayant été changé par l'utilisateur
|
439 |
// les paramètres passés datait peut-être d'une précédente autocomplétion, mais le référentiel ayant été changé par l'utilisateur
|
| Line 398... |
Line 456... |
| 398 |
|
456 |
|
| 399 |
// mise à jour du référentiel utilisé, sans n° de version
|
457 |
// mise à jour du référentiel utilisé, sans n° de version
|
| 400 |
$parametres['nom_referentiel'] = $code_referentiel;
|
458 |
$parametres['nom_referentiel'] = $code_referentiel;
|
| Line -... |
Line 459... |
| - |
|
459 |
}
|
| - |
|
460 |
|
| - |
|
461 |
// uniquement nécessaire lors de l'ajout
|
| - |
|
462 |
private function ajoutInfoUtilisateurARequete(&$parametres) {
|
| - |
|
463 |
if(! isset($parametres['ce_utilisateur'])) return;
|
| - |
|
464 |
|
| - |
|
465 |
$infos_utilisateur = $this->getInfosComplementairesUtilisateur($parametres['ce_utilisateur']);
|
| - |
|
466 |
$parametres['courriel_utilisateur'] = $infos_utilisateur['courriel'];
|
| - |
|
467 |
$parametres['nom_utilisateur'] = $infos_utilisateur['nom'];
|
| - |
|
468 |
$parametres['prenom_utilisateur'] = $infos_utilisateur['prenom'];
|
| 401 |
}
|
469 |
}
|
| 402 |
|
470 |
|
| 403 |
/**
|
471 |
/**
|
| 404 |
* Formate les paramètres fournis en ajoutant des infos complementaires
|
472 |
* Formate les paramètres fournis en ajoutant des infos complementaires
|
| 405 |
*
|
473 |
*
|
| 406 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
474 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
| 407 |
*
|
475 |
*
|
| 408 |
* @return $parametres le tableau modifié selon ce qu'il contenait
|
476 |
* @return $parametres le tableau modifié selon ce qu'il contenait
|
| 409 |
*/
|
- |
|
| 410 |
private function formaterParametresObservation(&$parametres) {
|
- |
|
| 411 |
if(isset($parametres['ce_utilisateur'])) {
|
- |
|
| 412 |
|
- |
|
| 413 |
$infos_utilisateur = $this->getInfosComplementairesUtilisateur($parametres['ce_utilisateur']);
|
- |
|
| 414 |
|
- |
|
| 415 |
$parametres['courriel_utilisateur'] = $infos_utilisateur['courriel'];
|
- |
|
| 416 |
$parametres['nom_utilisateur'] = $infos_utilisateur['nom'];
|
- |
|
| 417 |
$parametres['prenom_utilisateur'] = $infos_utilisateur['prenom'];
|
- |
|
| 418 |
}
|
477 |
*/
|
| 419 |
|
478 |
static function formaterParametresObservation(&$parametres) {
|
| 420 |
// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0
|
479 |
// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0
|
| Line 421... |
Line 480... |
| 421 |
// TODO: décider quoi faire pour les zones géo plus générales
|
480 |
// TODO: décider quoi faire pour les zones géo plus générales
|
| Line 427... |
Line 486... |
| 427 |
if (strlen($parametres['ce_zone_geo']) == 4) {
|
486 |
if (strlen($parametres['ce_zone_geo']) == 4) {
|
| 428 |
$parametres['ce_zone_geo'] = '0'.$parametres['ce_zone_geo'];
|
487 |
$parametres['ce_zone_geo'] = '0'.$parametres['ce_zone_geo'];
|
| 429 |
}
|
488 |
}
|
| Line 430... |
Line 489... |
| 430 |
|
489 |
|
| 431 |
if (strlen($parametres['ce_zone_geo']) > 0 && strlen($parametres['ce_zone_geo']) <= 2) {
|
490 |
if (strlen($parametres['ce_zone_geo']) > 0 && strlen($parametres['ce_zone_geo']) <= 2) {
|
| 432 |
$parametres['ce_zone_geo'] = $this->obtenirCodeInseeCommunePourNomEtDepartement($parametres['zone_geo'], $parametres['ce_zone_geo']);
|
491 |
$parametres['ce_zone_geo'] = Cel::obtenirCodeInseeCommunePourNomEtDepartement($parametres['zone_geo'], $parametres['ce_zone_geo']);
|
| 433 |
} else {
|
492 |
} else {
|
| 434 |
$parametres['ce_zone_geo'] = $this->convertirCodeInseeVersCodeZoneGeo($parametres['ce_zone_geo']);
|
493 |
$parametres['ce_zone_geo'] = 'INSEE-C:'. $parametres['ce_zone_geo'];
|
| 435 |
}
|
494 |
}
|
| 436 |
}
|
495 |
}
|
| Line 437... |
Line 496... |
| 437 |
}
|
496 |
}
|
| Line 491... |
Line 550... |
| 491 |
* @param array $parametres un tableau avec les index correspondant aux champs de la bdd
|
550 |
* @param array $parametres un tableau avec les index correspondant aux champs de la bdd
|
| 492 |
*
|
551 |
*
|
| 493 |
* @return string une sous requete utilisable pour la modification d'une observation
|
552 |
* @return string une sous requete utilisable pour la modification d'une observation
|
| 494 |
* selon la syntaxe UPDATE table SET colonne1 = valeur1, colonne2 = valeur2 WHERE condition
|
553 |
* selon la syntaxe UPDATE table SET colonne1 = valeur1, colonne2 = valeur2 WHERE condition
|
| 495 |
*/
|
554 |
*/
|
| 496 |
private function traiterParametresObservationEtConstruireSousRequeteMaj($parametres) {
|
555 |
static function traiterParametresObservationEtConstruireSousRequeteMaj($parametres) {
|
| 497 |
$sous_requete = '';
|
556 |
$champs = array();
|
| 498 |
|
557 |
|
| 499 |
// Nullifiage ...
|
558 |
// Nullifiage ...
|
| 500 |
// TODO: code dupliqué, en faire une fonction à mettre à la place appropriée
|
559 |
// TODO: code dupliqué, en faire une fonction à mettre à la place appropriée
|
| 501 |
foreach($parametres as $cle => $valeur) {
|
560 |
foreach($parametres as $cle => $valeur) {
|
| 502 |
|
- |
|
| 503 |
// Pour apparaitre le premier dans les tris ...
|
561 |
// Pour apparaitre le premier dans les tris ...
|
| 504 |
if (trim($valeur) == "" || trim($valeur) == "null" || trim($valeur) == "000null") {
|
562 |
if (trim($valeur) == "" || trim($valeur) == "null" || trim($valeur) == "000null") {
|
| 505 |
$valeur = "NULL";
|
563 |
$valeur = "NULL";
|
| 506 |
} else {
|
564 |
} else {
|
| 507 |
$valeur = Cel::db()->proteger($valeur);
|
565 |
$valeur = Cel::db()->proteger($valeur);
|
| 508 |
}
|
566 |
}
|
| 509 |
|
- |
|
| 510 |
$sous_requete .= $cle." = ".$valeur.", ";
|
567 |
$champs[] = $cle." = ".$valeur;
|
| 511 |
}
|
568 |
}
|
| 512 |
|
- |
|
| 513 |
$sous_requete .= ' date_modification = now() ';
|
- |
|
| 514 |
|
- |
|
| 515 |
return $sous_requete;
|
569 |
return $champs;
|
| 516 |
}
|
570 |
}
|
| 517 |
}
|
- |
|
| 518 |
?>
|
- |
|
| 519 |
|
571 |
}
|
| - |
|
572 |
|