Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1181 Rev 1184
Line 1... Line 1...
1
<?php
1
<?php
Line 2... Line 2...
2
 
2
 
3
class MigrationObs extends Cel {
3
class MigrationObs extends Cel {
4
	
4
 
5
	public static $bdd_cel_migration;
5
	public static $bdd_cel_migration;
6
	public static $bdd_utilisateurs;
6
	public static $bdd_utilisateurs;
7
	
7
 
8
	const truncate = true; //Doit on vider les tables de destination ?
8
	const truncate = true; //Doit on vider les tables de destination ?
9
	
9
 
10
	const dry_run = false;
10
	const dry_run = false;
11
	
11
 
12
	/** Tableau associatif permettant de stocker l'avancement dans une boucle.
12
	/** Tableau associatif permettant de stocker l'avancement dans une boucle.
13
	* La clé est un md5 du message à afficher au démarrage de la boucle.
13
	* La clé est un md5 du message à afficher au démarrage de la boucle.
14
	* @var array
14
	* @var array
15
	*/
15
	*/
16
	private static $avancement = array();
16
	private static $avancement = array();
17
	
17
 
18
	private $communesOubliees = array();
18
	private $communesOubliees = array();
19
	private $tableau_utilisateurs = array();
19
	private $tableau_utilisateurs = array();
20
	private $tableau_mots_cles = array();
20
	private $tableau_mots_cles = array();
21
	private $tableau_zones_geo = array();
21
	private $tableau_zones_geo = array();
22
	
22
 
23
	private $tableau_nouveau_ancien = array(
23
	private $tableau_nouveau_ancien = array(
24
		'id_observation' 		=> 'id',
24
		'id_observation' 		=> 'id',
25
		'ordre'					=> 'ordre',
25
		'ordre'					=> 'ordre',
26
		'ce_utilisateur'		=> 'traiterIdentifiantUtilisateur',
26
		'ce_utilisateur'		=> 'traiterIdentifiantUtilisateur',
Line 48... Line 48...
48
		'transmission'			=> 'transmission',
48
		'transmission'			=> 'transmission',
49
		'date_creation'			=> 'date_creation',
49
		'date_creation'			=> 'date_creation',
50
		'date_modification'		=> 'date_modification',
50
		'date_modification'		=> 'date_modification',
51
		'date_transmission'		=> 'date_transmission'
51
		'date_transmission'		=> 'date_transmission'
52
		);
52
		);
53
		
53
 
54
	private $tableau_ancien_nouveau = array(
54
	private $tableau_ancien_nouveau = array(
55
		'id'					=> 'id_observation',
55
		'id'					=> 'id_observation',
56
		'identifiant'			=> '',
56
		'identifiant'			=> '',
57
		'prenom_utilisateur'	=> 'prenom_utilisateur',
57
		'prenom_utilisateur'	=> 'prenom_utilisateur',
58
		'nom_utilisateur'		=> 'nom_utilisateur',
58
		'nom_utilisateur'		=> 'nom_utilisateur',
Line 82... Line 82...
82
 
82
 
83
	/**
83
	/**
84
	 * Méthode appelée avec une requête de type GET.
84
	 * Méthode appelée avec une requête de type GET.
85
	 */
85
	 */
86
	public function getElement($params) {
86
	public function getElement($params) {
87
		
87
 
88
		if(!isset($this->config['database_cel']['database_migration']) || $this->config['database_cel']['database_migration'] == '') {
88
		if(!isset($this->config['database_cel']['database_migration']) || $this->config['database_cel']['database_migration'] == '') {
89
			echo 'Attention la variable de configuration database_migration dans la section database_cel, contenant la base de données d\'arrivée, doit être remplie '."\n";
89
			echo 'Attention la variable de configuration database_migration dans la section database_cel, contenant la base de données d\'arrivée, doit être remplie '."\n";
90
			exit;
90
			exit;
91
		}
91
		}
92
		
92
 
93
		if(!isset($this->config['database_ident']['database']) || $this->config['database_ident']['database'] == '') {
93
		if(!isset($this->config['database_ident']['database']) || $this->config['database_ident']['database'] == '') {
94
			echo 'Attention la variable de configuration database dans la section database_ident, contenant la base de données utilisateurs, doit être remplie '."\n";
94
			echo 'Attention la variable de configuration database dans la section database_ident, contenant la base de données utilisateurs, doit être remplie '."\n";
95
			exit;
95
			exit;
96
		}
96
		}
97
		
97
 
98
		self::$bdd_cel_migration = $this->config['database_cel']['database_migration'];
98
		self::$bdd_cel_migration = $this->config['database_cel']['database_migration'];
99
		self::$bdd_utilisateurs = $this->config['database_ident']['database'];
99
		self::$bdd_utilisateurs = $this->config['database_ident']['database'];
100
		
100
 
101
		echo "--MIGRATION DES OBSERVATIONS --------------------------------------\n";
101
		echo "--MIGRATION DES OBSERVATIONS --------------------------------------\n";
102
		//1. TEMPORAIRE : vider les tables de destinations
102
		//1. TEMPORAIRE : vider les tables de destinations
103
		if (self::truncate) {
103
		if (self::truncate) {
104
			echo "-------------------------------------------------------------------\n\n";
104
			echo "-------------------------------------------------------------------\n\n";
Line 110... Line 110...
110
				echo 'Vider la table '.$nomTable.'...';
110
				echo 'Vider la table '.$nomTable.'...';
111
				$requeteTruncate = 'TRUNCATE TABLE '.self::$bdd_cel_migration.'.'.$nomTable;
111
				$requeteTruncate = 'TRUNCATE TABLE '.self::$bdd_cel_migration.'.'.$nomTable;
112
				$resultatTruncate = $this->executerRequete($requeteTruncate);
112
				$resultatTruncate = $this->executerRequete($requeteTruncate);
113
				echo "ok \n";
113
				echo "ok \n";
114
			}
114
			}
115
			
115
 
116
			echo "\n---------------------------------------------------------------- OK\n\n";
116
			echo "\n---------------------------------------------------------------- OK\n\n";
117
		}
117
		}
118
		
118
 
119
		echo "-------------------------------------------------------------------\n\n";
119
		echo "-------------------------------------------------------------------\n\n";
120
		echo "  ETAPE 1. Paramétrage ... \n\n";
120
		echo "  ETAPE 1. Paramétrage ... \n\n";
121
		echo "-------------------------------------------------------------------\n\n";
121
		echo "-------------------------------------------------------------------\n\n";
122
		
-
 
123
		$this->getUtilisateurs();
122
		$this->getUtilisateurs();
124
		$this->getMotsCles();
123
		$this->getMotsCles();
125
		
124
 
126
		echo "-------------------------------------------------------------------\n\n";
125
		echo "-------------------------------------------------------------------\n\n";
127
		echo "  ETAPE 2. Migration des utilisateurs ... \n\n";
126
		echo "  ETAPE 2. Migration des utilisateurs ... \n\n";
128
		echo "-------------------------------------------------------------------\n\n";
127
		echo "-------------------------------------------------------------------\n\n";
129
		
-
 
130
		$this->migrerUtilisateurs();
128
		$this->migrerUtilisateurs();
131
		
129
 
132
		echo "-------------------------------------------------------------------\n\n";
130
		echo "-------------------------------------------------------------------\n\n";
133
		echo "  ETAPE 3. Migration des zone géographiques ... \n\n";
131
		echo "  ETAPE 3. Migration des zone géographiques ... \n\n";
134
		echo "-------------------------------------------------------------------\n\n";
132
		echo "-------------------------------------------------------------------\n\n";
135
		$this->migrerZonesGeo();
133
		$this->migrerZonesGeo();
136
		
134
 
137
		echo "-------------------------------------------------------------------\n\n";
135
		echo "-------------------------------------------------------------------\n\n";
138
		echo "  ETAPE 4. Migration des observations ... \n\n";
136
		echo "  ETAPE 4. Migration des observations ... \n\n";
139
		echo "-------------------------------------------------------------------\n\n";
137
		echo "-------------------------------------------------------------------\n\n";
140
		$this->migrerObs();
138
		$this->migrerObs();
-
 
139
		$this->ordonnerObs();
141
		echo "\n"."\n"."\n";
140
		echo "\n"."\n"."\n";
142
	}
141
	}
143
	
142
 
144
	public function executerRequeteSimple($requete) {
143
	public function executerRequeteSimple($requete) {
145
		// Fonction de commodité pour afficher les requetes au lieu de les executer
144
		// Fonction de commodité pour afficher les requetes au lieu de les executer
146
		if (self::dry_run) {
145
		if (self::dry_run) {
147
			echo str_replace('),','),'."\n", $requete);	
146
			echo str_replace('),','),'."\n", $requete);
148
			return true;
147
			return true;
149
		} else {
148
		} else {
150
			return parent::executerRequeteSimple($requete);
149
			return parent::executerRequeteSimple($requete);
151
		}
150
		}
152
	}
151
	}
153
	
152
 
154
	private function getUtilisateurs() {
153
	private function getUtilisateurs() {
155
		echo "\n-------------------------------------------------------------------\n";
154
		echo "\n-------------------------------------------------------------------\n";
156
		echo "--SELECTION DES UTILISATEURS---------------------------------------\n\n";
155
		echo "--SELECTION DES UTILISATEURS---------------------------------------\n\n";
157
		
156
 
158
		$requete_selection_utilisateurs = 'SELECT U_ID as id, U_MAIL as mail, U_NAME as nom, U_SURNAME as prenom, U_PASSWD as pass FROM '.self::$bdd_utilisateurs.'.annuaire_tela';
157
		$requete = 'SELECT U_ID as id, U_MAIL as mail, U_NAME as nom, U_SURNAME as prenom, U_PASSWD as pass '.
-
 
158
			'FROM '.self::$bdd_utilisateurs.'.annuaire_tela ';
159
		$tableau_utilisateurs = $this->executerRequete($requete_selection_utilisateurs);
159
		$tableau_utilisateurs = $this->executerRequete($requete);
160
		
160
 
161
		foreach( $tableau_utilisateurs as &$utilisateur) {
161
		foreach( $tableau_utilisateurs as &$utilisateur) {
162
			$this->tableau_utilisateurs[$utilisateur['mail']] = $utilisateur;
162
			$this->tableau_utilisateurs[$utilisateur['mail']] = $utilisateur;
163
		}
163
		}
164
		
164
 
165
		echo sizeof($this->tableau_utilisateurs)." utilisateurs sélectionnés";
165
		echo sizeof($this->tableau_utilisateurs)." utilisateurs sélectionnés";
166
		echo "\n-----------------------------------------------------------------OK\n";
166
		echo "\n-----------------------------------------------------------------OK\n";
167
	}
167
	}
168
	
168
 
169
	private function getMotsCles() {
169
	private function getMotsCles() {
170
		echo "\n-------------------------------------------------------------------\n";
170
		echo "\n-------------------------------------------------------------------\n";
171
		echo "--SELECTION DES MOTS-CLES -----------------------------------------\n\n";
171
		echo "--SELECTION DES MOTS-CLES -----------------------------------------\n\n";
172
		
172
 
173
		$requete_selection_mots_cles = 'SELECT cmc_id_proprietaire as id_utilisateur, cmc_id_mot_cle_utilisateur as id_mot_cle, cmc_mot_cle as mot_cle FROM cel_mots_cles_obs';
173
		$requete = 'SELECT cmc_id_proprietaire as id_utilisateur, cmc_id_mot_cle_utilisateur as id_mot_cle, '.
-
 
174
			'cmc_mot_cle as mot_cle '.
-
 
175
			'FROM cel_mots_cles_obs ';
174
		$tableau_mots_cles = $this->executerRequete($requete_selection_mots_cles);
176
		$tableau_mots_cles = $this->executerRequete($requete);
Line 175... Line 177...
175
 
177
 
176
		foreach( $tableau_mots_cles as &$mot_cle) {
178
		foreach( $tableau_mots_cles as &$mot_cle) {
177
			$this->tableau_mots_cles[$mot_cle['id_utilisateur']][$mot_cle['id_mot_cle']] = $mot_cle;
179
			$this->tableau_mots_cles[$mot_cle['id_utilisateur']][$mot_cle['id_mot_cle']] = $mot_cle;
178
		}
180
		}
179
		
181
 
180
		echo sizeof($this->tableau_mots_cles)." mots-clés sélectionnés";
182
		echo sizeof($this->tableau_mots_cles)." mots-clés sélectionnés";
181
		echo "\n-----------------------------------------------------------------OK\n";
183
		echo "\n-----------------------------------------------------------------OK\n";
182
		
184
 
183
	}
185
	}
184
	
186
 
185
	/** 
187
	/**
186
	 * Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
188
	 * Utiliser cette méthode dans une boucle pour afficher un message suivi du nombre de tour de boucle effectué.
187
	 * Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle. 
189
	 * Vous devrez vous même gérer le retour à la ligne à la sortie de la boucle.
188
	 * 
190
	 *
189
	 * @param string le message d'information.
191
	 * @param string le message d'information.
190
	 * @param int le nombre de départ à afficher.
192
	 * @param int le nombre de départ à afficher.
191
	 * @return void le message est affiché dans la console.
193
	 * @return void le message est affiché dans la console.
192
	 */
194
	 */
193
	protected function afficherAvancement($message, $depart = 0) {
195
	protected function afficherAvancement($message, $depart = 0) {
194
		if (! isset(self::$avancement[$message])) {
196
		if (! isset(self::$avancement[$message])) {
195
			self::$avancement[$message] = $depart;
197
			self::$avancement[$message] = $depart;
196
			echo "$message : ";
198
			echo "$message : ";
197
			
199
 
198
			$actuel =& self::$avancement[$message];
200
			$actuel =& self::$avancement[$message];
199
			echo $actuel++;
201
			echo $actuel++;
200
		} else {
202
		} else {
201
			$actuel =& self::$avancement[$message];
203
			$actuel =& self::$avancement[$message];
202
			
204
 
203
			// Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
205
			// Cas du passage de 99 (= 2 caractères) à 100 (= 3 caractères)
204
			$passage = 0;
206
			$passage = 0;
205
			if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) {
207
			if (strlen((string) ($actuel - 1)) < strlen((string) ($actuel))) {
206
				$passage = 1;				
208
				$passage = 1;
207
			}
209
			}
208
			
210
 
209
			echo str_repeat(chr(8), (strlen((string) $actuel) - $passage));
211
			echo str_repeat(chr(8), (strlen((string) $actuel) - $passage));
210
			echo $actuel++;
212
			echo $actuel++;
211
		}
213
		}
212
	}
214
	}
213
	
215
 
214
	private function migrerUtilisateurs() {
216
	private function migrerUtilisateurs() {
215
		
217
 
216
		$pas = 1000;
218
		$pas = 1000;
217
		$nbTotal = 0;
219
		$nbTotal = 0;
218
		$tabUtilisateurs = $this->tableau_utilisateurs;
220
		$tabUtilisateurs = $this->tableau_utilisateurs;
219
		while (!empty($tabUtilisateurs)) {
221
		while (!empty($tabUtilisateurs)) {
220
			$requete_insertion_utilisateurs = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_utilisateurs '.
222
			$requete = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_utilisateurs '.
221
						'(id_utilisateur, prenom, nom, courriel, mot_de_passe) '.
223
						'(id_utilisateur, prenom, nom, courriel, mot_de_passe) '.
222
						'VALUES ';
-
 
223
			$sous_requete_insertion = '';
224
						'VALUES ';
-
 
225
 
224
						
226
			$sous_requete = array();
225
			$i = 0;
227
			$i = 0;
226
			foreach ($tabUtilisateurs as $id => &$utilisateur) {
-
 
227
				
228
			foreach ($tabUtilisateurs as $id => &$utilisateur) {
228
				$i++;
229
				$i++;
229
				if ($i == $pas) {
230
				if ($i == $pas) {
230
					break;
231
					break;
-
 
232
				}
-
 
233
				$prenom = self::formaterMotPremiereLettreChaqueMotEnMajuscule($utilisateur['prenom']);
231
				}
234
				$nom = self::formaterMotEnMajuscule($utilisateur['nom']);
232
				$sous_requete_insertion .= '('.$this->proteger($utilisateur['id']).','.
235
				$sous_requete[] = '('.$this->proteger($utilisateur['id']).','.
233
												$this->proteger($utilisateur['prenom']).','.
236
					$this->proteger($prenom).','.
234
												$this->proteger($utilisateur['nom']).','.
237
					$this->proteger($nom).','.
235
												$this->proteger($utilisateur['mail']).','.
238
					$this->proteger($utilisateur['mail']).','.
236
												$this->proteger($utilisateur['pass']).'),';
239
					$this->proteger($utilisateur['pass']).')';
237
				unset($tabUtilisateurs[$id]);
-
 
238
				
240
				unset($tabUtilisateurs[$id]);
239
			}
-
 
240
			
241
			}
241
			$sous_requete_insertion = rtrim($sous_requete_insertion,',');
-
 
242
			$requete_insertion_utilisateurs = $requete_insertion_utilisateurs.$sous_requete_insertion;
-
 
243
			
242
			$requete = $requete.implode(',', $sous_requete);
244
			$migration_utilisateurs = $this->executerRequeteSimple($requete_insertion_utilisateurs);
243
			$migration_utilisateurs = $this->executerRequeteSimple($requete);
245
			
244
 
246
			if ($migration_utilisateurs) {
245
			if ($migration_utilisateurs) {
247
				$nbTotal ++;	
246
				$nbTotal ++;
248
				$this->afficherAvancement('Migration utilisateurs (par '.$pas.')', $nbTotal);
247
				$this->afficherAvancement('Migration utilisateurs (par '.$pas.')', $nbTotal);
249
			} else {
248
			} else {
250
				exit('Erreur lors de la migration des utilisateurs '."\n");
249
				exit('Erreur lors de la migration des utilisateurs '."\n");
251
			}
250
			}
252
		}
251
		}
253
		echo "\n---------------------------------------------------------------- OK\n\n";
252
		echo "\n---------------------------------------------------------------- OK\n\n";
254
		
253
 
255
	}
254
	}
256
	
255
 
257
	private function migrerZonesGeo() {
256
	private function migrerZonesGeo() {
258
		
257
 
259
		$pas = 5000;
258
		$pas = 5000;
260
		
259
 
261
		//SELECTIONNER LE NOMBRE DE ZONE GEO
260
		//SELECTIONNER LE NOMBRE DE ZONE GEO
262
		$requete_nombreZonesGeo = 'SELECT count(*) as nb FROM locations';
261
		$requete_nombreZonesGeo = 'SELECT count(*) as nb FROM locations';
263
		$resultatNbZonesGeo = $this->executerRequete($requete_nombreZonesGeo);
262
		$resultatNbZonesGeo = $this->executerRequete($requete_nombreZonesGeo);
264
		$nbZones = (int) $resultatNbZonesGeo[0]['nb'];
263
		$nbZones = (int) $resultatNbZonesGeo[0]['nb'];
265
		
264
 
266
		$nbTotal = 0;
265
		$nbTotal = 0;
267
		for($i = 0; $i <= $nbZones ; $i += $pas) {
266
		for($i = 0; $i <= $nbZones ; $i += $pas) {
268
			
267
 
269
			$requete_selection_zones_geo = 'SELECT * FROM locations LIMIT '.$i.', '.$pas;
268
			$requete_selection_zones_geo = 'SELECT * FROM locations LIMIT '.$i.', '.$pas;
270
											
269
 
271
			$zones_geo = $this->executerRequete($requete_selection_zones_geo);
270
			$zones_geo = $this->executerRequete($requete_selection_zones_geo);
272
			
271
 
273
			$requete_insertion_nouvelles_zones_geo = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_zones_geo '.
272
			$requete_insertion_nouvelles_zones_geo = 'INSERT INTO '.self::$bdd_cel_migration.'.cel_zones_geo '.
274
					'(id_zone_geo, code, nom, utm_secteur, utm_x, utm_y, wgs84_latitude, wgs84_longitude, date_modification) '.
273
					'(id_zone_geo, code, nom, utm_secteur, utm_x, utm_y, wgs84_latitude, wgs84_longitude, date_modification) '.
275
					'VALUES ';
274
					'VALUES ';
276
					
275
 
277
			$sous_requete_insertion_valeurs = '';
276
			$sous_requete_insertion_valeurs = '';
278
			
277
 
279
			if(count($zones_geo) > 0) {			
278
			if(count($zones_geo) > 0) {
280
				foreach($zones_geo as $zone_geo) {
279
				foreach($zones_geo as $zone_geo) {
281
					
280
 
282
					$zone_geo['nouveau_code_geo'] = 'INSEE-C:'.$zone_geo['insee_code'];
281
					$zone_geo['nouveau_code_geo'] = 'INSEE-C:'.$zone_geo['insee_code'];
283
					$lat_long = $this->convertirUtmVersLatLong($zone_geo['x_utm'],$zone_geo['y_utm'],$zone_geo['sector']);
282
					$lat_long = $this->convertirUtmVersLatLong($zone_geo['x_utm'],$zone_geo['y_utm'],$zone_geo['sector']);
284
					
283
 
285
					$indice_tableau_localites = $this->construireIndiceTableauLocalites($zone_geo['name'], $zone_geo['insee_code']);
284
					$indice_tableau_localites = $this->construireIndiceTableauLocalites($zone_geo['name'], $zone_geo['insee_code']);
286
					$this->tableau_zones_geo[$indice_tableau_localites] = $zone_geo;
285
					$this->tableau_zones_geo[$indice_tableau_localites] = $zone_geo;
287
					
286
 
288
					$sous_requete_insertion_valeurs .= '('.$this->proteger($zone_geo['nouveau_code_geo']).','.
287
					$sous_requete_insertion_valeurs .= '('.$this->proteger($zone_geo['nouveau_code_geo']).','.
289
														$this->proteger($zone_geo['insee_code']).','.
288
														$this->proteger($zone_geo['insee_code']).','.
290
														$this->proteger($zone_geo['name']).','.
289
														$this->proteger($zone_geo['name']).','.
291
														$this->proteger($zone_geo['sector']).','.
290
														$this->proteger($zone_geo['sector']).','.
Line 294... Line 293...
294
														$this->proteger($lat_long['lat']).','.
293
														$this->proteger($lat_long['lat']).','.
295
														$this->proteger($lat_long['long']).','.
294
														$this->proteger($lat_long['long']).','.
296
														$this->proteger($zone_geo['update_date']).
295
														$this->proteger($zone_geo['update_date']).
297
														'),';
296
														'),';
298
				}
297
				}
299
			
298
 
300
				$sous_requete_insertion_valeurs = rtrim($sous_requete_insertion_valeurs,',');
299
				$sous_requete_insertion_valeurs = rtrim($sous_requete_insertion_valeurs,',');
301
			
300
 
302
				$requete_insertion_nouvelles_zones_geo .= $sous_requete_insertion_valeurs;
301
				$requete_insertion_nouvelles_zones_geo .= $sous_requete_insertion_valeurs;
303
			
302
 
304
				$migration_zones_geo = $this->executerRequeteSimple($requete_insertion_nouvelles_zones_geo);
303
				$migration_zones_geo = $this->executerRequeteSimple($requete_insertion_nouvelles_zones_geo);
305
			} else {
304
			} else {
306
				echo 'Fin de migration des zones géo '."\n";
305
				echo 'Fin de migration des zones géo '."\n";
307
				return;	
306
				return;
308
			}
307
			}
309
			
308
 
310
			if ($migration_zones_geo) {
309
			if ($migration_zones_geo) {
311
				$nbTotal ++;	
310
				$nbTotal ++;
312
				$this->afficherAvancement('Migration des zones (par '.$pas.')', $nbTotal);
311
				$this->afficherAvancement('Migration des zones (par '.$pas.')', $nbTotal);
313
			} else {
312
			} else {
314
				exit('Erreur lors de la migration des zones géo '.$i.' à '.($i+$pas)."\n");
313
				exit('Erreur lors de la migration des zones géo '.$i.' à '.($i+$pas)."\n");
315
			}
314
			}
316
		}
315
		}
317
		echo "\n---------------------------------------------------------------- OK\n\n";
316
		echo "\n---------------------------------------------------------------- OK\n\n";
318
	}
317
	}
319
	
318
 
320
	private function convertirUtmVersLatLong($x, $y, $sector) {
319
	private function convertirUtmVersLatLong($x, $y, $sector) {
321
    	
320
 
322
    	$lat_long = array();
321
    	$lat_long = array();
323
    	
322
 
324
    	$convertisseur = new gPoint();
323
    	$convertisseur = new gPoint();
325
		$convertisseur->setUTM($x, $y, $sector);
324
		$convertisseur->setUTM($x, $y, $sector);
326
		$convertisseur->convertTMtoLL();
325
		$convertisseur->convertTMtoLL();
327
		$lat_long['lat'] = str_replace(',','.',$convertisseur->Lat());
326
		$lat_long['lat'] = str_replace(',','.',$convertisseur->Lat());
328
		$lat_long['long'] = str_replace(',','.',$convertisseur->Long());
327
		$lat_long['long'] = str_replace(',','.',$convertisseur->Long());
329
		
328
 
330
		return $lat_long;
329
		return $lat_long;
331
    }
330
    }
332
	
331
 
333
	private function migrerObs() {
332
	private function migrerObs() {
334
		
333
 
335
		$debut = 0;
334
		$debut = 0;
336
		$pas = 1000;
335
		$pas = 1000;
337
		$nbTotal = 0;
336
		$nbTotal = 0;
338
		
337
 
339
		//Selectionner le nombre d'observations
338
		//Selectionner le nombre d'observations
340
		$requeteNbObs = "SELECT COUNT(*) as nb FROM cel_inventory";
339
		$requeteNbObs = "SELECT COUNT(*) as nb FROM cel_inventory";
341
		$resultatNbObs = $this->executerRequete($requeteNbObs);
340
		$resultatNbObs = $this->executerRequete($requeteNbObs);
342
		$fin = $resultatNbObs[0]['nb'];
341
		$fin = $resultatNbObs[0]['nb'];
343
		
342
 
344
		for ($i = $debut; $i < $fin ; $i += $pas) {
343
		for ($i = $debut; $i < $fin ; $i += $pas) {
345
			$requete_selection_obs = 'SELECT * FROM cel_inventory '.
344
			$requete_selection_obs = 'SELECT * FROM cel_inventory '.
346
											'ORDER BY identifiant LIMIT '.$i.','.$pas;
345
											'ORDER BY identifiant LIMIT '.$i.','.$pas;
347
			$observations = $this->requeter($requete_selection_obs);
346
			$observations = $this->requeter($requete_selection_obs);
348
			
347
 
349
			$requete_insertion_observations = 'INSERT IGNORE INTO '.self::$bdd_cel_migration.'.cel_obs (';
348
			$requete_insertion_observations = 'INSERT IGNORE INTO '.self::$bdd_cel_migration.'.cel_obs (';
350
			
349
 
351
			foreach ($this->tableau_nouveau_ancien as $nouveau_champ => $ancien_champ) {
350
			foreach ($this->tableau_nouveau_ancien as $nouveau_champ => $ancien_champ) {
352
				$requete_insertion_observations .= $nouveau_champ.',';
351
				$requete_insertion_observations .= $nouveau_champ.',';
353
			}	
352
			}
354
				
353
 
355
			$requete_insertion_observations = rtrim($requete_insertion_observations, ',');
354
			$requete_insertion_observations = rtrim($requete_insertion_observations, ',');
356
			$requete_insertion_observations = $requete_insertion_observations.') VALUES ';
355
			$requete_insertion_observations = $requete_insertion_observations.') VALUES ';
357
			
356
 
358
			if (count($observations) > 0) { 
357
			if (count($observations) > 0) {
359
				foreach($observations as $observation) {
358
				foreach($observations as $observation) {
360
					$nouvelle_observation = $this->traiterLigneObservation($observation);
359
					$nouvelle_observation = $this->traiterLigneObservation($observation);
361
					
360
 
362
					$nouvelle_observation = array_map(array($this,'protegerSiNonNull'),$nouvelle_observation);
361
					$nouvelle_observation = array_map(array($this,'protegerSiNonNull'),$nouvelle_observation);
363
					$requete_insertion_observations .= '('.join(',',array_values($nouvelle_observation)).'),';
362
					$requete_insertion_observations .= '('.join(',',array_values($nouvelle_observation)).'),';
364
				}
363
				}
365
				
364
 
366
				$requete_insertion_observations = rtrim($requete_insertion_observations, ',');
365
				$requete_insertion_observations = rtrim($requete_insertion_observations, ',');
367
				
366
 
368
				$migration_observations = $this->executerRequeteSimple($requete_insertion_observations);
367
				$migration_observations = $this->executerRequeteSimple($requete_insertion_observations);
369
			} else {
368
			} else {
370
				echo 'Fin de migration des observations '."\n"."\n";
369
				echo 'Fin de migration des observations '."\n"."\n";
371
				return;	
370
				return;
372
			}
371
			}
373
			
372
 
374
			if ($migration_observations) {
373
			if ($migration_observations) {
375
				$nbTotal ++;	
374
				$nbTotal ++;
376
				$this->afficherAvancement('Migration des observations (par '.$pas.')', $nbTotal);
375
				$this->afficherAvancement('Migration des observations (par '.$pas.')', $nbTotal);
377
			} else {
376
			} else {
378
				exit('Erreur lors de la migration des observation de '.$i.' à '.($i+$pas)."\n");
377
				exit('Erreur lors de la migration des observation de '.$i.' à '.($i+$pas)."\n");
379
			}
378
			}
380
		}
379
		}
381
		if (sizeof($this->communesOubliees) > 0) {
380
		if (sizeof($this->communesOubliees) > 0) {
382
			echo "\nxxxxxxxxx communes oubliées : ".sizeof($this->communesOubliees)." xxxxxxxxx \\n";
381
			echo "\nxxxxxxxxx communes oubliées : ".sizeof($this->communesOubliees)." xxxxxxxxx \\n";
383
		}
382
		}
384
		echo "\n---------------------------------------------------------------- OK\n\n";
383
		echo "\n---------------------------------------------------------------- OK\n\n";
385
	}
384
	}
386
	
385
 
-
 
386
	private function ordonnerObs() {
-
 
387
		$requete = 'ALTER TABLE cel_obs ORDER BY id_observation';
-
 
388
		$this->executerRequeteSimple($requete);
-
 
389
	}
-
 
390
 
387
	private function traiterLigneObservation($obs) {
391
	private function traiterLigneObservation($obs) {
388
		
392
 
389
		$nouvelle_obs = array();
393
		$nouvelle_obs = array();
390
		
394
 
391
		foreach($this->tableau_nouveau_ancien as $nouveau_champ_obs => $ancien_champ_obs) { 
395
		foreach($this->tableau_nouveau_ancien as $nouveau_champ_obs => $ancien_champ_obs) {
392
			
396
 
393
			if ($this->estUnChampATraiter($ancien_champ_obs)) {
397
			if ($this->estUnChampATraiter($ancien_champ_obs)) {
394
				if (method_exists($this,$ancien_champ_obs)) {
398
				if (method_exists($this,$ancien_champ_obs)) {
395
					$nouvelle_obs[$nouveau_champ_obs] = $this->$ancien_champ_obs($obs);
399
					$nouvelle_obs[$nouveau_champ_obs] = $this->$ancien_champ_obs($obs);
396
				} else {
400
				} else {
397
					$nouvelle_obs[$nouveau_champ_obs] = '';
401
					$nouvelle_obs[$nouveau_champ_obs] = '';
Line 399... Line 403...
399
 
403
 
400
			} else {
404
			} else {
401
				if($obs[$ancien_champ_obs] == '000null' || $obs[$ancien_champ_obs] == 'null' || trim($obs[$ancien_champ_obs]) == '') {
405
				if($obs[$ancien_champ_obs] == '000null' || $obs[$ancien_champ_obs] == 'null' || trim($obs[$ancien_champ_obs]) == '') {
402
					$obs[$ancien_champ_obs] = 'NULL';
406
					$obs[$ancien_champ_obs] = 'NULL';
403
				}
407
				}
404
				
408
 
405
				if(($ancien_champ_obs == 'coord_x' || $ancien_champ_obs == 'coord_y') && ($obs[$ancien_champ_obs] == '0' || $obs[$ancien_champ_obs] == 0)) {
409
				if(($ancien_champ_obs == 'coord_x' || $ancien_champ_obs == 'coord_y') && ($obs[$ancien_champ_obs] == '0' || $obs[$ancien_champ_obs] == 0)) {
406
					$obs[$ancien_champ_obs] = 'NULL';
410
					$obs[$ancien_champ_obs] = 'NULL';
407
				}
411
				}
408
				
412
 
409
				$nouvelle_obs[$nouveau_champ_obs] = $obs[$ancien_champ_obs];
413
				$nouvelle_obs[$nouveau_champ_obs] = $obs[$ancien_champ_obs];
410
			}
414
			}
411
		}
415
		}
412
		return $nouvelle_obs;
416
		return $nouvelle_obs;
413
	}
417
	}
414
	
418
 
415
	private function protegerSiNonNull($valeur) {
419
	private function protegerSiNonNull($valeur) {
416
		if($valeur != 'NULL') {
420
		if($valeur != 'NULL') {
417
			$valeur = $this->proteger($valeur);
421
			$valeur = $this->proteger($valeur);
418
		}
422
		}
419
		return $valeur;
423
		return $valeur;
420
	}
424
	}
421
	
425
 
422
	private function estUnChampATraiter($champ) {
426
	private function estUnChampATraiter($champ) {
423
		return strpos($champ,'traiter') !== false;
427
		return strpos($champ,'traiter') !== false;
424
	}
428
	}
425
	
429
 
426
	private function traiterReferentiel($observation) {
430
	private function traiterReferentiel($observation) {
427
		return 'bdtfx_v1';
431
		return 'bdnff:4.02';
428
	}
432
	}
429
	
433
 
430
	private function traiterMotsClesTexte($ligne_observation) {
434
	private function traiterMotsClesTexte($ligne_observation) {
431
		
435
 
432
		$mail_observation = $ligne_observation['identifiant'];
436
		$mail_observation = $ligne_observation['identifiant'];
433
		$retour = $ligne_observation['mots_cles'];		
437
		$retour = $ligne_observation['mots_cles'];
434
		if (isset($this->tableau_mots_cles[$mail_observation])) {
438
		if (isset($this->tableau_mots_cles[$mail_observation])) {
435
			$mots_cles_tableau = $this->parserMotsCles($mail_observation, $ligne_observation['mots_cles'], ';');
439
			$mots_cles_tableau = $this->parserMotsCles($mail_observation, $ligne_observation['mots_cles'], ';');
436
			$retour =  join(',',$mots_cles_tableau);
440
			$retour =  join(',',$mots_cles_tableau);
437
			$retour = ltrim($retour,',,') ;
441
			$retour = ltrim($retour,',,') ;
438
		}
442
		}
439
		
443
 
440
		return $retour;
444
		return $retour;
441
	} 
445
	}
442
	
446
 
443
	private function parserMotsCles($utilisateur, $mot_cles, $separateur = ',') {
447
	private function parserMotsCles($utilisateur, $mot_cles, $separateur = ',') {
444
		
448
 
445
		$tableau_mots_cles = explode($separateur,$mot_cles);
449
		$tableau_mots_cles = explode($separateur,$mot_cles);
446
		$tableau_mots_cles_formates = array();
450
		$tableau_mots_cles_formates = array();
447
		
451
 
448
		foreach($tableau_mots_cles as $mot_cle) {
452
		foreach($tableau_mots_cles as $mot_cle) {
449
			
453
 
450
			$mot_cle = str_replace($separateur.$separateur,'',$mot_cle);
454
			$mot_cle = str_replace($separateur.$separateur,'',$mot_cle);
451
			$mot_cle = str_replace('null','',$mot_cle);
455
			$mot_cle = str_replace('null','',$mot_cle);
452
			
456
 
453
			if ($this->estUnIdentifiantMotCle($mot_cle)) {
457
			if ($this->estUnIdentifiantMotCle($mot_cle)) {
454
				
458
 
455
				// certains mots clés mal formatés contiennent des virgules
459
				// certains mots clés mal formatés contiennent des virgules
456
				if (strpos($mot_cle,',') !== false) {
460
				if (strpos($mot_cle,',') !== false) {
457
					$tab_mot_cle_mal_formate = explode(',',$mot_cle);
461
					$tab_mot_cle_mal_formate = explode(',',$mot_cle);
458
					
462
 
459
					foreach ($tab_mot_cle_mal_formate as $mot_cle_mal_formate) {
463
					foreach ($tab_mot_cle_mal_formate as $mot_cle_mal_formate) {
460
						if ($this->estUnIdentifiantMotCle($mot_cle_mal_formate)) {
464
						if ($this->estUnIdentifiantMotCle($mot_cle_mal_formate)) {
461
							$tableau_mots_cles_formates[$mot_cle_mal_formate] = $this->tableau_mots_cles[$utilisateur][$mot_cle_mal_formate]['mot_cle'];
465
							$tableau_mots_cles_formates[$mot_cle_mal_formate] = $this->tableau_mots_cles[$utilisateur][$mot_cle_mal_formate]['mot_cle'];
462
						}
466
						}
463
					}	
467
					}
464
				} else {
468
				} else {
465
					// on met le mot clé dans sa propre case afin d'éviter
469
					// on met le mot clé dans sa propre case afin d'éviter
466
					// facilement les doublons provoqués par de mauvais formatages 
470
					// facilement les doublons provoqués par de mauvais formatages
467
					if (isset($this->tableau_mots_cles[$utilisateur][$mot_cle]) && trim($this->tableau_mots_cles[$utilisateur][$mot_cle]['mot_cle']) != '') { 
471
					if (isset($this->tableau_mots_cles[$utilisateur][$mot_cle]) && trim($this->tableau_mots_cles[$utilisateur][$mot_cle]['mot_cle']) != '') {
468
						$tableau_mots_cles_formates[$mot_cle] = $this->tableau_mots_cles[$utilisateur][$mot_cle]['mot_cle'];
472
						$tableau_mots_cles_formates[$mot_cle] = $this->tableau_mots_cles[$utilisateur][$mot_cle]['mot_cle'];
469
					}
473
					}
Line 470... Line 474...
470
				}
474
				}
471
 
475
 
472
			}
476
			}
473
		}
477
		}
474
		
478
 
475
		return $tableau_mots_cles_formates;
479
		return $tableau_mots_cles_formates;
476
	}
480
	}
477
	
481
 
478
	private function estUnIdentifiantMotCle($chaine) {
482
	private function estUnIdentifiantMotCle($chaine) {
479
		return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine) ;
483
		return trim($chaine) != '' && preg_match('/[0-9A-Z]+\.[0-9A-Z]+/i', $chaine) ;
480
	}
484
	}
481
	
485
 
482
	private function traiterIdentifiantUtilisateur($ligne_observation) {
486
	private function traiterIdentifiantUtilisateur($ligne_observation) {
483
		$mail_observation = $ligne_observation['identifiant'];
487
		$mail_observation = $ligne_observation['identifiant'];
484
		$retour = $this->renvoyerIdPourMigration($mail_observation);
488
		$retour = $this->renvoyerIdPourMigration($mail_observation);
485
		return $retour;
489
		return $retour;
486
	}
490
	}
487
	
-
 
488
	private function traiterPrenomUtilisateur($ligne_observation) {
491
 
-
 
492
	private function traiterPrenomUtilisateur($ligne_observation) {
489
		
493
		$mail_observation = $ligne_observation['identifiant'];
490
		$mail_observation = $ligne_observation['identifiant'];
494
 
491
		$retour = $mail_observation;
495
		$retour = '';
492
		if (isset($this->tableau_utilisateurs[$mail_observation])) {
-
 
493
			$retour =  $this->tableau_utilisateurs[$mail_observation]['prenom'];
496
		if (isset($this->tableau_utilisateurs[$mail_observation])) {
494
		} else {
497
			$prenom =  $this->tableau_utilisateurs[$mail_observation]['prenom'];
495
			$retour = '';
-
 
496
		}
498
			$retour = self::formaterMotPremiereLettreChaqueMotEnMajuscule($prenom);
497
		
499
		}
498
		return $retour;
500
		return $retour;
499
	}
501
	}
500
	
-
 
501
	private function traiterNomUtilisateur($ligne_observation) {
502
 
502
		
-
 
503
		$mail_observation = $ligne_observation['identifiant'];
503
	private function traiterNomUtilisateur($ligne_observation) {
-
 
504
		$mail_observation = $ligne_observation['identifiant'];
504
		$retour = $mail_observation;
505
 
505
		
506
		$retour = '';
506
		if (isset($this->tableau_utilisateurs[$mail_observation])) {
-
 
507
			$retour =  $this->tableau_utilisateurs[$mail_observation]['nom'];
507
		if (isset($this->tableau_utilisateurs[$mail_observation])) {
508
		} else {
508
			$nom =  $this->tableau_utilisateurs[$mail_observation]['nom'];
509
			$retour = '';
-
 
510
		}
509
			$retour = self::formaterMotEnMajuscule($nom);
511
		
510
		}
512
		return $retour;
511
		return $retour;
-
 
512
	}
-
 
513
 
-
 
514
	public static function formaterMotPremiereLettreChaqueMotEnMajuscule($chaine, $encodage= 'UTF-8') {
-
 
515
		$chaine = str_replace('-', ' - ', $chaine);
-
 
516
		$chaine = mb_strtolower($chaine, $encodage);
-
 
517
		$chaine = mb_convert_case($chaine, MB_CASE_TITLE, $encodage);
-
 
518
		$chaine = str_replace(' - ', '-', $chaine);
-
 
519
		return $chaine;
-
 
520
	}
-
 
521
 
-
 
522
	public static function formaterMotEnMajuscule($chaine, $encodage= 'UTF-8') {
-
 
523
		return mb_convert_case($chaine, MB_CASE_UPPER, $encodage);
513
	}
524
	}
514
	
525
 
515
	private function traiterZoneGeo($ligne_observation) {
526
	private function traiterZoneGeo($ligne_observation) {
516
		
527
 
517
		$zone_geo = $ligne_observation['location'];
528
		$zone_geo = $ligne_observation['location'];
518
		
529
 
519
		if($ligne_observation['id_location'] != null && !is_numeric($ligne_observation['id_location']) && $ligne_observation['id_location'] != '000null') { 
530
		if ($ligne_observation['id_location'] != null && !is_numeric($ligne_observation['id_location']) && $ligne_observation['id_location'] != '000null') {
520
			$id_zone_geo_ancienne = $ligne_observation['id_location'];
531
			$id_zone_geo_ancienne = $ligne_observation['id_location'];
521
			if($zone_geo != '') {
532
			if ($zone_geo != '') {
522
				$id_zone_geo_ancienne = '('.$id_zone_geo_ancienne.')';
533
				$id_zone_geo_ancienne = '('.$id_zone_geo_ancienne.')';
523
			}
534
			}
524
			
535
 
525
			$zone_geo .= $id_zone_geo_ancienne;
536
			$zone_geo .= $id_zone_geo_ancienne;
526
		} elseif($ligne_observation['location'] == null || $ligne_observation['location'] == "" || $ligne_observation['location'] == "000null") {
537
		} else if ($ligne_observation['location'] == null || $ligne_observation['location'] == "" || $ligne_observation['location'] == "000null") {
527
			
538
 
528
			if($ligne_observation['id_location'] != '' && $ligne_observation['id_location'] != '000null') {
539
			if ($ligne_observation['id_location'] != '' && $ligne_observation['id_location'] != '000null') {
529
				$id_zone_geo_ancienne = $ligne_observation['id_location'];
540
				$id_zone_geo_ancienne = $ligne_observation['id_location'];
530
				$id_zone_geo_ancienne = $id_zone_geo_ancienne;
541
				$id_zone_geo_ancienne = $id_zone_geo_ancienne;
531
				$zone_geo = $id_zone_geo_ancienne;
542
				$zone_geo = $id_zone_geo_ancienne;
532
			} else {
543
			} else {
533
				$zones_geo = 'NULL';
544
				$zones_geo = 'NULL';
534
			}
545
			}
535
		}
546
		}
536
		
547
 
537
		return $zone_geo;
548
		return $zone_geo;
538
	}
549
	}
539
	
550
 
540
	private function traiterIdentifiantZoneGeo($ligne_observation) {
551
	private function traiterIdentifiantZoneGeo($ligne_observation) {
541
		$id_zone_geo = '';
552
		$id_zone_geo = '';
542
		
553
 
543
		if($ligne_observation['id_location'] != '' && $ligne_observation['id_location'] != '000null') { 
554
		if ($ligne_observation['id_location'] != '' && $ligne_observation['id_location'] != '000null') {
544
			$indice = $this->construireIndiceTableauLocalites($ligne_observation['location'], $ligne_observation['id_location']);
555
			$indice = $this->construireIndiceTableauLocalites($ligne_observation['location'], $ligne_observation['id_location']);
545
			if(isset($this->tableau_zones_geo[$indice])) {
556
			if (isset($this->tableau_zones_geo[$indice])) {
546
				$id_zone_geo = $this->tableau_zones_geo[$indice]['nouveau_code_geo'];
557
				$id_zone_geo = $this->tableau_zones_geo[$indice]['nouveau_code_geo'];
547
			} else {
558
			} else {
548
				if($ligne_observation['location'] != "000null") { 
559
				if ($ligne_observation['location'] != "000null") {
549
					$this->communesOubliees[$indice] = false;
560
					$this->communesOubliees[$indice] = false;
550
				}
561
				}
551
			}
562
			}
552
		} else {
563
		} else {
553
			$id_zone_geo = 'NULL';
564
			$id_zone_geo = 'NULL';
554
		}
565
		}
555
		
566
 
556
		return $id_zone_geo;
567
		return $id_zone_geo;
557
	}
568
	}
558
	
569
 
559
	private function construireIndiceTableauLocalites($nom, $id) {
570
	private function construireIndiceTableauLocalites($nom, $id) {
560
		
571
 
561
		$nom = htmlentities($nom, ENT_NOQUOTES, 'UTF-8');
572
		$nom = htmlentities($nom, ENT_NOQUOTES, 'UTF-8');
562
    
573
 
563
    	$nom = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $nom);
574
    	$nom = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $nom);
564
    	$nom = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $nom); // pour les ligatures e.g. '&oelig;'
575
    	$nom = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $nom); // pour les ligatures e.g. '&oelig;'
565
    	$nom = preg_replace('#&[^;]+;#', '', $nom); // supprime les autres caractères
576
    	$nom = preg_replace('#&[^;]+;#', '', $nom); // supprime les autres caractères
566
    	
577
 
567
    	$nom = str_replace("'",'_',$nom);
578
    	$nom = str_replace("'",'_',$nom);
568
		$nom = str_replace(' ','_',$nom);
579
		$nom = str_replace(' ','_',$nom);
569
		$nom = str_replace('-','_',$nom);
580
		$nom = str_replace('-','_',$nom);
570
		$nom = str_replace('  ','_',$nom);
581
		$nom = str_replace('  ','_',$nom);
571
		$indice = strtolower($nom).substr($id,0,2);
582
		$indice = strtolower($nom).substr($id,0,2);
572
		
583
 
573
		return $indice;
584
		return $indice;
-
 
585
	}
574
	} 
586
 
575
	
-
 
576
	private function renvoyerIdPourMigration($utilisateur) {
-
 
577
		// si tout les test suivant échouent, on garde l'utilisateur tel quel
587
	// Par défaut, on garde l'utilisateur tel quel (cas de la chaine de session des utilisateur anonymes)
578
		// (cas de la chaine de session des utilisateur anonymes)
588
	private function renvoyerIdPourMigration($utilisateur) {
579
		$retour = $utilisateur;
589
		$retour = $utilisateur;
580
		// si le mail correspond a un utilisateur de la bdd
590
		// si le mail correspond a un utilisateur de la bdd
581
		if (isset($this->tableau_utilisateurs[$utilisateur])) {
591
		if (isset($this->tableau_utilisateurs[$utilisateur])) {
582
		// on renvoie son id
592
			// on renvoie son id
583
			$retour =  $this->tableau_utilisateurs[$utilisateur]['id'];
593
			$retour = $this->tableau_utilisateurs[$utilisateur]['id'];
584
			} else {
594
		} else if ($utilisateur != '') {
585
		// sinon si c'est un mail inconnu, on garde le md5
595
			// sinon si c'est un mail inconnu, on garde le md5
586
			if($this->mailValide($utilisateur)) {
596
			if ($this->mailValide($utilisateur)) {
587
		$retour = md5($utilisateur);
597
				$retour = md5($utilisateur);
588
		}
-
 
589
		}
598
			}
590
	
599
		}
591
		return $retour;
600
		return $retour;
592
	}
601
	}
593
	
602
 
594
	public function mailValide($mail) {
603
	public function mailValide($mail) {
595
		// vérification bidon mais ça suffit pour ici
604
		// vérification bidon mais ça suffit pour ici
596
		return !(strpos('@',$mail) === false); 
605
		return !(strpos('@', $mail) === false);
597
	}
606
	}