Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1765 Rev 1872
1
<?php
1
<?php
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
-
 
3
/**
2
/**
4
* PHP Version 5
-
 
5
*
-
 
6
* @category  PHP
-
 
7
* @package   jrest
3
 * @package   jrest
8
* @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>
9
* @copyright 2010 Tela-Botanica
6
 * @copyright 2010, 2013 Tela-Botanica
10
* @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
11
* @version   SVN: <svn_id>
-
 
12
* @link      /doc/jrest/
-
 
13
*/
-
 
14
 
-
 
15
/**
-
 
16
* in : utf8
-
 
17
* out : utf8
-
 
18
* 
8
 *
19
* 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
20
*
10
 */
21
*/
11
 
22
class LiaisonMotsCles extends Cel {
12
class LiaisonMotsCles extends Cel {
23
	
13
	
24
	const SEPARATEUR_MOT_CLE_TEXTE = ',';
14
	const SEPARATEUR_MOT_CLE_TEXTE = ',';
25
	private $mode = 'obs';
15
	private $mode = 'obs';
26
	
16
	
27
	public function LiaisonMotsCles($config, $mode) {
17
	public function LiaisonMotsCles($config, $mode) {
28
		parent::__construct($config);
18
		parent::__construct($config);
29
		$this->mode = $mode;
19
		$this->mode = $mode;
30
	}
20
	}
31
	
21
	
32
	public function ajouterLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
22
	public function ajouterLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
33
		
-
 
34
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
23
		$mode = $this->mode;
35
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image'; 
-
 
36
		
24
		
37
		// le mot clé ignore est spécifique mysql, mais il est utilisé ici pour des raisons
25
		// le mot clé ignore est spécifique mysql, mais il est utilisé ici pour des raisons
38
		// de performance, à remplacer par un test sur les mots clés déjà existant si ça gène
26
		// de performance, à remplacer par un test sur les mots clés déjà existant si ça gène
39
		$requete_liaison_mots_cles = 'INSERT IGNORE INTO cel_'.$this->mode.'_mots_cles '.
27
		$requete_liaison_mots_cles = sprintf('INSERT IGNORE INTO cel_%s_mots_cles '.
-
 
28
											 '(%s, %s) VALUES ',
-
 
29
											 $mode,
-
 
30
											 $mode == 'obs' ? 'id_observation' : 'id_image',
40
								   '('.$champ_objet_lie.', '.$champ_mot_cle.') '.
31
											 $mode == 'obs' ? 'id_mot_cle_obs' : 'id_mot_cle_image');
41
								   'VALUES ';
32
		$insert = array();
42
								   
-
 
43
		foreach($ids_images_ou_obs as $id_image_ou_obs) {
33
		foreach($ids_images_ou_obs as $id_image_ou_obs) {
44
			foreach($mots_cles as $mot) {
34
			foreach($mots_cles as $mot) {
-
 
35
				// TODO!! ce_utilisateur
45
				$requete_liaison_mots_cles .= '('.$id_image_ou_obs.','.Cel::db()->proteger($mot).'),';
36
				$insert[] = '('.$id_image_ou_obs.','.Cel::db()->proteger($mot).')';
46
			}
37
			}
47
		}
38
		}
48
		
39
 
-
 
40
		if(!$insert) {
49
		$requete_liaison_mots_cles = rtrim($requete_liaison_mots_cles,',');
41
			// peut arriver, par exemple lorsqu'on décoche tous les mots-clef associés à une image
50
		$resultat_liaison_mots_cles = Cel::db()->executer($requete_liaison_mots_cles);
42
			$this->logger('CEL_bugs', 'Pas de mot-clef à ajouter à des '.$mode.' : '. implode(',', $ids_images_ou_obs));
51
		
43
		}
-
 
44
		else {
-
 
45
			$resultat_liaison_mots_cles = Cel::db()->executer($requete_liaison_mots_cles . implode(',',$insert));
52
		foreach($ids_images_ou_obs as $id_image_ou_obs) {
46
			if(! $resultat_liaison_mots_cles) {
53
			$this->regenererIndexTexteMotCle($id_image_ou_obs, $id_utilisateur);
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 ...
-
 
51
				// return FALSE;
-
 
52
			}
54
		}
53
		}
-
 
54
 
-
 
55
		// ... donc dans tous les cas nous devons conserver une cohérence entre les deux modes de stockage des mots-clefs
55
 
56
		$ret = TRUE;
56
		if(!$resultat_liaison_mots_cles) {
57
		foreach($ids_images_ou_obs as $id_image_ou_obs) {
-
 
58
			$bool = self::regenererIndexTexteMotCle($id_image_ou_obs, $id_utilisateur, $mode);
57
			$this->logger('CEL_bugs', 'Erreur d\'ajout de mots clés à des '.$this->mode.' : '.$requete_liaison_mots_cles);	
59
			$ret = $ret & ($bool !== FALSE); // peut légitimement retourner 0
58
		}
-
 
59
		
60
		}
60
		return $resultat_liaison_mots_cles;			
61
		return $ret;
61
	}
62
	}
62
	
63
	
63
	public function supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
64
	public function supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
64
		
65
		
65
		$retour = $this->supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles);
66
		$retour = $this->supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles);
66
		
67
		
67
		foreach($ids_images_ou_obs as $image_ou_obs) {
68
		foreach($ids_images_ou_obs as $image_ou_obs) {
68
			$this->regenererIndexTexteMotCle($image_ou_obs, $id_utilisateur);	
69
			self::regenererIndexTexteMotCle($image_ou_obs, $id_utilisateur, $this->mode);
69
		}	
70
		}	
70
		
71
		
71
		return $retour;
72
		return $retour;
72
	}
73
	}
73
	
74
	
74
	public function supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
75
	public function supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
75
		
76
		
76
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
77
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
77
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
78
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
78
		
79
		
79
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
80
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
80
											   $champ_objet_lie.' IN ('.implode(',',$ids_images_ou_obs).') '.
81
											   $champ_objet_lie.' IN ('.implode(',',$ids_images_ou_obs).') '.
81
											   'AND '.$champ_mot_cle.' IN ('.implode(',',$mots_cles).')';
82
											   'AND '.$champ_mot_cle.' IN ('.implode(',',$mots_cles).')';
82
		
83
		
83
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
84
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
84
 
85
 
85
		if ($requete_suppression_liaison_mot_cle !== false) {
-
 
86
			$retour = true;
-
 
87
		} else {
-
 
88
			$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete";
-
 
89
			$this->logger($message);
86
		if ($requete_suppression_liaison_mot_cle !== false) return TRUE;
90
			
87
 
91
			$retour = false;
-
 
92
		}
-
 
93
		
88
		$this->logger("Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete");
94
		return $retour;
89
		return FALSE;
95
	}
90
	}
96
	
91
	
97
	public function supprimerToutesLiaisonsPourIdImageOuObs($id_utilisateur, $ids_images_ou_obs) {
92
	public function supprimerToutesLiaisonsPourIdImageOuObs($id_utilisateur, $ids_images_ou_obs) {
98
		
93
		
99
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
94
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
100
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
95
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
101
		
96
		
102
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
97
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
103
											   $champ_objet_lie.' IN ('.implode(',',$ids_images_ou_obs).') ';
98
											   $champ_objet_lie.' IN ('.implode(',',$ids_images_ou_obs).') ';
104
		
99
		
105
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
100
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
106
 
101
 
107
		if ($requete_suppression_liaison_mot_cle !== false) {
102
		if ($requete_suppression_liaison_mot_cle !== false) {
108
			$retour = true;
103
			return TRUE;
109
		} else {
-
 
110
			$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete";
-
 
111
			$this->logger($message);
-
 
112
			
-
 
113
			$retour = false;
-
 
114
		}
104
		}
115
		
105
 
-
 
106
		$this->logger("Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete");
116
		return $retour;
107
		return FALSE;
117
	}
108
	}
118
	
109
	
119
	public function supprimerToutesLiaisonsPourIdMotCle($id_utilisateur, $tableau_ids_mots_cles) {
110
	public function supprimerToutesLiaisonsPourIdMotCle($id_utilisateur, $tableau_ids_mots_cles) {
120
				
111
				
121
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image';
112
		$champ_objet_lie = ($this->mode == 'obs') ? 'id_observation' : 'id_image';
122
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
113
		$champ_mot_cle = ($this->mode == 'obs') ? 'id_mot_cle_obs' : 'id_mot_cle_image';
123
			
114
			
124
		$chaine_mot_cles_ids = '('.implode(',', $tableau_ids_mots_cles).')';
115
		$chaine_mot_cles_ids = '('.implode(',', $tableau_ids_mots_cles).')';
125
		
116
		
126
		$requete_objets_lies_mot_cle = 'SELECT '.$champ_objet_lie.' as id FROM cel_'.$this->mode.'_mots_cles WHERE '.
117
		$requete_objets_lies_mot_cle = 'SELECT '.$champ_objet_lie.' as id FROM cel_'.$this->mode.'_mots_cles WHERE '.
127
		$champ_mot_cle.' IN '.$chaine_mot_cles_ids;
118
		$champ_mot_cle.' IN '.$chaine_mot_cles_ids;
128
		
119
		
129
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
120
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
130
		$champ_mot_cle.' IN '.$chaine_mot_cles_ids;
121
		$champ_mot_cle.' IN '.$chaine_mot_cles_ids;
131
				
122
				
132
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
123
		$resultat_suppression_mot_cle = Cel::db()->executer($requete_suppression_liaison_mot_cle);
133
	
124
	
134
		$resultat_requete_objets_lies_mot_cle = Cel::db()->requeter($requete_objets_lies_mot_cle);
125
		$resultat_requete_objets_lies_mot_cle = Cel::db()->requeter($requete_objets_lies_mot_cle);
135
		foreach($resultat_requete_objets_lies_mot_cle as $objet_lie) {
126
		foreach($resultat_requete_objets_lies_mot_cle as $objet_lie) {
136
			$this->regenererIndexTexteMotCle($objet_lie['id'], $id_utilisateur);
127
			self::regenererIndexTexteMotCle($objet_lie['id'], $id_utilisateur, $this->mode);
137
		}
128
		}
138
	
129
	
139
		if ($requete_suppression_liaison_mot_cle !== false) {
130
		if ($requete_suppression_liaison_mot_cle !== false) {
140
			$retour = true;
131
			$retour = true;
141
		} else {
132
		} else {
142
			$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete";
133
			$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete";
143
			$this->logger($message);
134
			$this->logger($message);
144
				
135
				
145
			$retour = false;
136
			$retour = false;
146
		}
137
		}
147
	
138
	
148
		return $retour;
139
		return $retour;
149
	}
140
	}
150
		
141
		
151
	private function regenererIndexTexteMotCle($image_ou_obs, $identifiant_utilisateur) {
-
 
152
		
142
	static private function regenererIndexTexteMotCle($id_image_ou_obs, $identifiant_utilisateur, $mode) {
153
		$mots_cles = $this->obtenirMotsClesTexte($image_ou_obs, $identifiant_utilisateur);
143
		$mots_cles = self::obtenirMotsClesTexte($id_image_ou_obs, $identifiant_utilisateur, $mode);
154
		$mots_cles_texte_chaine = "";
144
		$mots_cles_texte_chaine = "";
155
		if (count($mots_cles) > 0) {
145
		if (count($mots_cles) > 0) {
156
			$mots_cles_texte_chaine = $this->formaterTableauMotCleTextePourInsertion($mots_cles);
146
			$mots_cles_texte_chaine = self::formaterTableauMotCleTextePourInsertion($mots_cles);
157
		}
147
		}
158
 
-
 
159
		$this->executerRequeteMiseAJourMotCleTexte($mots_cles_texte_chaine, $image_ou_obs, $identifiant_utilisateur);
-
 
160
	}
148
 
161
	
149
		// self::executerRequeteMiseAJourMotCleTexte($mots_cles_texte_chaine, $id_image_ou_obs, $identifiant_utilisateur, $mode);
162
	private function executerRequeteMiseAJourMotCleTexte($mots_cles_texte_chaine, $id_image_ou_obs, $identifiant_utilisateur) {
150
		return Cel::db()->executer(sprintf('UPDATE %s SET mots_cles_texte = %s WHERE %s = %s AND ce_utilisateur = %s -- %s:%d',
163
		$requete = 	'UPDATE '.(($this->mode == 'obs') ? 'cel_obs' : 'cel_images').' '.
151
										   $mode == 'obs' ? 'cel_obs' : 'cel_images',
-
 
152
										   Cel::db()->proteger($mots_cles_texte_chaine),
164
					'SET mots_cles_texte = '.Cel::db()->proteger($mots_cles_texte_chaine).' '.
153
										   $mode == 'obs' ? 'id_observation' : 'id_image',
-
 
154
										   Cel::db()->proteger($id_image_ou_obs),
165
					'WHERE '.(($this->mode == 'obs') ? 'id_observation' : 'id_image').' = '.Cel::db()->proteger($id_image_ou_obs).
155
										   Cel::db()->proteger($identifiant_utilisateur),
166
					' AND ce_utilisateur = '.Cel::db()->proteger($identifiant_utilisateur);
-
 
167
 
156
										   __FILE__ , __LINE__));
168
		return Cel::db()->executer($requete);
157
		
169
	}
158
	}
170
	
159
	
171
	private function obtenirMotsClesTexte($id_image_ou_obs, $identifiant_utilisateur) {
160
	private static function obtenirMotsClesTexte($id_image_ou_obs, $identifiant_utilisateur, $mode) {
172
		$requete = 	'SELECT mot_cle '.
161
		return Cel::db()->requeter(sprintf('SELECT mot_cle FROM cel_mots_cles_%1$s WHERE id_mot_cle_%2$s IN '.
173
					'FROM '.'cel_mots_cles_'.$this->mode.' '.
162
										   ' (SELECT id_mot_cle_%2$s FROM cel_%1$s_mots_cles WHERE %3$s = %4$s)'.
174
					'WHERE id_mot_cle_'.(($this->mode == 'obs') ? 'obs' : 'image').' IN '.
163
										   ' AND id_utilisateur = %5$s -- %6$s:%7$d',
175
						'('.
164
										   $mode,
176
							'SELECT id_mot_cle_'.(($this->mode == 'obs') ? 'obs' : 'image').' '.
-
 
177
							'FROM cel_'.$this->mode.'_mots_cles '.
165
										   $mode == 'obs' ? 'obs' : 'image',
178
							'WHERE '.(($this->mode == 'obs') ? 'id_observation' : 'id_image').' = '.Cel::db()->proteger($id_image_ou_obs).
-
 
179
						')'.
166
										   $mode == 'obs' ? 'id_observation' : 'id_image',
180
					' AND id_utilisateur = '.Cel::db()->proteger($identifiant_utilisateur);
-
 
181
 
167
										   Cel::db()->proteger($id_image_ou_obs),
182
		$resultats = Cel::db()->requeter($requete);
168
										   Cel::db()->proteger($identifiant_utilisateur),
183
		return $resultats;
169
										   __FILE__ , __LINE__));
184
	}
170
	}
185
	
171
	
186
	private function formaterTableauMotCleTextePourInsertion($tableau_mots_cles_texte) {
172
	private static function formaterTableauMotCleTextePourInsertion($tableau_mots_cles_texte) {
187
		$mot_cles_texte_chaine = '';
173
		$mot_cles_texte_chaine = '';
188
		
174
		
189
		if (is_array($tableau_mots_cles_texte)) { 
175
		if (is_array($tableau_mots_cles_texte)) { 
190
			foreach ($tableau_mots_cles_texte as $mot_cle) {
176
			foreach ($tableau_mots_cles_texte as $mot_cle) {
191
				$mot_cles_texte_chaine .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE;
177
				$mot_cles_texte_chaine .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE;
192
			}
178
			}
193
		}
179
		}
194
		
180
		
195
		$mot_cles_texte_chaine = rtrim($mot_cles_texte_chaine, self::SEPARATEUR_MOT_CLE_TEXTE);
181
		$mot_cles_texte_chaine = rtrim($mot_cles_texte_chaine, self::SEPARATEUR_MOT_CLE_TEXTE);
196
		
182
		
197
		return $mot_cles_texte_chaine;
183
		return $mot_cles_texte_chaine;
198
	}
184
	}
199
	
185
	
200
	public function nettoyerMotsCles($chaine) {
186
	static function nettoyerMotsCles($chaine) {
201
		$valeur = str_replace('null', '', $chaine);
187
		$valeur = str_replace('null', '', $chaine);
202
		$valeur = trim($valeur, ';;');
188
		$valeur = trim($valeur, ';;');
203
		
189
		
204
		return $valeur;
190
		return $valeur;
205
	}
191
	}
206
	
192
	
207
	/**
193
	/**
208
	* Fonction utilisée pour importer les anciens mots clés saisis dans les widget dans un compte identifié
194
	* Fonction utilisée pour importer les anciens mots clés saisis dans les widget dans un compte identifié
209
	* Dans ce cas là, le widget remplit la case id_utilisateur par le mail indiqué lors de la saisie
195
	* Dans ce cas là, le widget remplit la case id_utilisateur par le mail indiqué lors de la saisie
210
	* @param string $mail_utilisateur
196
	* @param string $mail_utilisateur
211
	* @param string $id_utilisateur
197
	* @param string $id_utilisateur
212
	*/
198
	*/
213
	public function migrerMotsClesMailVersId($mail_utilisateur, $infos_utilisateur) {
199
	public function migrerMotsClesMailVersId($mail_utilisateur, $infos_utilisateur) {
214
		// ATTENTION : cette fonction suppose que l'utilisateur n'ai pas déjà de mots clés dans le CEL
200
		// ATTENTION : cette fonction suppose que l'utilisateur n'ai pas déjà de mots clés dans le CEL
215
		// avec l'identifiant $id_utilisateur ce qui est normalement le cas
201
		// avec l'identifiant $id_utilisateur ce qui est normalement le cas
216
		$requete_migration_mc_images = 'UPDATE cel_mots_cles_images SET '.
202
		$requete_migration_mc_images = 'UPDATE cel_mots_cles_images SET '.
217
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
203
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
218
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
204
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
219
 
205
 
220
		$migration_mc_images = Cel::db()->executerRequeteSimple($requete_migration_mc_images);
206
		$migration_mc_images = Cel::db()->executerRequeteSimple($requete_migration_mc_images);
221
		
207
		
222
		// ATTENTION : cette fonction suppose que l'utilisateur n'ai pas déjà de mots clés dans le CEL
208
		// ATTENTION : cette fonction suppose que l'utilisateur n'ai pas déjà de mots clés dans le CEL
223
		// avec l'identifiant $id_utilisateur ce qui est normalement le cas
209
		// avec l'identifiant $id_utilisateur ce qui est normalement le cas
224
		$requete_migration_mc_obs = 'UPDATE cel_mots_cles_obs SET '.
210
		$requete_migration_mc_obs = 'UPDATE cel_mots_cles_obs SET '.
225
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
211
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
226
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
212
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
227
		
213
		
228
		$migration_mc_obs = Cel::db()->executerRequeteSimple($requete_migration_mc_obs);
214
		$migration_mc_obs = Cel::db()->executerRequeteSimple($requete_migration_mc_obs);
229
		
215
		
230
		// Migration des liaisons de mots clés
216
		// Migration des liaisons de mots clés
231
		$requete_migration_mc_liaisons_obs = 'UPDATE cel_obs_mots_cles SET '.
217
		$requete_migration_mc_liaisons_obs = 'UPDATE cel_obs_mots_cles SET '.
232
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
218
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
233
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
219
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
234
		
220
		
235
		$migration_mc_liaisons_obs = Cel::db()->executerRequeteSimple($requete_migration_mc_liaisons_obs);
221
		$migration_mc_liaisons_obs = Cel::db()->executerRequeteSimple($requete_migration_mc_liaisons_obs);
236
		
222
		
237
		$requete_migration_mc_liaisons_images = 'UPDATE cel_images_mots_cles SET '.
223
		$requete_migration_mc_liaisons_images = 'UPDATE cel_images_mots_cles SET '.
238
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
224
		'id_utilisateur = '.Cel::db()->proteger($infos_utilisateur['id_utilisateur']).' '.
239
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
225
		'WHERE id_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' ';
240
		
226
		
241
		$migration_mc_liaisons_images = Cel::db()->executerRequeteSimple($requete_migration_mc_liaisons_images);
227
		$migration_mc_liaisons_images = Cel::db()->executerRequeteSimple($requete_migration_mc_liaisons_images);
242
	
228
	
243
		return $migration_mc_images !== false &&
229
		return $migration_mc_images !== false &&
244
				$migration_mc_obs  !== false && 
230
				$migration_mc_obs  !== false && 
245
				$migration_mc_liaisons_obs !== false && 
231
				$migration_mc_liaisons_obs !== false && 
246
				$migration_mc_liaisons_images  !== false;
232
				$migration_mc_liaisons_images  !== false;
247
	}
233
	}
248
}
234
}
249
?>
235
?>