Subversion Repositories eFlore/Applications.cel

Rev

Rev 1872 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1872 Rev 2042
1
<?php
1
<?php
2
/**
2
/**
3
 * @package   jrest
3
 * @package   jrest
4
 * @author    Aurélien Peronnet <aurelien@tela-botania.org>
4
 * @author    Aurélien Peronnet <aurelien@tela-botania.org>
5
 * @author    Raphaël Droz <raphael@tela-botania.org>
5
 * @author    Raphaël Droz <raphael@tela-botania.org>
6
 * @copyright 2010, 2013 Tela-Botanica
6
 * @copyright 2010, 2013 Tela-Botanica
7
 * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
7
 * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
8
 *
8
 *
9
 * Librairie de liaison d'images et d'observation à des mots clés
9
 * Librairie de liaison d'images et d'observation à des mots clés
10
 */
10
 */
-
 
11
 
-
 
12
//TODO : cette classe devrait disparaitre pour être intégrée dans la classe 
-
 
13
// gestionMotsClesChemin, si possible, mais elle existe pour garder une certaine 
-
 
14
// indépendance entre le mecanisme des mots clés texte dans les tables obs et images
11
 
15
// et les tables de mots clés (elle sera supprimée lorsque le champ mots_cles_texte le sera aussi)
12
class LiaisonMotsCles extends Cel {
16
class LiaisonMotsCles extends Cel {
13
	
17
	
14
	const SEPARATEUR_MOT_CLE_TEXTE = ',';
18
	const SEPARATEUR_MOT_CLE_TEXTE = ',';
15
	private $mode = 'obs';
19
	private $mode = 'obs';
-
 
20
	private $table_elements_lies;
-
 
21
	private $champ_id_element_lie;
16
	
22
	
17
	public function LiaisonMotsCles($config, $mode) {
23
	public function LiaisonMotsCles($config, $mode) {
18
		parent::__construct($config);
24
		parent::__construct($config);
19
		$this->mode = $mode;
25
		$this->mode = $mode;
-
 
26
		list($this->table_elements_lies, $this->champ_id_element_lie) = self::getNomTables($mode);
20
	}
27
	}
-
 
28
	
-
 
29
	private static function getNomTables($mode) {
-
 
30
		$tables = array();
-
 
31
		if($mode == 'obs') {
-
 
32
			$tables = array('cel_obs','id_observation');
-
 
33
		} else {
-
 
34
			$tables = array('cel_images','id_image');
-
 
35
		}
-
 
36
		return $tables;
-
 
37
	}
21
	
38
	
22
	public function ajouterLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
39
	public function ajouterLiaisonMotsCles($id_utilisateur, $ids_elements_lies, $ids_mots_cles) {
23
		$mode = $this->mode;
-
 
24
		
-
 
25
		// le mot clé ignore est spécifique mysql, mais il est utilisé ici pour des raisons
40
		$mode = $this->mode;
26
		// de performance, à remplacer par un test sur les mots clés déjà existant si ça gène
-
 
27
		$requete_liaison_mots_cles = sprintf('INSERT IGNORE INTO cel_%s_mots_cles '.
-
 
28
											 '(%s, %s) VALUES ',
-
 
29
											 $mode,
41
		
30
											 $mode == 'obs' ? 'id_observation' : 'id_image',
-
 
31
											 $mode == 'obs' ? 'id_mot_cle_obs' : 'id_mot_cle_image');
-
 
32
		$insert = array();
-
 
33
		foreach($ids_images_ou_obs as $id_image_ou_obs) {
-
 
34
			foreach($mots_cles as $mot) {
-
 
35
				// TODO!! ce_utilisateur
-
 
36
				$insert[] = '('.$id_image_ou_obs.','.Cel::db()->proteger($mot).')';
-
 
37
			}
42
		$gestion_mots_cles = new GestionMotsClesChemin($this->config, $mode);
38
		}
43
		$insertion = $gestion_mots_cles->lierParTableaux($ids_mots_cles, $ids_elements_lies, $id_utilisateur);
39
 
44
 
40
		if(!$insert) {
-
 
41
			// peut arriver, par exemple lorsqu'on décoche tous les mots-clef associés à une image
-
 
42
			$this->logger('CEL_bugs', 'Pas de mot-clef à ajouter à des '.$mode.' : '. implode(',', $ids_images_ou_obs));
-
 
43
		}
-
 
44
		else {
-
 
45
			$resultat_liaison_mots_cles = Cel::db()->executer($requete_liaison_mots_cles . implode(',',$insert));
-
 
46
			if(! $resultat_liaison_mots_cles) {
-
 
47
				$this->logger('CEL_bugs', 'Erreur d\'ajout de mots clés à des '.$mode.' : '.$requete_liaison_mots_cles);	
-
 
48
				// ne pas retourner car si nous sommes passés par InventoryKeyWordImageLink updateElement(),
-
 
49
				// alors celui-ci à *purgé* les mots-clefs en amont et compte sur nous pour faire une réinitialisation
-
 
50
				/// correcte ...
45
		if(!$insertion) {
51
				// return FALSE;
46
			// peut arriver, par exemple lorsqu'on décoche tous les mots-clef associés à une image
52
			}
47
			$this->logger('CEL_bugs', 'Pas de mot-clef à ajouter à des '.$mode.' : '. implode(',', $ids_elements_lies));
53
		}
48
		}
54
 
49
 
55
		// ... donc dans tous les cas nous devons conserver une cohérence entre les deux modes de stockage des mots-clefs
50
		// ... donc dans tous les cas nous devons conserver une cohérence entre les deux modes de stockage des mots-clefs
56
		$ret = TRUE;
51
		$ret = TRUE;
-
 
52
		
57
		foreach($ids_images_ou_obs as $id_image_ou_obs) {
53
		foreach($ids_elements_lies as $id_element_lie) {
58
			$bool = self::regenererIndexTexteMotCle($id_image_ou_obs, $id_utilisateur, $mode);
54
			$bool = self::regenererIndexTexteMotCle($id_element_lie, $mode);
59
			$ret = $ret & ($bool !== FALSE); // peut légitimement retourner 0
55
			$ret = $ret & ($bool !== FALSE); // peut légitimement retourner 0
60
		}
56
		}
61
		return $ret;
57
		return $ret;
62
	}
58
	}
63
	
59
	
-
 
60
	public function supprimerLiaisonsMotsClesEtRegenererIndexTexte($id_utilisateur, $ids_elements_lies, $chemins) {
64
	public function supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
61
		
65
		
62
		$gestion_mots_cles = new GestionMotsClesChemin($this->config, $this->mode);
66
		$retour = $this->supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles);
63
		$retour = $gestion_mots_cles->supprimerLiaisonsMotsCles($chemins, $ids_elements_lies, $id_utilisateur);
67
		
64
		
68
		foreach($ids_images_ou_obs as $image_ou_obs) {
65
		foreach($ids_elements_lies as $id_element_lie) {
69
			self::regenererIndexTexteMotCle($image_ou_obs, $id_utilisateur, $this->mode);
66
			self::regenererIndexTexteMotCle($id_element_lie, $this->mode);
70
		}	
67
		}	
71
		
68
		
72
		return $retour;
69
		return $retour;
73
	}
70
	}
74
	
-
 
75
	public function supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
-
 
76
		
-
 
77
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
-
 
78
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
-
 
79
		
-
 
80
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
-
 
81
											   $champ_objet_lie.' IN ('.implode(',',$ids_images_ou_obs).') '.
-
 
82
											   'AND '.$champ_mot_cle.' IN ('.implode(',',$mots_cles).')';
-
 
83
		
-
 
84
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
-
 
85
 
-
 
86
		if ($requete_suppression_liaison_mot_cle !== false) return TRUE;
-
 
87
 
-
 
88
		$this->logger("Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete");
-
 
89
		return FALSE;
-
 
90
	}
-
 
91
	
71
	
92
	public function supprimerToutesLiaisonsPourIdImageOuObs($id_utilisateur, $ids_images_ou_obs) {
-
 
93
		
-
 
94
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
-
 
95
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
72
	public function supprimerToutesLiaisonsPourIdsElementsLies($id_utilisateur, $ids_elements_lie) {
96
		
-
 
97
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
-
 
98
											   $champ_objet_lie.' IN ('.implode(',',$ids_images_ou_obs).') ';
73
		
99
		
-
 
100
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
74
		$gestion_mots_cles = new GestionMotsClesChemin($this->config, $this->mode);
101
 
75
		$suppression_mot_cles = $gestion_mots_cles->supprimerToutesLiaisonsPourIdsElementsLies($ids_elements_lie, $id_utilisateur);
102
		if ($requete_suppression_liaison_mot_cle !== false) {
76
		if ($suppression_mot_cles !== false) {
103
			return TRUE;
77
			return TRUE;
104
		}
78
		}
105
 
79
 
106
		$this->logger("Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete");
80
		$this->logger("Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete");
107
		return FALSE;
81
		return FALSE;
108
	}
82
	}
109
	
83
	
110
	public function supprimerToutesLiaisonsPourIdMotCle($id_utilisateur, $tableau_ids_mots_cles) {
-
 
111
				
-
 
112
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image';
-
 
113
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
-
 
114
			
-
 
115
		$chaine_mot_cles_ids = '('.implode(',', $tableau_ids_mots_cles).')';
84
	public function supprimerToutesLiaisonsPourChemins($id_utilisateur, $chemins) {
116
		
85
		
117
		$requete_objets_lies_mot_cle = 'SELECT '.$champ_objet_lie.' as id FROM cel_'.$this->mode.'_mots_cles WHERE '.
-
 
118
		$champ_mot_cle.' IN '.$chaine_mot_cles_ids;
-
 
119
		
-
 
120
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
-
 
121
		$champ_mot_cle.' IN '.$chaine_mot_cles_ids;
-
 
122
				
-
 
123
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
86
		$gestion_mots_cles = new GestionMotsClesChemin($this->config, $this->mode);
124
	
87
		$ids_elements_lies = $gestion_mots_cles->obtenirIdElementsLiesPourChemins($chemins);
125
		$resultat_requete_objets_lies_mot_cle = Cel::db()->requeter($requete_objets_lies_mot_cle);
88
		
-
 
89
		foreach($ids_elements_lies as $id_element_lie) {
-
 
90
			self::regenererIndexTexteMotCle($id_element_lie['id_element_lie'], $this->mode);
126
		foreach($resultat_requete_objets_lies_mot_cle as $objet_lie) {
91
		}
127
			self::regenererIndexTexteMotCle($objet_lie['id'], $id_utilisateur, $this->mode);
92
		
128
		}
93
		$suppression_mot_cles = $gestion_mots_cles->supprimerToutesLiaisonsPourChemins($chemins, $id_utilisateur);
129
	
94
	
130
		if ($requete_suppression_liaison_mot_cle !== false) {
95
		if ($requete_suppression_liaison_mot_cle !== false) {
131
			$retour = true;
96
			$retour = true;
132
		} else {
97
		} else {
133
			$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete";
98
			$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete";
134
			$this->logger($message);
99
			$this->logger($message);
135
				
100
				
136
			$retour = false;
101
			$retour = false;
137
		}
102
		}
138
	
103
	
139
		return $retour;
104
		return $retour;
140
	}
105
	}
-
 
106
 
-
 
107
	public function supprimerLiaisonsPourIdEtEnfants($id_utilisateur, $id_mot_cle) {
-
 
108
		
-
 
109
		$gestion_mots_cles = new GestionMotsClesChemin($this->config, $this->mode);
141
		
110
		
142
	static private function regenererIndexTexteMotCle($id_image_ou_obs, $identifiant_utilisateur, $mode) {
111
		// même s'il n'a pas d'enfants, le tableau contient au moins l'id du mot clé lui même
-
 
112
		$ids_mot_cle_et_enfants = $gestion_mots_cles->obtenirIdsMotsClesParIdParent($id_utilisateur, $id_mot_cle);
-
 
113
		// obtention des ids des éléments liés au mot clé ainsi qu'à ces enfants (afin de pouvoir 
143
		$mots_cles = self::obtenirMotsClesTexte($id_image_ou_obs, $identifiant_utilisateur, $mode);
114
		// régénérer les index texte de mots clés sur les éléments liés
-
 
115
		$ids_a_delier = array();
-
 
116
		// création de deux tableaux pour éviter un bug du au passage par référence
144
		$mots_cles_texte_chaine = "";
117
		// TODO: corriger ça bien proprement
145
		if (count($mots_cles) > 0) {
118
		foreach($ids_mot_cle_et_enfants as &$id) {
-
 
119
			$ids_a_delier[] = $id['id_mot_cle'];
146
			$mots_cles_texte_chaine = self::formaterTableauMotCleTextePourInsertion($mots_cles);
120
			$id = $id['id_mot_cle'];
147
		}
121
		}
148
 
122
 
-
 
123
		$ids_elements_lies = $gestion_mots_cles->obtenirIdElementsLiesPourIds($ids_a_delier);
149
		// self::executerRequeteMiseAJourMotCleTexte($mots_cles_texte_chaine, $id_image_ou_obs, $identifiant_utilisateur, $mode);
124
		$suppression_liaison = $gestion_mots_cles->supprimerToutesLiaisonsIdsMotsCles($ids_mot_cle_et_enfants, $id_utilisateur);
-
 
125
		
-
 
126
		foreach($ids_elements_lies as $id_element_lie) {
-
 
127
			self::regenererIndexTexteMotCle($id_element_lie, $this->mode);
150
		return Cel::db()->executer(sprintf('UPDATE %s SET mots_cles_texte = %s WHERE %s = %s AND ce_utilisateur = %s -- %s:%d',
128
		}
-
 
129
		
-
 
130
		return Cel::db()->executer($requete, __FILE__ , __LINE__);
151
										   $mode == 'obs' ? 'cel_obs' : 'cel_images',
131
	}
-
 
132
	
-
 
133
	static private function regenererIndexTexteMotCle($id_element_lie, $mode) {
152
										   Cel::db()->proteger($mots_cles_texte_chaine),
134
		
-
 
135
		$sous_requete_concat = '('.sprintf(GestionMotsClesChemin::obtenirTemplateRequeteMotsClesTexte($mode), 
-
 
136
								Cel::db()->proteger($id_element_lie)).')';
-
 
137
		
153
										   $mode == 'obs' ? 'id_observation' : 'id_image',
138
		list($table, $champ_id) = self::getNomTables($mode);
-
 
139
		$requete = 'UPDATE '.$table.' SET mots_cles_texte = '.$sous_requete_concat.' '.
154
										   Cel::db()->proteger($id_image_ou_obs),
140
		           'WHERE '.$champ_id.' = '.Cel::db()->proteger($id_element_lie).' ';
155
										   Cel::db()->proteger($identifiant_utilisateur),
141
 
156
										   __FILE__ , __LINE__));
142
		return Cel::db()->executer($requete, __FILE__ , __LINE__);
157
		
143
		
158
	}
144
	}
159
	
145
	
160
	private static function obtenirMotsClesTexte($id_image_ou_obs, $identifiant_utilisateur, $mode) {
146
	private static function obtenirMotsClesTexte($id_image_ou_obs, $identifiant_utilisateur, $mode) {
161
		return Cel::db()->requeter(sprintf('SELECT mot_cle FROM cel_mots_cles_%1$s WHERE id_mot_cle_%2$s IN '.
147
		return Cel::db()->requeter(sprintf('SELECT mot_cle FROM cel_mots_cles_%1$s WHERE id_mot_cle_%2$s IN '.
162
										   ' (SELECT id_mot_cle_%2$s FROM cel_%1$s_mots_cles WHERE %3$s = %4$s)'.
148
										   ' (SELECT id_mot_cle_%2$s FROM cel_%1$s_mots_cles WHERE %3$s = %4$s)'.
163
										   ' AND id_utilisateur = %5$s -- %6$s:%7$d',
149
										   ' AND id_utilisateur = %5$s -- %6$s:%7$d',
164
										   $mode,
150
										   $mode,
165
										   $mode == 'obs' ? 'obs' : 'image',
151
										   $mode == 'obs' ? 'obs' : 'image',
166
										   $mode == 'obs' ? 'id_observation' : 'id_image',
152
										   $mode == 'obs' ? 'id_observation' : 'id_image',
167
										   Cel::db()->proteger($id_image_ou_obs),
153
										   Cel::db()->proteger($id_image_ou_obs),
168
										   Cel::db()->proteger($identifiant_utilisateur),
154
										   Cel::db()->proteger($identifiant_utilisateur),
169
										   __FILE__ , __LINE__));
155
										   __FILE__ , __LINE__));
170
	}
156
	}
171
	
157
	
172
	private static function formaterTableauMotCleTextePourInsertion($tableau_mots_cles_texte) {
158
	private static function formaterTableauMotCleTextePourInsertion($tableau_mots_cles_texte) {
173
		$mot_cles_texte_chaine = '';
159
		$mot_cles_texte_chaine = '';
174
		
160
		
175
		if (is_array($tableau_mots_cles_texte)) { 
161
		if (is_array($tableau_mots_cles_texte)) { 
176
			foreach ($tableau_mots_cles_texte as $mot_cle) {
162
			foreach ($tableau_mots_cles_texte as $mot_cle) {
177
				$mot_cles_texte_chaine .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE;
163
				$mot_cles_texte_chaine .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE;
178
			}
164
			}
179
		}
165
		}
180
		
166
		
181
		$mot_cles_texte_chaine = rtrim($mot_cles_texte_chaine, self::SEPARATEUR_MOT_CLE_TEXTE);
167
		$mot_cles_texte_chaine = rtrim($mot_cles_texte_chaine, self::SEPARATEUR_MOT_CLE_TEXTE);
182
		
168
		
183
		return $mot_cles_texte_chaine;
169
		return $mot_cles_texte_chaine;
184
	}
170
	}
185
	
171
	
186
	static function nettoyerMotsCles($chaine) {
172
	static function nettoyerMotsCles($chaine) {
187
		$valeur = str_replace('null', '', $chaine);
173
		$valeur = str_replace('null', '', $chaine);
188
		$valeur = trim($valeur, ';;');
174
		$valeur = trim($valeur, ';;');
189
		
175
		
190
		return $valeur;
176
		return $valeur;
191
	}
177
	}
192
	
178
	
193
	/**
179
	/**
194
	* Fonction utilisée pour importer les anciens mots clés saisis dans les widget dans un compte identifié
180
	* Fonction utilisée pour importer les anciens mots clés saisis dans les widget dans un compte identifié
195
	* Dans ce cas là, le widget remplit la case id_utilisateur par le mail indiqué lors de la saisie
181
	* Dans ce cas là, le widget remplit la case id_utilisateur par le mail indiqué lors de la saisie
196
	* @param string $mail_utilisateur
182
	* @param string $mail_utilisateur
197
	* @param string $id_utilisateur
183
	* @param string $id_utilisateur
198
	*/
184
	*/
199
	public function migrerMotsClesMailVersId($mail_utilisateur, $infos_utilisateur) {
185
	public function migrerMotsClesMailVersId($mail_utilisateur, $infos_utilisateur) {
200
		// ATTENTION : cette fonction suppose que l'utilisateur n'ai pas déjà de mots clés dans le CEL
186
		// ATTENTION : cette fonction suppose que l'utilisateur n'ai pas déjà de mots clés dans le CEL
201
		// avec l'identifiant $id_utilisateur ce qui est normalement le cas
187
		// avec l'identifiant $id_utilisateur ce qui est normalement le cas
202
		$requete_migration_mc_images = 'UPDATE cel_mots_cles_images SET '.
188
		$requete_migration_mc_images = 'UPDATE cel_mots_cles_images SET '.
203
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
189
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
204
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
190
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
205
 
191
 
206
		$migration_mc_images = Cel::db()->executerRequeteSimple($requete_migration_mc_images);
192
		$migration_mc_images = Cel::db()->executerRequeteSimple($requete_migration_mc_images);
207
		
193
		
208
		// ATTENTION : cette fonction suppose que l'utilisateur n'ai pas déjà de mots clés dans le CEL
194
		// ATTENTION : cette fonction suppose que l'utilisateur n'ai pas déjà de mots clés dans le CEL
209
		// avec l'identifiant $id_utilisateur ce qui est normalement le cas
195
		// avec l'identifiant $id_utilisateur ce qui est normalement le cas
210
		$requete_migration_mc_obs = 'UPDATE cel_mots_cles_obs SET '.
196
		$requete_migration_mc_obs = 'UPDATE cel_mots_cles_obs SET '.
211
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
197
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
212
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
198
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
213
		
199
		
214
		$migration_mc_obs = Cel::db()->executerRequeteSimple($requete_migration_mc_obs);
200
		$migration_mc_obs = Cel::db()->executerRequeteSimple($requete_migration_mc_obs);
215
		
201
		
216
		// Migration des liaisons de mots clés
202
		// Migration des liaisons de mots clés
217
		$requete_migration_mc_liaisons_obs = 'UPDATE cel_obs_mots_cles SET '.
203
		$requete_migration_mc_liaisons_obs = 'UPDATE cel_obs_mots_cles SET '.
218
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
204
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
219
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
205
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
220
		
206
		
221
		$migration_mc_liaisons_obs = Cel::db()->executerRequeteSimple($requete_migration_mc_liaisons_obs);
207
		$migration_mc_liaisons_obs = Cel::db()->executerRequeteSimple($requete_migration_mc_liaisons_obs);
222
		
208
		
223
		$requete_migration_mc_liaisons_images = 'UPDATE cel_images_mots_cles SET '.
209
		$requete_migration_mc_liaisons_images = 'UPDATE cel_images_mots_cles SET '.
224
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
210
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
225
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
211
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
226
		
212
		
227
		$migration_mc_liaisons_images = Cel::db()->executerRequeteSimple($requete_migration_mc_liaisons_images);
213
		$migration_mc_liaisons_images = Cel::db()->executerRequeteSimple($requete_migration_mc_liaisons_images);
228
	
214
	
229
		return $migration_mc_images !== false &&
215
		return $migration_mc_images !== false &&
230
				$migration_mc_obs  !== false && 
216
				$migration_mc_obs  !== false && 
231
				$migration_mc_liaisons_obs !== false && 
217
				$migration_mc_liaisons_obs !== false && 
232
				$migration_mc_liaisons_images  !== false;
218
				$migration_mc_liaisons_images  !== false;
233
	}
219
	}
234
}
220
}
235
?>
221
?>