Subversion Repositories Applications.annuaire

Rev

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

Rev 120 Rev 139
1
<?php
1
<?php
2
/**
2
/**
3
* PHP Version 5
3
* PHP Version 5
4
*
4
*
5
* @category  PHP
5
* @category  PHP
6
* @package   annuaire
6
* @package   annuaire
7
* @author    aurelien <aurelien@tela-botanica.org>
7
* @author    aurelien <aurelien@tela-botanica.org>
8
* @copyright 2010 Tela-Botanica
8
* @copyright 2010 Tela-Botanica
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @version   SVN: <svn_id>
10
* @version   SVN: <svn_id>
11
* @link      /doc/annuaire/
11
* @link      /doc/annuaire/
12
*
12
*
13
*/
13
*/
14
 
14
 
15
/**
15
/**
16
 * Controleur chargé de la vérification des formulaires
16
 * Controleur chargé de la vérification des formulaires
17
 * Remplace aussi les valeurs lors des actions spéciales comme la modification du mail
17
 * Remplace aussi les valeurs lors des actions spéciales comme la modification du mail
18
 * (l'inscription à la lettre d'actu se fait aussi ici même si ça n'est pas totalement sa place)
18
 * (l'inscription à la lettre d'actu se fait aussi ici même si ça n'est pas totalement sa place)
19
 */
19
 */
20
class VerificationControleur extends AppControleur {
20
class VerificationControleur extends AppControleur {
21
 
21
 
22
	/**
22
	/**
23
	 * Vérifie que les valeurs des champs de mappage et les valeurs obligatoires d'un annuaire donné
23
	 * Vérifie que les valeurs des champs de mappage et les valeurs obligatoires d'un annuaire donné
24
	 * sont correctes
24
	 * sont correctes
25
	 * @param int $id_annuaire l'identifiant de l'annuaire
25
	 * @param int $id_annuaire l'identifiant de l'annuaire
26
	 * @param Array $valeurs les valeurs à vérifier
26
	 * @param Array $valeurs les valeurs à vérifier
27
	 */
27
	 */
28
	public function verifierErreursChampsSelonType($id_annuaire, $valeurs, $tableau_mappage) {
28
	public function verifierErreursChampsSelonType($id_annuaire, $valeurs, $tableau_mappage) {
29
 
29
 
30
		$erreurs = array();
30
		$erreurs = array();
31
 
31
 
32
		$this->chargerModele('AnnuaireModele');
32
		$this->chargerModele('AnnuaireModele');
33
		$tableau_champs_obligatoire = $this->AnnuaireModele->obtenirChampsObligatoires($id_annuaire);
33
		$tableau_champs_obligatoire = $this->AnnuaireModele->obtenirChampsObligatoires($id_annuaire);
34
 
34
 
35
		foreach($valeurs as $id => $valeur_champ) {
35
		foreach($valeurs as $id => $valeur_champ) {
36
 
36
 
37
			$type = $valeur_champ['type'];
37
			$type = $valeur_champ['type'];
38
			$valeur = $valeur_champ['valeur'];
38
			$valeur = $valeur_champ['valeur'];
39
			$condition = $valeur_champ['condition'];
39
			$condition = $valeur_champ['condition'];
40
 
40
 
41
			switch($type) {
41
			switch($type) {
42
 
42
 
43
				case 'text':
43
				case 'text':
44
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($valeur) == '') {
44
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($valeur) == '') {
45
						$erreurs[$id] = 'Ce champ est obligatoire';
45
						$erreurs[$id] = 'Ce champ est obligatoire';
46
					}
46
					}
47
				break;
47
				break;
48
 
48
 
49
				case 'mail':
49
				case 'mail':
50
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($valeur) == '') {
50
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($valeur) == '') {
51
						$erreurs[$id] = 'Le mail est obligatoire ';
51
						$erreurs[$id] = 'Le mail est obligatoire ';
52
					}
52
					}
53
 
53
 
54
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && !$this->mailValide($valeur)) {
54
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && !$this->mailValide($valeur)) {
55
						$erreurs[$id] = 'Le mail est invalide ';
55
						$erreurs[$id] = 'Le mail est invalide ';
56
					}
56
					}
57
 
57
 
58
					if($this->AnnuaireModele->utilisateurExisteParMail($id_annuaire, $valeur)) {
58
					if($this->AnnuaireModele->utilisateurExisteParMail($id_annuaire, $valeur)) {
59
						$erreurs[$id] = 'Cet email est déjà utilisé par quelqu\'un d\'autre ';
59
						$erreurs[$id] = 'Cet email est déjà utilisé par quelqu\'un d\'autre ';
60
					}
60
					}
61
				break;
61
				break;
62
 
62
 
63
				case 'password':
63
				case 'password':
64
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($valeur) == ''
64
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($valeur) == ''
65
					|| $valeur != $condition) {
65
					|| $valeur != $condition) {
66
						$erreurs[$id] = 'Le mot de passe est invalide';
66
						$erreurs[$id] = 'Le mot de passe est invalide';
67
					}
67
					}
68
				break;
68
				break;
69
 
69
 
70
				// cas du champ checkbox
70
				// cas du champ checkbox
71
				case 'checkbox':
71
				case 'checkbox':
72
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($condition) != 'on') {
72
					if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($condition) != 'on') {
73
						$erreurs[$id] = 'N\'oubliez pas de cocher cette case';
73
						$erreurs[$id] = 'N\'oubliez pas de cocher cette case';
74
					}
74
					}
75
				break;
75
				break;
76
 
76
 
77
				default:
77
				default:
78
 
78
 
79
				break;
79
				break;
80
			}
80
			}
81
		}
81
		}
82
 
82
 
83
		if(count($erreurs) == 0) {
83
		if(count($erreurs) == 0) {
84
			$erreurs = false;
84
			$erreurs = false;
85
		}
85
		}
86
 
86
 
87
		return $erreurs;
87
		return $erreurs;
88
	}
88
	}
89
 
89
 
90
	/**
90
	/**
91
	 * Vérifie les valeurs des champs pour la modification d'un formulaire
91
	 * Vérifie les valeurs des champs pour la modification d'un formulaire
92
	 */
92
	 */
93
	public function verifierErreurChampModification($id_annuaire, $id_utilisateur, $type ,$valeur, $confirmation = false) {
93
	public function verifierErreurChampModification($id_annuaire, $id_utilisateur, $type ,$valeur, $confirmation = false) {
94
 
94
 
95
		$retour = array(true,false);
95
		$retour = array(true,false);
96
 
96
 
97
		switch($type) {
97
		switch($type) {
98
			case 'mail':
98
			case 'mail':
99
				if(!$this->mailValide($valeur)) {
99
				if(!$this->mailValide($valeur)) {
100
					$retour[0] = false;
100
					$retour[0] = false;
101
					$retour[1] = 'mail invalide';
101
					$retour[1] = 'mail invalide';
102
					break;
102
					break;
103
				}
103
				}
104
 
104
 
105
				$this->chargerModele('AnnuaireModele');
105
				$this->chargerModele('AnnuaireModele');
106
				$ancien_mail = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur);
106
				$ancien_mail = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur);
107
 
107
 
108
				if($ancien_mail != $valeur && $this->AnnuaireModele->utilisateurExisteParMail($id_annuaire, $valeur)) {
108
				if($ancien_mail != $valeur && $this->AnnuaireModele->utilisateurExisteParMail($id_annuaire, $valeur)) {
109
					$retour[0] = false;
109
					$retour[0] = false;
110
					$retour[1] = 'cet email est déjà utilisé par quelqu\'un d\'autre';
110
					$retour[1] = 'cet email est déjà utilisé par quelqu\'un d\'autre';
111
				}
111
				}
112
 
112
 
113
			break;
113
			break;
114
 
114
 
115
			case 'password':
115
			case 'password':
116
 
116
 
117
				if(trim($valeur) != trim($confirmation)) {
117
				if(trim($valeur) != trim($confirmation)) {
118
					$retour[0] = false;
118
					$retour[0] = false;
119
					$retour[1] = 'mot de passe invalide';
119
					$retour[1] = 'mot de passe invalide';
120
				}
120
				}
121
		}
121
		}
122
 
122
 
123
		return $retour;
123
		return $retour;
124
	}
124
	}
125
 
125
 
126
	public function remplacerValeurChampPourInsertion($type, $valeur, $mail_utilisateur) {
126
	public function remplacerValeurChampPourInsertion($type, $valeur, $mail_utilisateur) {
127
 
127
 
128
		$valeur_modifiee = $valeur;
128
		$valeur_modifiee = $valeur;
129
 
129
 
130
		switch($type) {
130
		switch($type) {
131
 
131
 
132
			// cas du champ texte, à priori, rien de particulier
132
			// cas du champ texte, à priori, rien de particulier
133
			case 'text':
133
			case 'text':
134
				$valeur_modifiee = $valeur;
134
				$valeur_modifiee = $valeur;
135
			break;
135
			break;
136
 
136
 
137
			// cas du champ password : on le crypte
137
			// cas du champ password : on le crypte
138
			case 'password':
138
			case 'password':
139
				$valeur_modifiee = $this->encrypterMotDePasse($valeur);
139
				$valeur_modifiee = $this->encrypterMotDePasse($valeur);
140
			break;
140
			break;
141
 
141
 
142
			// cas du champ checkbox
142
			// cas du champ checkbox
143
			case 'checkbox':
143
			case 'checkbox':
144
				// Si c'est un groupe checkbox, alors c'est une liste de checkbox liée à une ontologie
144
				// Si c'est un groupe checkbox, alors c'est une liste de checkbox liée à une ontologie
145
				if(is_array($valeur)) {
145
				if(is_array($valeur)) {
146
					// on stocke les valeurs d'ontologies liées au cases cochées
146
					// on stocke les valeurs d'ontologies liées au cases cochées
147
					$valeur_modifiee = implode(Config::get('separateur_metadonnee'), array_keys($valeur));
147
					$valeur_modifiee = implode(Config::get('separateur_metadonnee'), array_keys($valeur));
148
 
148
 
149
				} else {
149
				} else {
150
					if($valeur == 'on') {
150
					if($valeur == 'on') {
151
						// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
151
						// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
152
						$valeur_modifiee = 1;
152
						$valeur_modifiee = 1;
153
					} else {
153
					} else {
154
						$valeur_modifiee = 0;
154
						$valeur_modifiee = 0;
155
					}
155
					}
156
				}
156
				}
157
 
157
 
158
			break;
158
			break;
159
 
159
 
160
			case 'lettre':
160
			case 'lettre':
161
					if($valeur == 'on') {
161
					if($valeur == 'on') {
162
						// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
162
						// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
163
						$valeur_modifiee = 1;
163
						$valeur_modifiee = 1;
164
						// Si c'est une inscription à la lettre d'actualité, on appelle la fonction d'inscription
164
						// Si c'est une inscription à la lettre d'actualité, on appelle la fonction d'inscription
165
						$lettre_controleur = new LettreControleur();
165
						$lettre_controleur = new LettreControleur();
166
						$lettre_controleur->inscriptionLettreActualite($mail_utilisateur);
166
						$lettre_controleur->inscriptionLettreActualite($mail_utilisateur);
167
					} else {
167
					} else {
168
						$valeur_modifiee = 0;
168
						$valeur_modifiee = 0;
169
					}
169
					}
170
			break;
170
			break;
171
 
171
 
172
			default:
172
			default:
173
				$valeur_modifiee = $valeur;
173
				$valeur_modifiee = $valeur;
174
			break;
174
			break;
175
		}
175
		}
176
 
176
 
177
		return $valeur_modifiee;
177
		return $valeur_modifiee;
178
	}
178
	}
179
 
179
 
180
	public function remplacerValeurChampPourModification($id_annuaire, $id_utilisateur, $type, $valeur, $mail_utilisateur) {
180
	public function remplacerValeurChampPourModification($id_annuaire, $id_utilisateur, $type, $valeur, $mail_utilisateur) {
181
 
181
 
182
		$valeur_modifiee = $valeur;
182
		$valeur_modifiee = $valeur;
183
 
183
 
184
		switch($type) {
184
		switch($type) {
185
 
185
 
186
			// cas du champ texte, à priori, rien de particulier
186
			// cas du champ texte, à priori, rien de particulier
187
			case 'text':
187
			case 'text':
188
				$valeur_modifiee = $valeur;
188
				$valeur_modifiee = $valeur;
189
			break;
189
			break;
190
 
190
 
191
			// cas du champ password : on le crypte
191
			// cas du champ password : on le crypte
192
			case 'password':
192
			case 'password':
193
				$valeur_modifiee = $this->encrypterMotDePasse($valeur);
193
				$valeur_modifiee = $this->encrypterMotDePasse($valeur);
194
			break;
194
			break;
195
 
195
 
196
			// cas du champ checkbox
196
			// cas du champ checkbox
197
			case 'checkbox':
197
			case 'checkbox':
-
 
198
				
198
				// Si c'est un groupe checkbox, alors c'est une liste de checkbox liée à une ontologie
199
				// Si c'est un groupe checkbox, alors c'est une liste de checkbox liée à une ontologie
199
				if(is_array($valeur)) {
200
				if(is_array($valeur)) {
200
 
201
 
201
					// on stocke les valeurs d'ontologies liées au cases cochées
202
					// on stocke les valeurs d'ontologies liées au cases cochées
202
					$valeur_modifiee = implode(Config::get('separateur_metadonnee'), array_keys($valeur));
203
					$valeur_modifiee = implode(Config::get('separateur_metadonnee'), array_keys($valeur));
203
 
204
 
204
				} else {
205
				} else {
205
					if($valeur == 'on') {
206
					if($valeur == 'on' || $valeur = '1') {
206
						// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
207
						// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
207
						$valeur_modifiee = 1;
208
						$valeur_modifiee = 1;
208
					} else {
209
					} else {
209
						$valeur_modifiee = 0;
210
						$valeur_modifiee = 0;
210
					}
211
					}
211
				}
212
				}
212
 
213
 
213
			break;
214
			break;
214
 
215
 
215
			case 'lettre':
216
			case 'lettre':
216
 
217
 
217
				// Si c'est une inscription à la lettre d'actualité, on appelle la fonction d'inscription
218
				// Si c'est une inscription à la lettre d'actualité, on appelle la fonction d'inscription
218
				$lettre_controleur = new LettreControleur();
219
				$lettre_controleur = new LettreControleur();
219
 
220
 
220
				$this->chargerModele('AnnuaireModele');
221
				$this->chargerModele('AnnuaireModele');
221
				$ancien_mail = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
222
				$ancien_mail = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
222
 
223
 
223
				$changement_mail = false;
224
				$changement_mail = false;
224
 
225
 
225
				if($ancien_mail != $mail_utilisateur) {
226
				if($ancien_mail != $mail_utilisateur) {
226
					$changement_mail = true;
227
					$changement_mail = true;
227
				}
228
				}
228
 
229
 
229
				if($valeur == 'on') {
230
				if($valeur == 'on') {
230
					// on stocke 1 pour indique que la case est cochée (comme la checkbox oui/non)
231
					// on stocke 1 pour indique que la case est cochée (comme la checkbox oui/non)
231
					$valeur_modifiee = 1;
232
					$valeur_modifiee = 1;
232
 
233
 
233
					// si le mail a changé on désinscrit l'ancien mail et on inscrit le nouveau
234
					// si le mail a changé on désinscrit l'ancien mail et on inscrit le nouveau
234
					if($changement_mail) {
235
					if($changement_mail) {
235
						$lettre_controleur->ModificationInscriptionLettreActualite($ancien_mail, $mail_utilisateur);
236
						$lettre_controleur->ModificationInscriptionLettreActualite($ancien_mail, $mail_utilisateur);
236
					} else {
237
					} else {
237
						$lettre_controleur->inscriptionLettreActualite($mail_utilisateur);
238
						$lettre_controleur->inscriptionLettreActualite($mail_utilisateur);
238
					}
239
					}
239
 
240
 
240
				} else {
241
				} else {
241
					// sinon, si la case est vide
242
					// sinon, si la case est vide
242
					$valeur_modifiee = 0;
243
					$valeur_modifiee = 0;
243
					$mail_a_desinscrire = $mail_utilisateur;
244
					$mail_a_desinscrire = $mail_utilisateur;
244
					if($changement_mail) {
245
					if($changement_mail) {
245
						$mail_a_desinscrire = $ancien_mail;
246
						$mail_a_desinscrire = $ancien_mail;
246
					}
247
					}
247
					// on desinscrit l'utilisateur
248
					// on desinscrit l'utilisateur
248
					$lettre_controleur->desinscriptionLettreActualite($mail_a_desinscrire);
249
					$lettre_controleur->desinscriptionLettreActualite($mail_a_desinscrire);
249
				}
250
				}
250
			break;
251
			break;
251
 
252
 
252
			default:
253
			default:
253
				$valeur_modifiee = $valeur;
254
				$valeur_modifiee = $valeur;
254
			break;
255
			break;
255
		}
256
		}
256
 
257
 
257
		return $valeur_modifiee;
258
		return $valeur_modifiee;
258
	}
259
	}
259
 
260
 
260
	public function verifierEtRemplacerValeurChampPourAffichage($type, $valeur, $id_annuaire) {
261
	public function verifierEtRemplacerValeurChampPourAffichage($type, $valeur, $id_annuaire) {
261
 
262
 
262
		if(!$type) {
263
		if(!$type) {
263
			$valeur_modifiee = array();
264
			$valeur_modifiee = array();
264
 
265
 
265
			$valeur_modifiee['amv_type'] = 'champ_annuaire';
266
			$valeur_modifiee['amv_type'] = 'champ_annuaire';
266
			$valeur_modifiee['amv_valeur_affichage'] = $valeur;
267
			$valeur_modifiee['amv_valeur_affichage'] = $valeur;
267
 
268
 
268
		} else {
269
		} else {
269
			
270
			
270
			if(!isset($valeur['amv_valeur'])) {
271
			if(!isset($valeur['amv_valeur'])) {
271
				$valeur['amv_valeur'] = '';
272
				$valeur['amv_valeur'] = '';
272
			}
273
			}
273
 
274
 
274
			$valeur_modifiee = $valeur;
275
			$valeur_modifiee = $valeur;
275
 
276
 
276
			switch($type) {
277
			switch($type) {
277
 
278
 
278
				// cas du champ texte, à priori, rien de particulier
279
				// cas du champ texte, à priori, rien de particulier
279
				case 'text':
280
				case 'text':
280
					$valeur_modifiee['amv_valeur_affichage'] = $this->remplacerLienHtml($valeur['amv_valeur']);
281
					$valeur_modifiee['amv_valeur_affichage'] = $this->remplacerLienHtml($valeur['amv_valeur']);
281
				break;
282
				break;
282
				
283
				
283
				// cas du champ texte long, à priori, rien de particulier
284
				// cas du champ texte long, à priori, rien de particulier
284
				case 'textarea':
285
				case 'textarea':
285
					$valeur_modifiee['amv_valeur_affichage'] = $this->remplacerLienHtml($valeur['amv_valeur']);
286
					$valeur_modifiee['amv_valeur_affichage'] = $this->remplacerLienHtml($valeur['amv_valeur']);
286
				break;
287
				break;
287
 
288
 
288
				// cas du champ checkbox
289
				// cas du champ checkbox
289
				case 'checkbox':
290
				case 'checkbox':
290
					// si c'est un groupe checkbox, alors c'est une liste de checkbox liée à une ontologie
291
					// si c'est un groupe checkbox, alors c'est une liste de checkbox liée à une ontologie
291
					if(isset($valeur['amo_nom'])) {
292
					if(isset($valeur['amo_nom'])) {
292
						if(is_array($valeur['amo_nom']) && count($valeur['amo_nom']) > 0) {
293
						if(is_array($valeur['amo_nom']) && count($valeur['amo_nom']) > 0) {
293
						// on stocke les valeurs d'ontologies liées au cases cochées
294
						// on stocke les valeurs d'ontologies liées au cases cochées
294
							$valeur_modifiee['amv_valeur_affichage'] = implode(', ', $valeur['amo_nom']);
295
							$valeur_modifiee['amv_valeur_affichage'] = implode(', ', $valeur['amo_nom']);
295
						} else {
296
						} else {
296
							$valeur_modifiee['amv_valeur_affichage'] = $valeur['amo_nom'];
297
							$valeur_modifiee['amv_valeur_affichage'] = $valeur['amo_nom'];
297
						}
298
						}
298
					} else {
299
					} else {
299
						// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
300
						// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non)
300
						if($valeur_modifiee == 1) {
301
						if($valeur_modifiee == 1) {
301
							$valeur_modifiee['amv_valeur_affichage'] = 'oui';
302
							$valeur_modifiee['amv_valeur_affichage'] = 'oui';
302
						} else {
303
						} else {
303
							$valeur_modifiee['amv_valeur_affichage'] = 'non';
304
							$valeur_modifiee['amv_valeur_affichage'] = 'non';
304
						}
305
						}
305
					}
306
					}
306
				break;
307
				break;
307
 
308
 
308
				case 'select':
309
				case 'select':
309
					// TODO: si ça n'existe pas on va le chercher ?
310
					// TODO: si ça n'existe pas on va le chercher ?
310
					if(isset($valeur['amo_nom'])) {
311
					if(isset($valeur['amo_nom'])) {
311
						$valeur_modifiee['amv_valeur_affichage'] = $valeur['amo_nom'];
312
						$valeur_modifiee['amv_valeur_affichage'] = $valeur['amo_nom'];
312
					} else {
313
					} else {
313
						if(isset($valeur['amv_valeur'])) {
314
						if(isset($valeur['amv_valeur'])) {
314
							$ontologie_modele = new OntologieModele();
315
							$ontologie_modele = new OntologieModele();
315
							$infos_onto = $ontologie_modele->chargerInformationsOntologie($valeur['amv_valeur']);
316
							$infos_onto = $ontologie_modele->chargerInformationsOntologie($valeur['amv_valeur']);
316
							if(is_array($infos_onto) && !empty($infos_onto)) {
317
							if(is_array($infos_onto) && !empty($infos_onto)) {
317
								$valeur_modifiee['amv_valeur_affichage'] = $infos_onto['amo_nom'];
318
								$valeur_modifiee['amv_valeur_affichage'] = $infos_onto['amo_nom'];
318
							} else  {
319
							} else  {
319
								$valeur_modifiee['amv_valeur_affichage'] = '';
320
								$valeur_modifiee['amv_valeur_affichage'] = '';
320
							}
321
							}
321
						} else  {
322
						} else  {
322
							$valeur_modifiee['amv_valeur_affichage'] = '';
323
							$valeur_modifiee['amv_valeur_affichage'] = '';
323
						}
324
						}
324
					}
325
					}
325
					
326
					
326
				break;
327
				break;
327
 
328
 
328
				case 'radio':
329
				case 'radio':
329
					$valeur_modifiee['amv_valeur_affichage'] = $valeur['amo_nom'];
330
					$valeur_modifiee['amv_valeur_affichage'] = $valeur['amo_nom'];
330
				break;
331
				break;
331
 
332
 
332
				case 'image':
333
				case 'image':
333
					// si c'est une image, on recherche son url véritable à partir de l'id donnée en paramètre
334
					// si c'est une image, on recherche son url véritable à partir de l'id donnée en paramètre
334
					if(isset($valeur['amv_valeur']) && $valeur['amv_valeur'] != '') {
335
					if(isset($valeur['amv_valeur']) && $valeur['amv_valeur'] != '') {
335
						$this->chargerModele('ImageModele');
336
						$this->chargerModele('ImageModele');
336
						$valeur_modifiee['amv_valeur_affichage'] = $this->ImageModele->obtenirEmplacementFichierParId($valeur['amv_valeur'],$id_annuaire, 'S');
337
						$valeur_modifiee['amv_valeur_affichage'] = $this->ImageModele->obtenirEmplacementFichierParId($valeur['amv_valeur'],$id_annuaire, 'S');
337
					}
338
					}
338
				break;
339
				break;
339
 
340
 
340
				// cas du champ lettre
341
				// cas du champ lettre
341
				case 'lettre':
342
				case 'lettre':
342
 
343
 
343
					// on affiche oui ou non
344
					// on affiche oui ou non
344
					if($valeur_modifiee['amv_valeur'] == 1) {
345
					if($valeur_modifiee['amv_valeur'] == 1) {
345
						$valeur_modifiee['amv_valeur_affichage'] = 'oui';
346
						$valeur_modifiee['amv_valeur_affichage'] = 'oui';
346
					} else {
347
					} else {
347
						$valeur_modifiee['amv_valeur_affichage'] = 'non';
348
						$valeur_modifiee['amv_valeur_affichage'] = 'non';
348
					}
349
					}
349
				break;
350
				break;
350
				
351
				
351
				// cas de la date, on la formate
352
				// cas de la date, on la formate
352
				case 'date':
353
				case 'date':
-
 
354
					
-
 
355
					//echo '|'.$valeur['amv_valeur'].'|';
-
 
356
					
353
					$format = Config::get('date_format_simple');
357
					$format = Config::get('date_format_simple');
354
					if(isset($format)) {
358
					if(!isset($format)) {
-
 
359
						$format = 'd/m/Y';
-
 
360
					}
-
 
361
					
-
 
362
					$time = strtotime($valeur['amv_valeur']);
-
 
363
					
-
 
364
					if(!$time || $time == '') {
355
						$valeur_modifiee['amv_valeur_affichage'] = date($format, strtotime($valeur['amv_valeur']));
365
						$valeur_modifiee['amv_valeur_affichage'] = $valeur['amv_valeur'];
356
					} else {
366
					} else {
357
						$valeur_modifiee['amv_valeur_affichage'] = date('d/m/Y', strtotime($valeur['amv_valeur']));
367
						$valeur_modifiee['amv_valeur_affichage'] = date($format, $time);
358
					}
368
					}
-
 
369
					
-
 
370
					$valeur_modifiee['amv_valeur_affichage'] = date($format, $time);
359
								
371
								
360
				break;
372
				break;
361
 
373
 
362
				default:
374
				default:
363
					$valeur_modifiee['amv_valeur_affichage'] = $valeur['amv_valeur'];
375
					$valeur_modifiee['amv_valeur_affichage'] = $valeur['amv_valeur'];
364
				break;
376
				break;
365
			}
377
			}
366
		}
378
		}
367
 
379
 
368
		return $valeur_modifiee;
380
		return $valeur_modifiee;
369
	}
381
	}
370
	
382
	
371
	public function collecterValeurInscription($valeurs, $tableau_mappage) {
383
	public function collecterValeurInscription($valeurs, $tableau_mappage) {
372
		
384
		
373
		$valeurs_mappees = array();
385
		$valeurs_mappees = array();
374
		$valeurs_a_inserer = array();
386
		$valeurs_a_inserer = array();
375
		
387
		
376
		// on itère sur le tableau de valeur pour récupérer les champs de mappage;
388
		// on itère sur le tableau de valeur pour récupérer les champs de mappage;
377
		foreach($valeurs as $nom_champ => $valeur) {
389
		foreach($valeurs as $nom_champ => $valeur) {
378
 
390
 
379
			// pour chaque valeur
391
			// pour chaque valeur
380
			// on extrait l'id du champ
392
			// on extrait l'id du champ
381
			$ids_champ = mb_split("_",$nom_champ, 3);
393
			$ids_champ = mb_split("_",$nom_champ, 3);
382
 
394
 
383
			if(count($ids_champ) == 3) {
395
			if(count($ids_champ) == 3) {
384
 
396
 
385
				$type = $ids_champ[0];
397
				$type = $ids_champ[0];
386
				$id_champ = $ids_champ[2];
398
				$id_champ = $ids_champ[2];
387
				$condition = $ids_champ[1];
399
				$condition = $ids_champ[1];
388
 
400
 
389
				// cas de la checkbox qui devrait être là mais pas cochée
401
				// cas de la checkbox qui devrait être là mais pas cochée
390
				if($condition == 'hidden' && !isset($valeurs[$type.'_'.$id_champ])) {
402
				if($condition == 'hidden' && !isset($valeurs[$type.'_'.$id_champ])) {
391
					// dans ce cas là on fabrique une valeur vide
403
					// dans ce cas là on fabrique une valeur vide
392
					$valeurs[$type.'_'.$id_champ] = 0;
404
					$valeurs[$type.'_'.$id_champ] = 0;
393
				}
405
				}
394
 
406
 
395
			} else {
407
			} else {
396
				$type = $ids_champ[0];
408
				$type = $ids_champ[0];
397
				$condition = false;
409
				$condition = false;
398
				$id_champ = $ids_champ[1];
410
				$id_champ = $ids_champ[1];
399
			}
411
			}
400
 
412
 
401
			// Si le champ fait partie des champs mappés
413
			// Si le champ fait partie des champs mappés
402
			$cle_champ = array_search($id_champ, $tableau_mappage[1]);
414
			$cle_champ = array_search($id_champ, $tableau_mappage[1]);
403
 
415
 
404
			// on ajoute sa clé correspondante dans le tableau des champs mappés
416
			// on ajoute sa clé correspondante dans le tableau des champs mappés
405
			// qui sont les champs à vérifier
417
			// qui sont les champs à vérifier
406
			if($condition) {
418
			if($condition) {
407
				$condition = $valeurs[$type.'_'.$id_champ];
419
				$condition = $valeurs[$type.'_'.$id_champ];
408
				$valeurs_mappees[$id_champ] = array('valeur' => $valeur, 'type' => $type, 'condition' => $condition);
420
				$valeurs_mappees[$id_champ] = array('valeur' => $valeur, 'type' => $type, 'condition' => $condition);
409
			} else {
421
			} else {
410
				//$valeurs_mappees[$cle_champ] = $valeur;
422
				//$valeurs_mappees[$cle_champ] = $valeur;
411
				$valeurs_mappees[$id_champ] = array('valeur' => $valeur, 'type' => $type, 'condition' => false);
423
				$valeurs_mappees[$id_champ] = array('valeur' => $valeur, 'type' => $type, 'condition' => false);
412
			}
424
			}
413
 
425
 
414
			if(!$condition) {
426
			if(!$condition) {
415
				$valeurs_a_inserer[$nom_champ] = $valeur;
427
				$valeurs_a_inserer[$nom_champ] = $valeur;
416
			}
428
			}
417
		}
429
		}
418
		
430
		
419
		return array('valeurs_mappees' => $valeurs_mappees, 'valeurs_a_inserer' => $valeurs_a_inserer);
431
		return array('valeurs_mappees' => $valeurs_mappees, 'valeurs_a_inserer' => $valeurs_a_inserer);
420
	}
432
	}
421
 
433
 
422
	/**
434
	/**
423
	 * Renvoie vrai ou faux suivant qu'un mail donné en paramètre est syntaxiquement valide (ne vérifie pas l'existence
435
	 * Renvoie vrai ou faux suivant qu'un mail donné en paramètre est syntaxiquement valide (ne vérifie pas l'existence
424
	 * de l'adresse)
436
	 * de l'adresse)
425
	 * @param string $mail le mail à tester
437
	 * @param string $mail le mail à tester
426
	 * @return boolean vrai ou faux suivant que le mail est valide ou non
438
	 * @return boolean vrai ou faux suivant que le mail est valide ou non
427
	 */
439
	 */
428
	public function mailValide($mail) {
440
	public function mailValide($mail) {
429
 
441
 
430
		$regexp_mail = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
442
		$regexp_mail = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
431
		return preg_match($regexp_mail, $mail);
443
		return preg_match($regexp_mail, $mail);
432
 
444
 
433
	}
445
	}
434
 
446
 
435
	/**
447
	/**
436
	 * Renvoie un mot de passe crypté selon la fonction d'encryptage définie dans le fichier de configuration
448
	 * Renvoie un mot de passe crypté selon la fonction d'encryptage définie dans le fichier de configuration
437
	 * (si celle-ci n'existe pas on utilise une fonction par défaut)
449
	 * (si celle-ci n'existe pas on utilise une fonction par défaut)
438
	 * @param string $pass le mot de passe à encrypter
450
	 * @param string $pass le mot de passe à encrypter
439
	 * @return string le mot de passe encrypté
451
	 * @return string le mot de passe encrypté
440
	 */
452
	 */
441
	public function encrypterMotDePasse($pass) {
453
	public function encrypterMotDePasse($pass) {
442
 
454
 
443
		$fonction = Config::get('pass_crypt_fonct');
455
		$fonction = Config::get('pass_crypt_fonct');
444
 
456
 
445
		if(function_exists($fonction)) {
457
		if(function_exists($fonction)) {
446
			return $fonction($pass);
458
			return $fonction($pass);
447
		} else {
459
		} else {
448
			return md5($pass);
460
			return md5($pass);
449
		}
461
		}
450
	}
462
	}
451
 
463
 
452
	//TODO: créer une class util
464
	//TODO: créer une class util
453
	static function encrypterMotDepasseStatic($pass) {
465
	static function encrypterMotDepasseStatic($pass) {
454
 
466
 
455
		$fonction = Config::get('pass_crypt_fonct');
467
		$fonction = Config::get('pass_crypt_fonct');
456
 
468
 
457
		if(function_exists($fonction)) {
469
		if(function_exists($fonction)) {
458
			return $fonction($pass);
470
			return $fonction($pass);
459
		} else {
471
		} else {
460
			return md5($pass);
472
			return md5($pass);
461
		}
473
		}
462
	}
474
	}
463
	
475
	
464
	public function genererMotDePasse() {
476
	public function genererMotDePasse() {
465
		
477
		
466
		$pass = "";
478
		$pass = "";
467
		$chaine = "abcdefghkmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ23456789";
479
		$chaine = "abcdefghkmnpqrstuvwxyzABCDEFGHKLMNPQRSTUVWXYZ23456789";
468
 
480
 
469
		srand((double)microtime()*1000000);
481
		srand((double)microtime()*1000000);
470
		for($i = 0; $i < 10; $i++){
482
		for($i = 0; $i < 10; $i++){
471
			$pass .= $chaine[rand()%strlen($chaine)];
483
			$pass .= $chaine[rand()%strlen($chaine)];
472
		}
484
		}
473
		
485
		
474
		return $pass;
486
		return $pass;
475
		
487
		
476
	}
488
	}
477
 
489
 
478
	/**
490
	/**
479
	 * Suivant un identifiant de champ et un tableau, renvoie vrai ou faux suivant que le champs est obligatoire ou non
491
	 * Suivant un identifiant de champ et un tableau, renvoie vrai ou faux suivant que le champs est obligatoire ou non
480
	 * @param int $id_champ l'identifiant de champ
492
	 * @param int $id_champ l'identifiant de champ
481
	 * @param int $champ_obligatoire le tableau des champs obligatoires
493
	 * @param int $champ_obligatoire le tableau des champs obligatoires
482
	 */
494
	 */
483
	private function estUnchampObligatoire($id_champ, $champs_obligatoire) {
495
	private function estUnchampObligatoire($id_champ, $champs_obligatoire) {
484
 
496
 
485
		return in_array($id_champ, $champs_obligatoire) || in_array($id_champ, array_keys($champs_obligatoire));
497
		return in_array($id_champ, $champs_obligatoire) || in_array($id_champ, array_keys($champs_obligatoire));
486
	}
498
	}
487
	
499
	
488
	/**
500
	/**
489
	 * 
501
	 * 
490
	 */
502
	 */
491
	private function remplacerLienHtml($texte) {
503
	private function remplacerLienHtml($texte) {
492
		
504
		
493
		$expr = "(http[\S\.\/:]*)";
505
		$expr = "(http[\S\.\/:]*)";
494
		
506
		
495
		$matches = array();
507
		$matches = array();
496
		preg_match_all($expr, $texte, $matches);
508
		preg_match_all($expr, $texte, $matches);
497
				
509
				
498
		foreach($matches as $match) {
510
		foreach($matches as $match) {
499
			
511
			
500
			foreach($match as $element) {
512
			foreach($match as $element) {
501
				$str_lien = '<br /><a class="info_resume" href="'.$element.'" >'.$element.'</a>'; 
513
				$str_lien = '<br /><a class="info_resume" href="'.$element.'" >'.$element.'</a>'; 
502
				$texte = str_replace($element, $str_lien, $texte);
514
				$texte = str_replace($element, $str_lien, $texte);
503
			}
515
			}
504
		}
516
		}
505
		
517
		
506
		return $texte;
518
		return $texte;
507
	}
519
	}
508
}
520
}
509
?>
521
?>