Subversion Repositories eFlore/Applications.cel

Rev

Rev 607 | Rev 632 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 607 Rev 620
Line 1... Line 1...
1
<?php
1
<?php
2
 
-
 
3
require_once('include/extract_metadonnee.php') ;
-
 
4
require_once('include/stockage_fichier.php') ;
-
 
5
/**
2
/**
6
 
-
 
7
 Aurelien Peronnet aurelienperonnet@gmail.com 2008
-
 
8
 
-
 
9
 Ce logiciel est r?gi par la licence CeCILL soumise au droit fran?ais et
-
 
10
 respectant les principes de diffusion des logiciels libres. Vous pouvez
-
 
11
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
-
 
12
 de la licence CeCILL telle que diffus?e par le CEA, le CNRS et l'INRIA
-
 
13
 sur le site "http://www.cecill.info".
-
 
14
 En contrepartie de l'accessibilit? au code source et des droits de copie,
-
 
15
 de modification et de redistribution accord?s par cette licence, il n'est
-
 
16
 offert aux utilisateurs qu'une garantie limit?e.  Pour les m?mes raisons,
-
 
17
 seule une responsabilit? restreinte p?se sur l'auteur du programme,  le
-
 
18
 titulaire des droits patrimoniaux et les conc?dants successifs.
-
 
19
 
-
 
20
 A cet ?gard  l'attention de l'utilisateur est attir?e sur les risques
3
 * Service recherche  et ajout d'image a partir de divers critères
21
 associ?s au chargement,  ? l'utilisation,  ? la modification et/ou au
-
 
22
 d?veloppement et ? la reproduction du logiciel par l'utilisateur ?tant
-
 
23
 donn? sa sp?cificit? de logiciel libre, qui peut le rendre complexe ?
-
 
24
 manipuler et qui le r?serve donc ? des d?veloppeurs et des professionnels
-
 
25
 avertis poss?dant  des  connaissances  informatiques approfondies.  Les
-
 
26
 utilisateurs sont donc invit?s ? charger  et  tester  l'ad?quation  du
-
 
27
 logiciel ? leurs besoins dans des conditions permettant d'assurer la
-
 
28
 s?curit? de leurs syst?mes et ou de leurs donn?es et, plus g?n?ralement,
-
 
29
 ? l'utiliser et l'exploiter dans les m?mes conditions de s?curit?.
-
 
30
 
-
 
31
 Le fait que vous puissiez acc?der ? cet en-t?te signifie que vous avez
-
 
32
 pris connaissance de la licence CeCILL, et que vous en avez accept? les
-
 
33
 termes.
-
 
34
 
-
 
35
 */
-
 
36
 
-
 
37
 
-
 
38
// in : utf8
-
 
39
// out : utf8
-
 
40
/*
-
 
41
 * InventoryImage.php
4
 * Encodage en entrée : utf8
42
 *
-
 
43
 * Cas d'utilisation :
5
 * Encodage en sortie : utf8
44
 * Service recherche  et ajout d'image a partir de divers crit�res
-
 
45
 *
6
 *
46
 * 1: Le service recoit une image � ajouter � la base de donn�e
7
 * @author Aurélien PERONNET <aurelien@tela-botanica.org>
47
 * 2: Le service recherche l'image correspondant au crit�res demand�
8
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
48
 * 3: Le service renvoie l'adresse de base de l'image qui permet de la localiser sous ses diff�rents formats (X, M ou L)
9
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
10
 * @version $Id$
49
 */
11
 */
50
 
-
 
51
Class InventoryImage extends DBAccessor {
12
Class InventoryImage extends Cel {
52
 
13
	
53
	var $config;
-
 
54
 
14
	/**
55
	function InventoryImage($config) {
15
	 * Méthode appelée avec une requête de type GET.
56
 
-
 
57
		$this->config=$config;
16
	 * Renvoie les infos sur l'image correspondant à l'id passé en parametre
58
	}
17
	*/
59
 
-
 
60
 
-
 
61
	// renvoie l'enregistrement correspond � une image
-
 
62
	function getElement($uid)
18
	public function getElement($uid)
63
	{
19
	{
-
 
20
		
64
			// uid[0] : utilisateur obligatoire
21
		// uid[0] : utilisateur obligatoire
65
			// uid[1] : identifiant image obligatoire
22
		// uid[1] : identifiant image obligatoire
Line 66... Line 23...
66
 
23
 
67
		// Controle detournement utilisateur
24
		// Controle detournement utilisateur
68
	   session_start();
25
	   	session_start();
Line 69... Line 26...
69
	   $this->controleUtilisateur($uid[0]);
26
	   	$this->controleUtilisateur($uid[0]);
-
 
27
 
Line -... Line 28...
-
 
28
		$id_image_protegee = $this->proteger($uid[1]); 
-
 
29
		$requete_selection_image = "SELECT * FROM cel_images WHERE ci_id_image = ".$id_image_protegee;
70
 
30
 
71
		$DB=$this->connectDB($this->config,'cel_db');
31
		$resultat_selection = $this->executerRequete($requete_selection_image);
-
 
32
		
72
 
33
		$image = false;
73
		if (isset($uid[0]))
34
		
Line 74... Line -...
74
		{
-
 
75
			$query="SELECT * FROM cel_images WHERE ci_id_image ='".$DB->escapeSimple($uid[1])."'";
-
 
76
		}
-
 
77
 
-
 
78
		$res =& $DB->query($query);
-
 
79
                if (PEAR::isError($res)) {
-
 
80
 
-
 
81
                	die($res->getMessage());
-
 
82
                }
-
 
83
 
-
 
84
		$image = $res->fetchrow(DB_FETCHMODE_ASSOC) ;
35
		if(count($resultat_selection) > 0) {
85
 
-
 
86
		$res = json_encode($image) ;
-
 
87
 
36
			$image = $resultat_selection[0];
Line -... Line 37...
-
 
37
		}
88
		header("content-type: text/json") ;
38
 
-
 
39
		$this->envoyer($image,'text/html','utf-8',true);
-
 
40
	}
89
		print $res ;
41
 
90
		exit() ;
42
	/**
91
	}
43
	 * Méthode appelée avec une requête de type POST avec un identifiant d'image.
92
 
44
	 * Met a jour l'image correspondant à l'id passé en paramètre avec les valeurs passées dans le post
-
 
45
	*/
-
 
46
	public function updateElement($uid,$pairs)
-
 
47
	{
-
 
48
		// Controle detournement utilisateur
-
 
49
		$this->controleUtilisateur($uid[0]);
Line 93... Line -...
93
	// met � jour les m�tadonn�es d'une image
-
 
94
	function updateElement($uid,$pairs)
-
 
95
	{
-
 
96
		// Controle detournement utilisateur
-
 
97
		$this->controleUtilisateur($uid[0]);
50
		
98
 
-
 
99
		/*$fp = fopen('dump.txt','w+') ;
-
 
Line -... Line 51...
-
 
51
		$requete_mise_a_jour_image = 'UPDATE cel_images SET ' ;
-
 
52
		
-
 
53
		$champs_a_mettre_a_jour = $this->construireRequeteMajMetaDonnees($pairs);
-
 
54
		$requete_mise_a_jour_image .= $champs_a_mettre_a_jour;
-
 
55
 
-
 
56
		$requete_mise_a_jour_image .= ' WHERE ci_id_image = '.$this->proteger($pairs['ci_id_image']) ;
-
 
57
 
-
 
58
		$resultat_mise_a_jour = $this->executerRequete($requete_mise_a_jour_image);
-
 
59
		
-
 
60
		$retour = false;
-
 
61
		
-
 
62
		if($resultat_mise_a_jour) {
-
 
63
			$retour = 'OK';
-
 
64
		}
-
 
65
		
-
 
66
		$this->envoyer($retour);
-
 
67
	}
-
 
68
	
-
 
69
	/**
-
 
70
	 * Assemble la requete de mise à jour des champs de metadonnées
-
 
71
	 * 
100
		fwrite($fp,print_r($pairs,true)) ;
72
	*/
101
		fclose($fp) ;*/
73
	private function construireRequeteMajMetaDonnees($valeurs_metadonnees) {
-
 
74
		
-
 
75
		$requete_maj_champs = '';
102
 
76
		
103
		$DB=$this->connectDB($this->config,'cel_db');
77
		$champs_a_ignorer = array('ci_ce_observation');
104
 
78
		
105
		$query = 'UPDATE cel_images SET ' ;
79
		foreach($valeurs_metadonnees as $champ  => $valeur)
106
 
80
		{
107
		foreach($pairs as $champ  => $valeur)
81
			
108
		{
82
			if(!in_array($champ,$champs_a_ignorer)) {
109
			if($champ == 'ci_meta_date') {
83
				if($champ == 'ci_meta_date') {
110
 
84
	
111
				$date_tab = split('/',$valeur) ;
85
					$date_tab = split('/',$valeur) ;
-
 
86
					$date = $date_tab[2].'-'.$date_tab[1].'-'.$date_tab[0] ;
112
				$date = $date_tab[2].'-'.$date_tab[1].'-'.$date_tab[0] ;
87
	
113
 
88
					$requete_maj_champs .= $champ.' = "'.$date.'" , ' ;
Line 114... Line 89...
114
				$query .= $champ.' = "'.$date.'" , ' ;
89
	
115
 
-
 
116
			}
-
 
117
			else {
90
				}
118
				$query .= $champ.' = "'.$DB->escapeSimple($valeur).'" , ' ;
91
				else {
119
			}
-
 
120
		}
-
 
121
 
-
 
122
		$query = rtrim($query," , ") ;
-
 
123
 
-
 
124
		$query .= ' WHERE ci_id_image = "'.$DB->escapeSimple($pairs['ci_id_image']).'"' ;
-
 
125
 
-
 
126
		$res =& $DB->query($query);
-
 
127
 
-
 
128
        if (PEAR::isError($res))
-
 
129
		{
92
					$requete_maj_champs .= $champ.' = '.$this->proteger($valeur).' , ' ;
Line -... Line 93...
-
 
93
				}
-
 
94
			}
130
			return false ;
95
		}
-
 
96
 
-
 
97
		$requete_maj_champs = rtrim($query," , ") ;
131
        }
98
		
132
		else
99
		return $requete_maj_champs;
133
		{
100
	}
134
			echo "OK" ;
101
 
135
			exit() ;
102
 
136
		}
-
 
137
	}
-
 
138
 
-
 
139
 
103
	/**
140
	// ajoute une image ainsi que ses metadonn�es � la base du carnet
104
	 * Méthode appelée avec une requête de type PUT.
141
	function createElement($pairs)
-
 
142
	{
105
	 * Stocke une image, crée ses miniatures et enregistre ses informations
143
		// Controle detournement utilisateur
106
	 * Renvoie l'identifiant d'image nouvellement crée en cas de succès
Line -... Line 107...
-
 
107
	*/
-
 
108
	function createElement($pairs)
-
 
109
	{
-
 
110
		// Controle detournement utilisateur
144
		session_start();
111
		session_start();
-
 
112
		$this->controleUtilisateur($pairs['identifiant']);
-
 
113
				
Line -... Line 114...
-
 
114
		foreach($_FILES as $file) {
-
 
115
			$infos_fichier = $file ;
-
 
116
		}
-
 
117
		
145
		//$this->controleUtilisateur($pairs['identifiant']);
118
		if($this->ajouterImageSurDdEtBdd($pairs, $infos_fichier)) {
-
 
119
			
-
 
120
			// l'upload demande de court-circuiter le fonctionnement normal de JREST
146
		$pairs['identifiant'] = 'aurelien@tela-botanica.org';
121
			// en quittant directement après l'envoi
147
		
122
			$this->envoyerMessageCreationEffectuee();
-
 
123
			exit;
-
 
124
		}
Line 148... Line -...
148
		$manipulateur_image = new ImageRecreation($this->config);
-
 
149
		
-
 
150
		foreach($_FILES as $file) {
125
 
151
 
-
 
152
			$infos_fichier = $file ;
-
 
153
		}
-
 
154
		
126
	}
155
		$DB=$this->connectDB($this->config,'cel_db');
127
	
-
 
128
	/**
156
 
129
	 * Ajout une image dans la base de données et stocke le fichier en fabriquant les miniatures,
157
		$nouvel_ordre = 0 ;
130
	 * renvoie le nouvel id d'image en cas de succès
Line 158... Line 131...
158
		$query_ordre ='SELECT MAX(ci_ordre) FROM cel_images WHERE ci_ce_utilisateur = "'.$DB->escapeSimple($pairs['identifiant']).'"' ;
131
	 * 
-
 
132
	 * @param array $pairs le tableau contenant l'identifiant de l'utilisateur
159
		$res =& $DB->query($query_ordre);
133
	 * @param array $infos_fichier les infos sur le fichier à traiter, de la même forme que les
-
 
134
	 * élements du tableau $_FILES de php
160
		
135
	*/
-
 
136
	public function ajouterImageSurDdEtBdd($pairs, $infos_fichier) {
161
        if (PEAR::isError($res))
137
		
-
 
138
		$nouvel_ordre = $this->obtenirNouvelOrdrePourUtilisateur($pairs['identifiant']);
-
 
139
		
-
 
140
		if(!$nouvel_ordre) {
-
 
141
			$message = 'Erreur lors du calcul du nouvel ordre de l\'image';
-
 
142
			trigger_error($message, E_USER_ERROR);
-
 
143
		}
-
 
144
		
-
 
145
		$extracteur_metadonnees = new ExtracteurMetadonnees();
-
 
146
		$informations_image = $extracteur_metadonnees->extraireMetadonnees($infos_fichier['tmp_name']) ;
-
 
147
		
-
 
148
		if(!$informations_image) {
-
 
149
			$message = 'Erreur lors de l\'extraction des metadonnées';
-
 
150
			trigger_error($message, E_USER_ERROR);
-
 
151
		}
-
 
152
		
-
 
153
		// ajout de quelques informations supplémentaire, en sus 
-
 
154
		// des metadonnées dejà extraites
162
		{
155
		$informations_image['ci_ordre'] = $nouvel_ordre ;
-
 
156
		$informations_image['ci_publiable_eflore'] = 'false' ;
-
 
157
		$informations_image['ci_nom_original'] = $infos_fichier['name'] ;
-
 
158
		
-
 
159
		// le md5 du fichier sert à repérer les images en doublons
163
			$erreur = 'ERROR : probleme durant le calcul de l\'ordre de l\'image \n' ;
160
		$informations_image['ci_md5'] = md5_file($infos_fichier['tmp_name']) ;
164
            die($res->getMessage());
161
		$informations_image['ci_ce_utilisateur'] = $pairs['identifiant'] ;
-
 
162
		
165
        }
163
		$requete_insertion_infos_image = $this->construireRequeteInsertionImage($informations_image);
-
 
164
		$resultat_insertion_infos_image = $this->executerRequeteSimple($requete_insertion_infos_image);
-
 
165
 
-
 
166
		if(!$resultat_insertion_infos_image) {
-
 
167
			$message = "Echec de l'insertion dans la base de donnees : " ;
-
 
168
			trigger_error($message, E_USER_ERROR);
-
 
169
        }
-
 
170
 
-
 
171
		$id_nouvelle_image = $this->obtenirIdImagePourIdentifiantEtOrdre($pairs['identifiant'], $nouvel_ordre);
-
 
172
		
-
 
173
		if(!$id_nouvelle_image)
-
 
174
		{
-
 
175
			$message =  'Impossible d\'obtenir le nouvel identifiant de l\'image' ;
-
 
176
			trigger_error($message, E_USER_ERROR);
Line 166... Line 177...
166
		else
177
		}
-
 
178
		
-
 
179
		$manipulateur_image = new ImageRecreation($this->config);
-
 
180
		$fichier_stocke = $manipulateur_image->stockerFichierEtCreerMiniatures($infos_fichier,$id_nouvelle_image) ;
-
 
181
		
167
		{
182
		if(!$fichier_stocke) {
168
			$row = $res->fetchrow() ;
183
			$message =  'Erreur lors du stockage du fichier' ;
169
			$nouvel_ordre = $row[0] + 1;
184
			trigger_error($message, E_USER_ERROR);
-
 
185
		}
-
 
186
		
-
 
187
		return $id_nouvelle_image;
-
 
188
	}
-
 
189
	
170
		}
190
	private function obtenirNouvelOrdrePourUtilisateur($id_utilisateur) {
-
 
191
 
-
 
192
		$nouvel_ordre = 0 ;
171
		
193
		
-
 
194
		$requete_selection_ordre_max ='SELECT MAX(ci_ordre) as max_ordre FROM cel_images WHERE ci_ce_utilisateur = '.$this->proteger($id_utilisateur) ;
-
 
195
		$resultat_requete_ordre_max = $this->executerRequete($requete_selection_ordre_max);
Line -... Line 196...
-
 
196
		
-
 
197
		if($resultat_requete_ordre_max) {
-
 
198
			$nouvel_ordre = $resultat_requete_ordre_max[0]['max_ordre'];
-
 
199
			$nouvel_ordre = $nouvel_ordre++;
-
 
200
		}
-
 
201
		
-
 
202
		return $nouvel_ordre;
-
 
203
	}
-
 
204
	
-
 
205
	private function obtenirIdImagePourIdentifiantEtOrdre($id_utilisateur, $ordre) {
-
 
206
		
-
 
207
		$id_image = false;
172
		if($nouvel_ordre)
208
		
173
		{
209
		$requete_id_image ='SELECT ci_id_image FROM cel_images WHERE ci_ce_utilisateur = '.$this->proteger($id_utilisateur).' AND ci_ordre = '.$ordre ;
Line 174... Line 210...
174
			$fichier_meta = extraire_metadonnees($infos_fichier['tmp_name']) ;
210
		$resultat_id_image = $this->executerRequete($requete_id_image);
175
		}
211
 
176
		else
212
        if(count($resultat_id_image) > 0)
Line 177... Line 213...
177
		{
213
		{
178
			$erreur = 'ERROR : probleme durant l\'upload de l\'image \n' ;
214
			$id_image = $resultat_id_image[0]['ci_id_image'];
179
		}
215
        }
180
 
216
		
181
		$fichier_meta['ci_ordre'] = $nouvel_ordre ;
217
        return $id_image;
182
		$fichier_meta['ci_publiable_eflore'] = 'false' ;
218
	}
183
		$fichier_meta['ci_nom_original'] = $infos_fichier['name'] ;
219
	
184
		$fichier_meta['ci_md5'] = md5_file($infos_fichier['tmp_name']) ;
220
	private function construireRequeteInsertionImage($informations_image) {
185
		$fichier_meta['ci_ce_utilisateur'] = $pairs['identifiant'] ;
221
		
186
 
-
 
187
 
-
 
188
		$query_champs = '' ;
-
 
189
		$query_valeurs = '' ;
-
 
190
 
-
 
191
		foreach($fichier_meta as $field => $value)
-
 
192
		{
-
 
193
			$query_champs .= $field.',' ;
-
 
194
 
-
 
195
			if(is_null($value))
-
 
196
			{
-
 
197
				$query_valeurs .= 'NULL,' ;
-
 
198
			}
-
 
199
			else
-
 
200
			{
-
 
201
				$query_valeurs .= '"'.$DB->escapeSimple($value).'",' ;
-
 
202
			}
-
 
203
		}
-
 
204
 
-
 
205
        $query_champs .= 'ci_meta_date_ajout' ;
-
 
206
        $query_valeurs .= 'CURRENT_TIMESTAMP()' ;
-
 
207
 
-
 
208
		//$query_champs = rtrim($query_champs,',') ;
-
 
209
		//$query_valeurs = rtrim($query_valeurs,',') ;
-
 
210
 
-
 
211
		$query ="INSERT INTO cel_images (".$query_champs.") VALUES (".$query_valeurs.")" ;
-
 
212
 
-
 
213
		$res =& $DB->query($query);
-
 
214
                if (PEAR::isError($res)) {
-
 
Line 215... Line -...
215
 
-
 
216
                	//die($res->getMessage());
-
 
217
			$erreur = "ERROR : echec de l'insertion dans la base de donnees : ".$query ;
-
 
218
                }
-
 
219
 
222
		$requete_insertion_image = "INSERT INTO cel_images ";
220
		$query_id ='SELECT ci_id_image FROM cel_images WHERE ci_ce_utilisateur = "'.$DB->escapeSimple($pairs['identifiant']).'" AND ci_ordre = "'.$nouvel_ordre.'"' ;
223
		
221
		$res =& $DB->query($query_id);
-
 
222
 
-
 
223
                if (PEAR::isError($res))
-
 
224
		{
-
 
225
			$erreur = 'ERROR : probleme durant le calcul de l\'id de l\'image \n' ;
-
 
226
                	//die($res->getMessage());
224
		$champs_a_inserer = '' ;
227
        }
-
 
228
		else
225
		$valeurs_a_inserer = '' ;
Line -... Line 226...
-
 
226
 
-
 
227
		foreach($informations_image as $champ => $valeur)
-
 
228
		{
-
 
229
			$champs_a_inserer .= $champ.',' ;
-
 
230
 
-
 
231
			if(is_null($valeur))
-
 
232
			{
-
 
233
				$valeurs_a_inserer .= 'NULL,' ;
-
 
234
			}
-
 
235
			else
-
 
236
			{
-
 
237
				$valeurs_a_inserer .= $this->proteger($valeur).',' ;
229
		{
238
			}
Line -... Line 239...
-
 
239
		}
-
 
240
		
230
			$row = $res->fetchrow() ;
241
		if($fichier_meta['ci_meta_date_time'] != 'NULL') {
-
 
242
			$champs_a_inserer .= 'ci_meta_date, ';
231
			$id = $row[0] ;
243
        	$valeurs_a_inserer .= $this->proteger($fichier_meta['ci_meta_date_time']).',';
Line 232... Line 244...
232
		}
244
		}
233
		
245
 
Line 234... Line 246...
234
		if(isset($id))
246
        $champs_a_inserer .= 'ci_meta_date_ajout' ;
235
		{
247
        $valeurs_a_inserer .= 'CURRENT_TIMESTAMP()' ;
236
			$fichier = array('name' => $infos_fichier['name'] , 'type' => $infos_fichier['type'] , 'size' => $infos_fichier['size'] , 'tmp_name' => $infos_fichier['tmp_name'] ) ;
248
 
Line 237... Line 249...
237
			$fichier_stocke = $manipulateur_image->stockerFichierUploadeEtCreerMiniatures($fichier,$id) ;
249
		$requete_insertion_image .= "(".$champs_a_inserer.") VALUES (".$valeurs_a_inserer.")" ;
238
			// l'upload demande de court-circuiter le fonctionnement normal de JREST
-
 
239
			header('HTTP/1.0 200 Created');
250
		
240
			echo "OK" ;
-
 
241
			exit() ;
-
 
242
		}
-
 
243
		else
-
 
244
		{
251
		return $requete_insertion_image;
-
 
252
	}
-
 
253
	
Line -... Line 254...
-
 
254
	private function envoyerMessageCreationEffectuee() {
-
 
255
			
-
 
256
		header('HTTP/1.0 200 Created');
245
			$erreur =  'ERROR : probleme durant l\'ajout des metadonnees \n' ;
257
		exit() ;
-
 
258
	}
246
			exit ;
259
 
247
		}
260
	/**
-
 
261
	 * Méthode appelée avec une requête de type DELETE.
248
 
262
	 * Supprime les infos sur l'image et le fichier correspondant à l'id passé en parametre
249
	}
263
	*/
250
 
-
 
251
	// supprime une image et ses metadonn�es associ�es de la base du carnet
-
 
252
	function deleteElement($uid){
-
 
253
 
-
 
254
	// uid[0] : utilisateur obligatoire
-
 
255
	// uid[1] : identifiant(s) image(s) obligatoire(s)
-
 
256
 
-
 
Line 257... Line 264...
257
	 // Controle detournement utilisateur
264
	function deleteElement($uid){
258
	    session_start();
265
 
259
		$this->controleUtilisateur($uid[0]);
-
 
260
 
266
		// uid[0] : utilisateur obligatoire
261
		$DB=$this->connectDB($this->config,'cel_db');
-
 
262
 
267
		// uid[1] : identifiant image(s) obligatoire(s)
-
 
268
 
-
 
269
	 	// Controle detournement utilisateur
-
 
270
	    session_start();
-
 
271
		$this->controleUtilisateur($uid[0]);
-
 
272
 
-
 
273
		if(!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) {
-
 
274
			return;
-
 
275
		}
-
 
276
		
-
 
277
		$ids_images = $uid[1];
-
 
278
 
-
 
279
	    $requete_suppression_images = "DELETE FROM cel_images WHERE ci_id_image in (".$ids_images.")";
-
 
280
		$requete_suppression_lien_images_obs = "DELETE FROM cel_obs_images WHERE coi_ce_image in (".$ids_images.")";
-
 
281
		
-
 
282
		$resultat_suppression_image = $this->executerRequeteSimple($requete_suppression_images);
263
		$id = $uid[1] ;
283
		$resultat_suppression_lien_images_obs = $this->executerRequeteSimple($requete_suppression_lien_images_obs);
Line 264... Line 284...
264
 
284
		
265
		if (isset($uid[1])) {
285
		if(!$resultat_suppression_image) {
266
	           	$query="DELETE FROM cel_images WHERE ci_id_image in (".$DB->escapeSimple($uid[1]) .")";
286
			$message =  'Erreur lors de la suppression de l\'image' ;