Subversion Repositories Applications.annuaire

Rev

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

Rev 330 Rev 339
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
class AnnuaireControleur extends AppControleur {
14
class AnnuaireControleur extends AppControleur {
15
 
15
 
16
 
16
 
17
	/**
17
	/**
18
	 * Fonction affichant la vue par défaut, ici le menu principal
18
	 * Fonction affichant la vue par défaut, ici le menu principal
19
	 * @return String la vue contenant le menu
19
	 * @return String la vue contenant le menu
20
	 */
20
	 */
21
	public function index() {
21
	public function index() {
22
		
22
		
23
		if(Registre::getInstance()->get('est_admin')) {
23
		if(Registre::getInstance()->get('est_admin')) {
24
			$data = array();
24
			$data = array();
25
			$index_annuaire = $this->getVue('index_annuaire', $data);
25
			$index_annuaire = $this->getVue('index_annuaire', $data);
26
 
26
 
27
			return $index_annuaire;
27
			return $index_annuaire;
28
    	} else {
28
    	} else {
29
			return $this->afficherFicheUtilisateur(Registre::getInstance()->get('identification_id'));
29
			return $this->afficherFicheUtilisateur(Registre::getInstance()->get('identification_id'));
30
    	}
30
    	}
31
	}
31
	}
32
 
32
 
33
	/**
33
	/**
34
     * Fonction d'affichage par défaut
34
     * Fonction d'affichage par défaut
35
     */
35
     */
36
    public function executerActionParDefaut() {
36
    public function executerActionParDefaut() {
37
 
37
 
38
    	if(Registre::getInstance()->get('est_admin')) {
38
    	if(Registre::getInstance()->get('est_admin')) {
39
			$data = array();
39
			$data = array();
40
			$index_annuaire = $this->getVue('index_annuaire', $data);
40
			$index_annuaire = $this->getVue('index_annuaire', $data);
41
 
41
 
42
			return $index_annuaire;
42
			return $index_annuaire;
43
    	} else {
43
    	} else {
44
			return $this->afficherFicheUtilisateur(Registre::getInstance()->get('identification_id'));
44
			return $this->afficherFicheUtilisateur(Registre::getInstance()->get('identification_id'));
45
    	}
45
    	}
46
    }
46
    }
47
    
-
 
48
    public function creerMetadonnee() {
-
 
49
    	
-
 
50
    	$this->chargerModele('AnnuaireModele');
-
 
51
    	$this->chargerModele('MetadonneeModele');
-
 
52
    	$id_liste_inscrit = $this->AnnuaireModele->migrer();
-
 
53
    	
-
 
54
    	foreach($id_liste_inscrit as $id_inscrit) {
-
 
55
    		
-
 
56
    		    	
-
 
57
    		echo $id_inscrit.'<br />';
-
 
58
 
-
 
59
			// S'il existe déjà une valeur de metadonnée pour cette colonne et cet utilisateur
-
 
60
			// car on a pu ajouter de nouveaux champs entre temps
-
 
61
			if($this->MetadonneeModele->valeurExiste('97',$id_inscrit)) {
-
 
62
				// On se contente de la modifier
-
 
63
				$this->MetadonneeModele->modifierValeurMetadonnee('97',$id_inscrit,'1');
-
 
64
 
-
 
65
			} else {
-
 
66
				// S'il n'existe pas de valeur, on ajoute une nouvelle ligne à la table de valeurs de meta données
-
 
67
				if($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee('97',$id_inscrit,'1')) {
-
 
68
					// Si l'insertion a réussi, on continue
-
 
69
				} else {
-
 
70
					return false;
-
 
71
				}
-
 
72
			}
-
 
73
    	}
-
 
74
 
-
 
75
    }
-
 
76
 
47
    
77
/**-------- Fonctions de gestion des annuaires --------------------------------*/
48
/**-------- Fonctions de gestion des annuaires --------------------------------*/
78
 
49
 
79
	/**
50
	/**
80
	 * Charge la vue contenant la liste des annuaires gérés par l'application
51
	 * Charge la vue contenant la liste des annuaires gérés par l'application
81
	 * @return string la vue contenant la liste des annuaires
52
	 * @return string la vue contenant la liste des annuaires
82
	 */
53
	 */
83
	public function chargerListeAnnuaire() {
54
	public function chargerListeAnnuaire() {
84
		$this->chargerModele('AnnuaireModele');
55
		$this->chargerModele('AnnuaireModele');
85
		$data['erreurs'] = null;
56
		$data['erreurs'] = null;
86
		$data['annuaires'] = $this->AnnuaireModele->chargerListeAnnuaire();
57
		$data['annuaires'] = $this->AnnuaireModele->chargerListeAnnuaire();
87
		$liste_annu = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'liste_annu', $data);
58
		$liste_annu = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'liste_annu', $data);
88
 
59
 
89
		return $liste_annu;
60
		return $liste_annu;
90
	}
61
	}
91
 
62
 
92
	/**
63
	/**
93
	 * Charge la vue contenant les informations d'un annuaire donné en paramètre
64
	 * Charge la vue contenant les informations d'un annuaire donné en paramètre
94
	 * @param int $id l'identifiant de l'annuaire
65
	 * @param int $id l'identifiant de l'annuaire
95
	 * @return string la vue contenant les informations sur l'annuaire
66
	 * @return string la vue contenant les informations sur l'annuaire
96
	 */
67
	 */
97
	public function chargerAnnuaire($id) {
68
	public function chargerAnnuaire($id) {
98
		$this->chargerModele('AnnuaireModele');
69
		$this->chargerModele('AnnuaireModele');
99
		$this->chargerModele('MetadonneeModele');
70
		$this->chargerModele('MetadonneeModele');
100
		$data['erreurs'] = array();
71
		$data['erreurs'] = array();
101
		$data['champs_mappage'] = $this->obtenirChampsMappageAnnuaire($id);
72
		$data['champs_mappage'] = $this->obtenirChampsMappageAnnuaire($id);
102
		$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id, true);
73
		$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id, true);
103
		$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id);
74
		$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id);
104
		$annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire', $data);
75
		$annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire', $data);
105
 
76
 
106
		return $annuaire;
77
		return $annuaire;
107
	}
78
	}
108
 
79
 
109
	/**
80
	/**
110
	 * Charge et affiche la liste des inscrits à un annuaire donné en paramètre
81
	 * Charge et affiche la liste des inscrits à un annuaire donné en paramètre
111
	 * @param $id int l'identifiant de l'annuaire
82
	 * @param $id int l'identifiant de l'annuaire
112
	 * @return string la vue contenant les inscrits à l'annuaire
83
	 * @return string la vue contenant les inscrits à l'annuaire
113
	 */
84
	 */
114
	public function chargerAnnuaireListeInscrits($id_annuaire, $numero_page = 1, $taille_page = 50) {
85
	public function chargerAnnuaireListeInscrits($id_annuaire, $numero_page = 1, $taille_page = 50) {
115
 
86
 
116
		$this->chargerModele('AnnuaireModele');
87
		$this->chargerModele('AnnuaireModele');
117
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
88
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
118
		$data['erreurs'] = array();
89
		$data['erreurs'] = array();
119
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
90
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
120
		$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
91
		$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
121
 
92
 
122
		$resultat_recherche = $this->AnnuaireModele->chargerAnnuaireListeInscrits($id_annuaire, $numero_page, $taille_page);	
93
		$resultat_recherche = $this->AnnuaireModele->chargerAnnuaireListeInscrits($id_annuaire, $numero_page, $taille_page);	
123
						
94
						
124
		$nb_resultats = $resultat_recherche['total'];
95
		$nb_resultats = $resultat_recherche['total'];
125
		$resultat_recherche = $resultat_recherche['resultat'];
96
		$resultat_recherche = $resultat_recherche['resultat'];
126
		
97
		
127
		$resultats = array();
98
		$resultats = array();
128
		foreach($resultat_recherche as $resultat) {
99
		foreach($resultat_recherche as $resultat) {
129
			$id_utilisateur = $resultat[$champ_id_annuaire];
100
			$id_utilisateur = $resultat[$champ_id_annuaire];
130
			$resultats[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
101
			$resultats[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
131
		}
102
		}
132
 
103
 
133
		// on renvoie une liste identique à celle de la liste des inscrits
104
		// on renvoie une liste identique à celle de la liste des inscrits
134
		$donnees['resultats_recherche'] = $resultats;
105
		$donnees['resultats_recherche'] = $resultats;
135
		$donnees['tableau_mappage'] = $tableau_mappage[1];
106
		$donnees['tableau_mappage'] = $tableau_mappage[1];
136
		$donnees['id_annuaire'] = $id_annuaire;
107
		$donnees['id_annuaire'] = $id_annuaire;
137
		$donnees['nb_resultats'] = $nb_resultats;
108
		$donnees['nb_resultats'] = $nb_resultats;
138
		$url_pagination = new URL(Registre::getInstance()->get('base_url_application'));
109
		$url_pagination = new URL(Registre::getInstance()->get('base_url_application'));
139
		$url_pagination->setVariableRequete('m','annuaire_inscrits');
110
		$url_pagination->setVariableRequete('m','annuaire_inscrits');
140
		$url_pagination->setVariableRequete('id_annuaire',$id_annuaire);
111
		$url_pagination->setVariableRequete('id_annuaire',$id_annuaire);
141
		
112
		
142
		$donnees['criteres'] = urlencode(serialize(array('tous' => '1')));
113
		$donnees['criteres'] = urlencode(serialize(array('tous' => '1')));
143
 
114
 
144
		$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, array());
115
		$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, array());
145
 
116
 
146
		// S'il existe une page de résultats spécifique à l'annuaire pour la recherche
117
		// S'il existe une page de résultats spécifique à l'annuaire pour la recherche
147
 
118
 
148
		if($this->templateExiste($annuaire['informations']['aa_code'].'_resultat_recherche', Config::get('dossier_squelettes_annuaires'))) {
119
		if($this->templateExiste($annuaire['informations']['aa_code'].'_resultat_recherche', Config::get('dossier_squelettes_annuaires'))) {
149
			// on l'affiche
120
			// on l'affiche
150
			$annuaires_inscrits = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
121
			$annuaires_inscrits = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
151
		} else {
122
		} else {
152
			// sinon on prend celle par défaut
123
			// sinon on prend celle par défaut
153
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
124
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
154
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
125
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
155
			$annuaires_inscrits = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
126
			$annuaires_inscrits = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
156
		}
127
		}
157
 
128
 
158
		return $annuaires_inscrits;
129
		return $annuaires_inscrits;
159
	}
130
	}
160
 
131
 
161
/**-------- Fonctions d'affichage du formulaire de saisie d'un champ de metadonnée suivant le type de champ---------*/
132
/**-------- Fonctions d'affichage du formulaire de saisie d'un champ de metadonnée suivant le type de champ---------*/
162
 
133
 
163
	/**
134
	/**
164
	 * Affiche le formulaire d'inscription pour un annuaire donné
135
	 * Affiche le formulaire d'inscription pour un annuaire donné
165
	 * @param int $id_annuaire l'identifiant de l'annuaire pour lequel on veut afficher le formulaire
136
	 * @param int $id_annuaire l'identifiant de l'annuaire pour lequel on veut afficher le formulaire
166
	 * @param Array $donnees le tableau de données pour préremplir le formulaire si besoin (en cas de retour erreur)
137
	 * @param Array $donnees le tableau de données pour préremplir le formulaire si besoin (en cas de retour erreur)
167
	 */
138
	 */
168
	public function afficherFormulaireInscription($id_annuaire, $donnees=array()) {
139
	public function afficherFormulaireInscription($id_annuaire, $donnees=array()) {
169
		
140
		
170
		$this->chargerModele('AnnuaireModele');
141
		$this->chargerModele('AnnuaireModele');
171
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
142
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
172
 
143
 
173
		$this->chargerModele('MetadonneeModele');
144
		$this->chargerModele('MetadonneeModele');
174
		$donnees['aa_id_annuaire'] = $id_annuaire;
145
		$donnees['aa_id_annuaire'] = $id_annuaire;
175
 
146
 
176
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
147
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
177
		
148
		
178
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
149
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
179
 
150
 
180
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
151
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
181
		// pour ne charger que ce qui est nécéssaire
152
		// pour ne charger que ce qui est nécéssaire
182
		foreach($metadonnees as $metadonnee) {
153
		foreach($metadonnees as $metadonnee) {
183
 
154
 
184
			$id_champ = $metadonnee['amc_id_champ'];
155
			$id_champ = $metadonnee['amc_id_champ'];
185
			$type_champ = $metadonnee['amc_ce_template_affichage'];
156
			$type_champ = $metadonnee['amc_ce_template_affichage'];
186
			$nom_champ = $metadonnee['amc_abreviation'];
157
			$nom_champ = $metadonnee['amc_abreviation'];
187
 
158
 
188
			$metadonnee['aa_id_annuaire'] = $id_annuaire;
159
			$metadonnee['aa_id_annuaire'] = $id_annuaire;
189
			if(isset($donnees['erreurs'])) {
160
			if(isset($donnees['erreurs'])) {
190
				$metadonnee['erreurs'] = $donnees['erreurs'];
161
				$metadonnee['erreurs'] = $donnees['erreurs'];
191
			}
162
			}
192
 
163
 
193
			if(isset($donnees[$type_champ.'_'.$id_champ])) {
164
			if(isset($donnees[$type_champ.'_'.$id_champ])) {
194
				$metadonnee['valeur_defaut']['amv_valeur'] = $donnees[$type_champ.'_'.$id_champ];
165
				$metadonnee['valeur_defaut']['amv_valeur'] = $donnees[$type_champ.'_'.$id_champ];
195
			}
166
			}
196
			
167
			
197
			// on charge le formulaire d'affichage de chacune des métadonnées
168
			// on charge le formulaire d'affichage de chacune des métadonnées
198
			$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$metadonnee);
169
			$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$metadonnee);
199
		}
170
		}
200
		
171
		
201
		$donnees['tableau_mappage'] = $tableau_mappage[1];
172
		$donnees['tableau_mappage'] = $tableau_mappage[1];
202
 
173
 
203
		if($this->annuaireAvoirFormulaireInscription($annuaire['informations']['aa_code'])) {		
174
		if($this->annuaireAvoirFormulaireInscription($annuaire['informations']['aa_code'])) {		
204
						
175
						
205
			$formulaire_inscription = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees);						
176
			$formulaire_inscription = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees);						
206
		
177
		
207
		} else {
178
		} else {
208
			
179
			
209
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
180
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
210
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
181
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
211
			
182
			
212
			$formulaire_inscription = $this->genererFormulaireInscription($donnees);
183
			$formulaire_inscription = $this->genererFormulaireInscription($donnees);
213
		}
184
		}
214
 
185
 
215
		return $formulaire_inscription;
186
		return $formulaire_inscription;
216
	}
187
	}
217
 
188
 
218
/**-------- Fonctions d'inscription -------------------------------------------------------------------------------*/
189
/**-------- Fonctions d'inscription -------------------------------------------------------------------------------*/
219
 
190
 
220
	/**
191
	/**
221
	 * Lors d'une tentative d'inscription, ajoute les infos dans la table d'inscription
192
	 * Lors d'une tentative d'inscription, ajoute les infos dans la table d'inscription
222
	 * temporaire et envoie le mail contenant le lien de confirmation si tout s'est bien passé
193
	 * temporaire et envoie le mail contenant le lien de confirmation si tout s'est bien passé
223
	 * @param Array $valeurs les valeurs à ajouter
194
	 * @param Array $valeurs les valeurs à ajouter
224
	 * @return string la vue contenant la confirmation de l'inscription
195
	 * @return string la vue contenant la confirmation de l'inscription
225
	 */
196
	 */
226
	public function ajouterInscriptionTemporaire($valeurs) {
197
	public function ajouterInscriptionTemporaire($valeurs) {
227
 
198
 
228
		$this->chargerModele('MetadonneeModele');
199
		$this->chargerModele('MetadonneeModele');
229
		$id_annuaire = $valeurs['aa_id_annuaire'];
200
		$id_annuaire = $valeurs['aa_id_annuaire'];
230
		unset($valeurs['aa_id_annuaire']);
201
		unset($valeurs['aa_id_annuaire']);
231
		
202
		
232
		$valeurs_mappees = array();
203
		$valeurs_mappees = array();
233
		$valeurs_a_inserer = array();
204
		$valeurs_a_inserer = array();
234
 
205
 
235
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
206
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
236
 
207
 
237
		$verificateur = new VerificationControleur();
208
		$verificateur = new VerificationControleur();
238
 
209
 
239
		$valeurs_collectees = $verificateur->collecterValeurInscription($valeurs, $tableau_mappage);
210
		$valeurs_collectees = $verificateur->collecterValeurInscription($valeurs, $tableau_mappage);
240
		
211
		
241
		$valeurs_mappees = $valeurs_collectees['valeurs_mappees'];
212
		$valeurs_mappees = $valeurs_collectees['valeurs_mappees'];
242
		$valeurs_a_inserer = $valeurs_collectees['valeurs_a_inserer'];
213
		$valeurs_a_inserer = $valeurs_collectees['valeurs_a_inserer'];
243
 
214
 
244
		// vérification des champs minimaux : nom, prénom, mail, mot de passe
215
		// vérification des champs minimaux : nom, prénom, mail, mot de passe
245
		if($erreurs = $verificateur->verifierErreursChampsSelonType($id_annuaire,$valeurs_mappees, $tableau_mappage)) {
216
		if($erreurs = $verificateur->verifierErreursChampsSelonType($id_annuaire,$valeurs_mappees, $tableau_mappage)) {
246
			$valeurs['erreurs'] = $erreurs;
217
			$valeurs['erreurs'] = $erreurs;
247
			return $this->afficherFormulaireInscription($id_annuaire, $valeurs);
218
			return $this->afficherFormulaireInscription($id_annuaire, $valeurs);
248
		}
219
		}
249
		
220
		
250
		$valeurs_a_inserer['aa_id_annuaire'] = $id_annuaire ;
221
		$valeurs_a_inserer['aa_id_annuaire'] = $id_annuaire ;
251
 
222
 
252
		$this->chargerModele('DonneeTemporaireModele');
223
		$this->chargerModele('DonneeTemporaireModele');
253
				
224
				
254
		$code_confirmation = $this->DonneeTemporaireModele->stockerDonneeTemporaire($valeurs_a_inserer);
225
		$code_confirmation = $this->DonneeTemporaireModele->stockerDonneeTemporaire($valeurs_a_inserer);
255
		
226
		
256
		$mail = $valeurs_mappees[$tableau_mappage[1]['champ_mail']]['valeur'];
227
		$mail = $valeurs_mappees[$tableau_mappage[1]['champ_mail']]['valeur'];
257
		$nom = $valeurs_mappees[$tableau_mappage[1]['champ_nom']]['valeur'];
228
		$nom = $valeurs_mappees[$tableau_mappage[1]['champ_nom']]['valeur'];
258
		
229
		
259
		if(isset($tableau_mappage[1]['champ_prenom']) && isset($valeurs_mappees[$tableau_mappage[1]['champ_prenom']]['valeur'])) {
230
		if(isset($tableau_mappage[1]['champ_prenom']) && isset($valeurs_mappees[$tableau_mappage[1]['champ_prenom']]['valeur'])) {
260
			$prenom = $valeurs_mappees[$tableau_mappage[1]['champ_prenom']]['valeur'];
231
			$prenom = $valeurs_mappees[$tableau_mappage[1]['champ_prenom']]['valeur'];
261
		} else {
232
		} else {
262
			$prenom = '';
233
			$prenom = '';
263
		}
234
		}
264
		
235
		
265
		$messagerie = new MessageControleur();
236
		$messagerie = new MessageControleur();
266
		
237
		
267
		$messagerie->envoyerMailConfirmationInscription($mail,
238
		$messagerie->envoyerMailConfirmationInscription($mail,
268
													$nom,
239
													$nom,
269
													$prenom,
240
													$prenom,
270
													$code_confirmation);
241
													$code_confirmation);
271
													
242
													
272
		$tableau_vide = array();										
243
		$tableau_vide = array();										
273
		// Si tout s'est bien passé, on affiche la page de confirmation
244
		// Si tout s'est bien passé, on affiche la page de confirmation
274
		return $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire_inscription_reussie',$tableau_vide);
245
		return $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire_inscription_reussie',$tableau_vide);
275
	}
246
	}
276
 
247
 
277
	/**
248
	/**
278
	 * Ajoute une nouvelle inscription à un annuaire à partir de données d'une table temporaire.
249
	 * Ajoute une nouvelle inscription à un annuaire à partir de données d'une table temporaire.
279
	 * Typiquement, on déclenche cette fonction en cliquant sur le lien contenu dans le mail de confirmation
250
	 * Typiquement, on déclenche cette fonction en cliquant sur le lien contenu dans le mail de confirmation
280
	 * @param int $indentifant L'identifant de session d'une tentative d'inscription
251
	 * @param int $indentifant L'identifant de session d'une tentative d'inscription
281
	 */
252
	 */
282
	public function ajouterNouvelleInscription($identifiant) {
253
	public function ajouterNouvelleInscription($identifiant) {
283
 
254
 
284
		$this->chargerModele('DonneeTemporaireModele');
255
		$this->chargerModele('DonneeTemporaireModele');
285
		$valeurs = $this->DonneeTemporaireModele->chargerDonneeTemporaire($identifiant);
256
		$valeurs = $this->DonneeTemporaireModele->chargerDonneeTemporaire($identifiant);
286
 
257
 
287
		if(!$valeurs || count($valeurs) == 0) {
258
		if(!$valeurs || count($valeurs) == 0) {
288
			
259
			
289
			$identificateur = new IdentificationControleur();
260
			$identificateur = new IdentificationControleur();
290
			
261
			
291
			$donnees['titre'] = 'Erreur d\'inscription';
262
			$donnees['titre'] = 'Erreur d\'inscription';
292
			$donnees['message'] = 'Erreur : aucune demande d\'inscription ne correspond &agrave; ce lien <br />'.
263
			$donnees['message'] = 'Erreur : aucune demande d\'inscription ne correspond &agrave; ce lien <br />'.
293
			'Si votre demande d\'inscription date de moins de deux semaines, essayez de vous connecter avec les informations fournies lors de l\'inscription<br />'.
264
			'Si votre demande d\'inscription date de moins de deux semaines, essayez de vous connecter avec les informations fournies lors de l\'inscription<br />'.
294
			'Si votre demande d\'inscription date de plus de deux semaines, alors celle ci doit &ecirc;tre renouvel&eacute;e';
265
			'Si votre demande d\'inscription date de plus de deux semaines, alors celle ci doit &ecirc;tre renouvel&eacute;e';
295
		
266
		
296
			return $this->getVue(Config::get('dossier_squelettes_annuaires').'information_simple',$donnees).$identificateur->afficherFormulaireIdentification(Config::get('annuaire_defaut'), array());
267
			return $this->getVue(Config::get('dossier_squelettes_annuaires').'information_simple',$donnees).$identificateur->afficherFormulaireIdentification(Config::get('annuaire_defaut'), array());
297
		}
268
		}
298
 
269
 
299
		$this->chargerModele('AnnuaireModele');
270
		$this->chargerModele('AnnuaireModele');
300
 
271
 
301
		$id_annuaire = $valeurs['aa_id_annuaire'];
272
		$id_annuaire = $valeurs['aa_id_annuaire'];
302
		unset($valeurs['aa_id_annuaire']);
273
		unset($valeurs['aa_id_annuaire']);
303
 
274
 
304
		$this->chargerModele('MetadonneeModele');
275
		$this->chargerModele('MetadonneeModele');
305
 
276
 
306
		$verificateur = new VerificationControleur();
277
		$verificateur = new VerificationControleur();
307
 
278
 
308
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
279
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
309
 
280
 
310
		$valeurs_mappees = array();
281
		$valeurs_mappees = array();
311
		$valeurs_metadonnees = array();
282
		$valeurs_metadonnees = array();
312
 
283
 
313
		$mail_nouvel_inscrit = $valeurs['mail_'.$tableau_mappage[1]['champ_mail']];
284
		$mail_nouvel_inscrit = $valeurs['mail_'.$tableau_mappage[1]['champ_mail']];
314
		$pass_nouvel_inscrit = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
285
		$pass_nouvel_inscrit = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
315
 
286
 
316
		$valeurs['text_'.$tableau_mappage[1]['champ_nom']] = AppControleur::formaterMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_nom']]); 
287
		$valeurs['text_'.$tableau_mappage[1]['champ_nom']] = AppControleur::formaterMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_nom']]); 
317
		$nom = $valeurs['text_'.$tableau_mappage[1]['champ_nom']];
288
		$nom = $valeurs['text_'.$tableau_mappage[1]['champ_nom']];
318
		
289
		
319
		
290
		
320
		$mail = $mail_nouvel_inscrit;
291
		$mail = $mail_nouvel_inscrit;
321
		$pass = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
292
		$pass = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
322
		
293
		
323
		if(isset($tableau_mappage[0]['champ_prenom']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_prenom']])) {
294
		if(isset($tableau_mappage[0]['champ_prenom']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_prenom']])) {
324
			$valeurs['text_'.$tableau_mappage[1]['champ_prenom']] = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_prenom']]);
295
			$valeurs['text_'.$tableau_mappage[1]['champ_prenom']] = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_prenom']]);
325
			$prenom = $valeurs['text_'.$tableau_mappage[1]['champ_prenom']];
296
			$prenom = $valeurs['text_'.$tableau_mappage[1]['champ_prenom']];
326
		} else {
297
		} else {
327
			$prenom = '';
298
			$prenom = '';
328
		}
299
		}
329
		
300
		
330
		if(isset($tableau_mappage[0]['champ_pays']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_pays']])) {
301
		if(isset($tableau_mappage[0]['champ_pays']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_pays']])) {
331
			$pays = $valeurs['select_'.$tableau_mappage[1]['champ_pays']];
302
			$pays = $valeurs['select_'.$tableau_mappage[1]['champ_pays']];
332
		} else {
303
		} else {
333
			$pays = '';
304
			$pays = '';
334
		}
305
		}
335
 
306
 
336
		// on itère sur le tableau de valeur pour récupérer les métadonnées;
307
		// on itère sur le tableau de valeur pour récupérer les métadonnées;
337
		foreach($valeurs as $nom_champ => $valeur) {
308
		foreach($valeurs as $nom_champ => $valeur) {
338
 
309
 
339
			// pour chaque valeur
310
			// pour chaque valeur
340
			// on extrait l'id du champ
311
			// on extrait l'id du champ
341
			$ids_champ = mb_split("_",$nom_champ, 2);
312
			$ids_champ = mb_split("_",$nom_champ, 2);
342
 
313
 
343
			$type = $ids_champ[0];
314
			$type = $ids_champ[0];
344
			$condition = false;
315
			$condition = false;
345
			$id_champ = $ids_champ[1];
316
			$id_champ = $ids_champ[1];
346
 
317
 
347
			// on fait des vérifications et des remplacements sur certaines valeurs
318
			// on fait des vérifications et des remplacements sur certaines valeurs
348
			$valeur = $verificateur->remplacerValeurChampPourInsertion($type,$valeur,$mail_nouvel_inscrit);
319
			$valeur = $verificateur->remplacerValeurChampPourInsertion($type,$valeur,$mail_nouvel_inscrit);
349
 
320
 
350
			// Si le champ fait partie des champs mappés
321
			// Si le champ fait partie des champs mappés
351
			$cle_champ = array_search($id_champ, $tableau_mappage[1]);
322
			$cle_champ = array_search($id_champ, $tableau_mappage[1]);
352
			if($cle_champ) {
323
			if($cle_champ) {
353
				// on ajoute sa clé correspondante dans l'annuaire mappé et sa valeur dans le tableau des champs mappés
324
				// on ajoute sa clé correspondante dans l'annuaire mappé et sa valeur dans le tableau des champs mappés
354
				$valeurs_mappees[$tableau_mappage[0][$cle_champ]] = $valeur;
325
				$valeurs_mappees[$tableau_mappage[0][$cle_champ]] = $valeur;
355
				// et on supprime sa valeur du tableau de valeurs pour ne pas la retrouver lors
326
				// et on supprime sa valeur du tableau de valeurs pour ne pas la retrouver lors
356
				// de l'insertion des métadonnées
327
				// de l'insertion des métadonnées
357
				unset($valeurs[$nom_champ]);
328
				unset($valeurs[$nom_champ]);
358
			} else {
329
			} else {
359
				$valeurs_metadonnees[$nom_champ] = $valeur;
330
				$valeurs_metadonnees[$nom_champ] = $valeur;
360
			}
331
			}
361
		}
332
		}
362
 
333
 
363
		// cas spécial du champ pays ou l'on fait un double stockage des données
334
		// cas spécial du champ pays ou l'on fait un double stockage des données
364
		if(isset($tableau_mappage[0]['champ_pays']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_pays']])) {
335
		if(isset($tableau_mappage[0]['champ_pays']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_pays']])) {
365
			$pays = $valeurs_mappees[$tableau_mappage[0]['champ_pays']];
336
			$pays = $valeurs_mappees[$tableau_mappage[0]['champ_pays']];
366
			$valeurs_metadonnees[$tableau_mappage[1]['champ_pays']] = $pays;
337
			$valeurs_metadonnees[$tableau_mappage[1]['champ_pays']] = $pays;
367
			$pays = $this->MetadonneeModele->renvoyerCorrespondanceAbreviationId($pays);
338
			$pays = $this->MetadonneeModele->renvoyerCorrespondanceAbreviationId($pays);
368
			$valeurs_mappees[$tableau_mappage[0]['champ_pays']] = $pays;
339
			$valeurs_mappees[$tableau_mappage[0]['champ_pays']] = $pays;
369
		}
340
		}
370
 
341
 
371
		// obtenir l'id du nouvel arrivant en faisant un select sur le mail qui doit être unique
342
		// obtenir l'id du nouvel arrivant en faisant un select sur le mail qui doit être unique
372
		$id_nouvel_inscrit = $this->AnnuaireModele->ajouterInscriptionDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $tableau_mappage[0]);
343
		$id_nouvel_inscrit = $this->AnnuaireModele->ajouterInscriptionDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $tableau_mappage[0]);
373
 
344
 
374
		// les champs de metadonnees arrivent avec un identifiant sous la forme type_condition_id
345
		// les champs de metadonnees arrivent avec un identifiant sous la forme type_condition_id
375
		foreach($valeurs_metadonnees as $nom_champ => $valeur) {
346
		foreach($valeurs_metadonnees as $nom_champ => $valeur) {
376
 
347
 
377
			// pour chaque valeur
348
			// pour chaque valeur
378
			// on extrait l'id du champ
349
			// on extrait l'id du champ
379
			$ids_champ = mb_split("_",$nom_champ);
350
			$ids_champ = mb_split("_",$nom_champ);
380
			$id_champ = $ids_champ[count($ids_champ) - 1];
351
			$id_champ = $ids_champ[count($ids_champ) - 1];
381
 
352
 
382
			// Si l'insertion dans la base a réussi
353
			// Si l'insertion dans la base a réussi
383
			if($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_nouvel_inscrit,$valeur)) {
354
			if($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_nouvel_inscrit,$valeur)) {
384
				// on continue
355
				// on continue
385
			} else {
356
			} else {
386
 
357
 
387
				// Si une des insertions échoue, on supprime les méta valeurs déjà entrées.
358
				// Si une des insertions échoue, on supprime les méta valeurs déjà entrées.
388
				// La transaction du pauvre en quelque sorte
359
				// La transaction du pauvre en quelque sorte
389
				$this->MetadonneeModele->supprimerValeursMetadonneesParIdEnregistrementLie($id_nouvel_inscrit);
360
				$this->MetadonneeModele->supprimerValeursMetadonneesParIdEnregistrementLie($id_nouvel_inscrit);
390
				return false;
361
				return false;
391
			}
362
			}
392
		}
363
		}
393
 
364
 
394
			$appli_controleur = new ApplicationExterneControleur();
365
			$appli_controleur = new ApplicationExterneControleur();
395
 
366
 
396
			$params = array (
367
			$infos_nouvel_inscrit = array (
397
				'id_utilisateur' => $id_nouvel_inscrit,
368
				'id_utilisateur' => $id_nouvel_inscrit,
398
				'prenom' => $prenom,
369
				'prenom' => $prenom,
399
				'nom' => $nom,
370
				'nom' => $nom,
400
				'mail' => $mail,
371
				'mail' => $mail,
401
				'pass' => $pass,
372
				'pass' => $pass,
402
				'pays' => $pays,
373
				'pays' => $pays,
403
				'nouveau_pass' => '',
374
				'nouveau_pass' => '',
404
				'nouveau_mail' => ''
375
				'nouveau_mail' => ''
405
			);
376
			);
406
 
377
 
407
		// on crée un controleur qui appelle les webservice pour chaque application externe
378
		// on crée un controleur qui appelle les webservice pour chaque application externe
408
		$resumes_controleur = new ApplicationExterneControleur();
379
		$resumes_controleur = new ApplicationExterneControleur();
409
		$resumes_controleur->ajouterInscription($id_nouvel_inscrit, $params);
380
		$resumes_controleur->ajouterInscription($id_nouvel_inscrit, $infos_nouvel_inscrit);
410
 
381
 
411
		// Si tout a réussi on supprime les données d'inscription temporaire
382
		// Si tout a réussi on supprime les données d'inscription temporaire
412
		$this->DonneeTemporaireModele->supprimerDonneeTemporaire($identifiant);
383
		$this->DonneeTemporaireModele->supprimerDonneeTemporaire($identifiant);
413
 
384
		
-
 
385
		$infos_nouvel_inscrit['id_annuaire'] =  $id_annuaire;
-
 
386
		
-
 
387
		return $infos_nouvel_inscrit;
-
 
388
	}
-
 
389
	
-
 
390
	public function ajouterNouvelleInscriptionSansIdentifier($code_confirmation) {
-
 
391
		
-
 
392
		// TODO: ajouter un controle d'erreurs
-
 
393
		$inscription_ajout = $this->ajouterNouvelleInscription($code_confirmation);
-
 
394
		$id_annuaire = $inscription_ajout['id_annuaire'];
-
 
395
		
-
 
396
		return $this->afficherInscritsEnAttenteConfirmation($id_annuaire);
-
 
397
	}
-
 
398
	
-
 
399
	public function ajouterNouvelleInscriptionEtIdentifier($code_confirmation) {
-
 
400
		
-
 
401
		$inscription_ajout = $this->ajouterNouvelleInscription($code_confirmation);
-
 
402
		
-
 
403
		$mail = $inscription_ajout['mail'];
-
 
404
		$pass = $inscription_ajout['pass'];
-
 
405
		$id_nouvel_inscrit = $inscription_ajout['id_utilisateur'];
-
 
406
		$prenom = $inscription_ajout['prenom'];
-
 
407
		$nom = $inscription_ajout['nom'];
-
 
408
		$id_annuaire = $inscription_ajout['id_annuaire'];
-
 
409
		
414
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
410
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
415
 
411
 
416
		// Identifier l'utilisateur !
412
		// Identifier l'utilisateur !
417
		$identificateur = new IdentificationControleur();
413
		$identificateur = new IdentificationControleur();
418
		
414
		
419
		if(config::get('identification')) {
415
		if(config::get('identification')) {
420
			$identificateur->deloggerUtilisateur();
416
			$identificateur->deloggerUtilisateur();
421
		}
417
		}
422
		
418
		
423
		$identificateur->loggerUtilisateur($mail, $pass);
419
		$identificateur->loggerUtilisateur($mail, $pass);
424
 
420
 
425
		if($this->annuaireAvoirPageAccueilPostInscription($annuaire['informations']['aa_code'])) {
421
		if($this->annuaireAvoirPageAccueilPostInscription($annuaire['informations']['aa_code'])) {
426
			// on l'affiche
422
			// on l'affiche
427
			$donnees = array('id_utilisateur' => $id_nouvel_inscrit, 'id_annuaire' => $id_annuaire);
423
			$donnees = array('id_utilisateur' => $id_nouvel_inscrit, 'id_annuaire' => $id_annuaire);
428
			return $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_inscription_confirmation', $donnees);
424
			return $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_inscription_confirmation', $donnees);
429
 
425
 
430
		} else {
426
		} else {
431
			// sinon on le redirige
427
			// sinon on le redirige
432
			return $this->afficherFicheUtilisateur($id_annuaire, $id_nouvel_inscrit);
428
			return $this->afficherFicheUtilisateur($id_annuaire, $id_nouvel_inscrit);
433
		}
429
		}
434
	}
430
	}
-
 
431
	
-
 
432
	public function afficherInscritsEnAttenteConfirmation($id_annuaire) {
-
 
433
		
-
 
434
		$donnees['id_annuaire'] = $id_annuaire;
-
 
435
		
-
 
436
		$this->chargerModele('AnnuaireModele');
-
 
437
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
-
 
438
		
-
 
439
		$this->chargerModele('DonneeTemporaireModele');
-
 
440
		
-
 
441
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
442
		
-
 
443
		$inscrits_en_attente = $this->DonneeTemporaireModele->chargerListeDonneeTemporaire('8');
-
 
444
				
-
 
445
		$inscrits_en_attente_formates = array();
-
 
446
		
-
 
447
		foreach($inscrits_en_attente as $inscrit_attente) {
-
 
448
			
-
 
449
			if($id_annuaire == $inscrit_attente['aa_id_annuaire']) { 
-
 
450
				
-
 
451
				$lien_confirmation_inscription = AppControleur::getUrlConfirmationInscriptionAdmin($inscrit_attente['code_confirmation']);
-
 
452
				$lien_suppression_inscription = AppControleur::getUrlSuppressionInscriptionTemporaire($id_annuaire, $inscrit_attente['code_confirmation']);
-
 
453
 
-
 
454
				$date_inscription_formatee = AppControleur::formaterDateMysqlVersDateAnnuaire($inscrit_attente['date']);
-
 
455
				
-
 
456
				$inscrits_en_attente_formates[] = array('lien_confirmation' => $lien_confirmation_inscription,
-
 
457
													'lien_suppression' => $lien_suppression_inscription,
-
 
458
													'date_inscription' => $date_inscription_formatee,
-
 
459
													'mail' => $inscrit_attente['mail_'.$tableau_mappage[1]['champ_mail']],
-
 
460
													'nom' => $inscrit_attente['text_'.$tableau_mappage[1]['champ_nom']],
-
 
461
													'prenom' => $inscrit_attente['text_'.$tableau_mappage[1]['champ_prenom']]);
-
 
462
			}
-
 
463
		}
-
 
464
		
-
 
465
		$donnees['inscrits_en_attente'] = $inscrits_en_attente_formates;
-
 
466
				
-
 
467
		return $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire_inscrits_en_attente', $donnees);
-
 
468
	}
-
 
469
	
-
 
470
	public function supprimerInscriptionEnAttente($id_annuaire, $id_inscrit_en_attente) {
-
 
471
	
-
 
472
		$this->chargerModele('DonneeTemporaireModele');
-
 
473
		$inscrits_en_attente = $this->DonneeTemporaireModele->supprimerDonneeTemporaire($id_inscrit_en_attente);
-
 
474
		
-
 
475
		return $this->afficherInscritsEnAttenteConfirmation($id_annuaire);	
-
 
476
	}
435
	
477
	
436
	public function afficherPage($id_annuaire, $id_utilisateur, $page) {
478
	public function afficherPage($id_annuaire, $id_utilisateur, $page) {
437
		
479
		
438
		$donnees['id_annuaire'] = $id_annuaire;
480
		$donnees['id_annuaire'] = $id_annuaire;
439
		$donnees['id_utilisateur'] = $id_utilisateur;
481
		$donnees['id_utilisateur'] = $id_utilisateur;
440
		
482
		
441
			$this->chargerModele('AnnuaireModele');
483
		$this->chargerModele('AnnuaireModele');
442
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
484
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
443
		
485
		
444
		$donnees['aa_id_annuaire'] = $id_annuaire;
486
		$donnees['aa_id_annuaire'] = $id_annuaire;
445
		
487
		
446
		$this->chargerModele('MetadonneeModele');
488
		$this->chargerModele('MetadonneeModele');
447
		$champ_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
489
		$champ_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
448
		$valeurs_metadonnees = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
490
		$valeurs_metadonnees = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
449
		
491
		
450
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
492
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
451
		
-
 
452
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
-
 
453
		// pour ne charger que ce qui est nécéssaire
493
		
454
		foreach($champ_metadonnees as $champ_metadonnee) {
494
		foreach($champ_metadonnees as $champ_metadonnee) {
455
 
495
 
456
			$id_champ = $champ_metadonnee['amc_id_champ'];
496
			$id_champ = $champ_metadonnee['amc_id_champ'];
457
			$nom_champ = $champ_metadonnee['amc_abreviation'];
497
			$nom_champ = $champ_metadonnee['amc_abreviation'];
458
			
498
			
459
			if(isset($valeurs_metadonnees[$nom_champ])) {
499
			if(isset($valeurs_metadonnees[$nom_champ])) {
460
				//echo Debug::printr($valeurs_metadonnees[$nom_champ]).'<br />';
-
 
461
				$champ_metadonnee['valeur_defaut'] = $valeurs_metadonnees[$nom_champ];
500
				$champ_metadonnee['valeur_defaut'] = $valeurs_metadonnees[$nom_champ];
462
			}
501
			}
463
 
502
 
464
			$champ_metadonnee['aa_id_annuaire'] = $id_annuaire;
503
			$champ_metadonnee['aa_id_annuaire'] = $id_annuaire;
465
			// on charge le formulaire d'affichage de chacune des métadonnées
504
			// on charge le formulaire d'affichage de chacune des métadonnées
466
			$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$champ_metadonnee);
505
			$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$champ_metadonnee);
467
			$donnees['valeurs'] = $valeurs_metadonnees;
506
			$donnees['valeurs'] = $valeurs_metadonnees;
468
		}
507
		}
469
		
508
		
470
		$navigateur = new NavigationControleur();
509
		$navigateur = new NavigationControleur();
471
		$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, $page);
510
		$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, $page);
472
		
511
		
473
		if ($this->templateExiste($page, '/pages/')) {
512
		if ($this->templateExiste($page, '/pages/')) {
474
			return $this->getVue(Config::get('dossier_squelettes_pages').$page, $donnees);
513
			return $this->getVue(Config::get('dossier_squelettes_pages').$page, $donnees);
475
		}
514
		}
476
	}
515
	}
477
 
516
 
478
	/**
517
	/**
479
	 * Affiche la fiche principale d'un utilisateur
518
	 * Affiche la fiche principale d'un utilisateur
480
	 * @param int $id_annuaire l'identifiant de l'annuaire
519
	 * @param int $id_annuaire l'identifiant de l'annuaire
481
	 * @param int $id_utilisateur l'identifiant de l'utilisateur
520
	 * @param int $id_utilisateur l'identifiant de l'utilisateur
482
	 * @return string la vue contenant la fiche utilisateur
521
	 * @return string la vue contenant la fiche utilisateur
483
	 */
522
	 */
484
	public function afficherFicheUtilisateur($id_annuaire, $id_utilisateur) {
523
	public function afficherFicheUtilisateur($id_annuaire, $id_utilisateur) {
485
		
524
		
486
		// Chargement des informations de l'utilisateur dans la table annuaire principale
525
		// Chargement des informations de l'utilisateur dans la table annuaire principale
487
		$this->chargerModele('AnnuaireModele');
526
		$this->chargerModele('AnnuaireModele');
488
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
527
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
489
		
528
		
490
		$tableau_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
529
		$tableau_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
491
 
530
 
492
		$donnees['id_annuaire'] = $id_annuaire;
531
		$donnees['id_annuaire'] = $id_annuaire;
493
		$donnees['id_utilisateur'] = $id_utilisateur;
532
		$donnees['id_utilisateur'] = $id_utilisateur;
494
		
533
		
495
		$verificateur = new VerificationControleur();
534
		$verificateur = new VerificationControleur();
496
		
535
		
497
		$champs = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
536
		$champs = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
498
		
537
		
499
		$donnees['tableau_mappage'] = $tableau_mappage[1];
538
		$donnees['tableau_mappage'] = $tableau_mappage[1];
500
 
539
 
501
		$donnees['champs'] = $champs;
540
		$donnees['champs'] = $champs;
502
		
541
		
503
		$navigateur = new NavigationControleur();
542
		$navigateur = new NavigationControleur();
504
		$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, 'fiche');
543
		$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, 'fiche');
505
		
544
		
506
		// S'il existe une fiche spécifique pour l'annuaire
545
		// S'il existe une fiche spécifique pour l'annuaire
507
		if($this->annuaireAvoirFicheUtilisateur($annuaire['informations']['aa_code'])) {
546
		if($this->annuaireAvoirFicheUtilisateur($annuaire['informations']['aa_code'])) {
508
			// on l'affiche
547
			// on l'affiche
509
			$fiche_inscrit = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_fiche',$donnees);
548
			$fiche_inscrit = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_fiche',$donnees);
510
		} else {
549
		} else {
511
			// sinon on en génère une minimale par défaut
550
			// sinon on en génère une minimale par défaut
512
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
551
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
513
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
552
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
514
			$fiche_inscrit = $this->genererFicheInscrit($donnees);
553
			$fiche_inscrit = $this->genererFicheInscrit($donnees);
515
			
554
			
516
		}
555
		}
517
 
556
 
518
		return $fiche_inscrit;
557
		return $fiche_inscrit;
519
	}
558
	}
520
 
559
 
521
	/** Affiche le resumé des contributions d'un utilisateur
560
	/** Affiche le resumé des contributions d'un utilisateur
522
	 * @param int $id_annuaire l'identifiant de l'annuaire
561
	 * @param int $id_annuaire l'identifiant de l'annuaire
523
	 * @param int $id_utilisateur l'identifiant de l'utilisateur
562
	 * @param int $id_utilisateur l'identifiant de l'utilisateur
524
	 * @return string la vue contenant les contributions utilisateur
563
	 * @return string la vue contenant les contributions utilisateur
525
	 */
564
	 */
526
	public function afficherFicheResumeUtilisateur($id_annuaire, $id_utilisateur) {
565
	public function afficherFicheResumeUtilisateur($id_annuaire, $id_utilisateur) {
527
 
566
 
528
		$this->chargerModele('AnnuaireModele');
567
		$this->chargerModele('AnnuaireModele');
529
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
568
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
530
		
569
		
531
		$champs = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
570
		$champs = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
532
		$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur);
571
		$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur);
533
 
572
 
534
		$donnees['id_annuaire'] = $id_annuaire;
573
		$donnees['id_annuaire'] = $id_annuaire;
535
		$donnees['id_utilisateur'] = $id_utilisateur;
574
		$donnees['id_utilisateur'] = $id_utilisateur;
536
		$donnees['mail_utilisateur'] = $mail_utilisateur;
575
		$donnees['mail_utilisateur'] = $mail_utilisateur;
537
 
576
 
538
		$url_modification_profil = self::getUrlModificationProfil($id_annuaire, $id_utilisateur);
577
		$url_modification_profil = self::getUrlModificationProfil($id_annuaire, $id_utilisateur);
539
 
578
 
540
		$url_oubli_mdp = self::getUrlOubliMotDePasse($id_annuaire, $id_utilisateur);
579
		$url_oubli_mdp = self::getUrlOubliMotDePasse($id_annuaire, $id_utilisateur);
541
 
580
 
542
		$donnees['url_oubli_mdp'] = $url_oubli_mdp;
581
		$donnees['url_oubli_mdp'] = $url_oubli_mdp;
543
		$donnees['url_modification_profil'] = $url_modification_profil;
582
		$donnees['url_modification_profil'] = $url_modification_profil;
544
 
583
 
545
		$donnees['champs'] = $champs;
584
		$donnees['champs'] = $champs;
546
		
-
 
547
		$donnees['tableau_mappage'] = $tableau_mappage[1];
-
 
548
		
585
		
549
		$navigateur = new NavigationControleur();
586
		$navigateur = new NavigationControleur();
550
		$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, 'resume');
587
		$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, 'resume');
551
 
588
 
552
		// on crée un controleur appelle les hooks de résumé pour chaque application externe
589
		// on crée un controleur appelle les hooks de résumé pour chaque application externe
553
		$resumes_controleur = new ApplicationExterneControleur();
590
		$resumes_controleur = new ApplicationExterneControleur();
554
		
591
		
555
		$donnees['resumes'] = $resumes_controleur->obtenirResume($id_utilisateur,$mail_utilisateur);
592
		$donnees['resumes'] = $resumes_controleur->obtenirResume($id_utilisateur,$mail_utilisateur);
556
		
593
		
557
		$donnees['carte_id'] = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_carte_id',$donnees);
594
		$donnees['carte_id'] = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_carte_id',$donnees);
558
 
595
 
559
		$fiche_contrib = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_resume',$donnees);
596
		$fiche_contrib = $this->getVue(Config::get('dossier_squelettes_fiches').$annuaire['informations']['aa_code'].'_resume',$donnees);
560
 
597
 
561
		return $fiche_contrib;
598
		return $fiche_contrib;
562
	}
599
	}
563
 
600
 
564
	public function gererInscriptionExterne($id_annuaire, $id_utilisateur) {
601
	public function gererInscriptionExterne($id_annuaire, $id_utilisateur) {
565
 
602
 
566
		$this->chargerModele('AnnuaireModele');
603
		$this->chargerModele('AnnuaireModele');
567
		$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur);
604
		$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur);
568
 
605
 
569
		$donnees['id_annuaire'] = $id_annuaire;
606
		$donnees['id_annuaire'] = $id_annuaire;
570
		$donnees['id_utilisateur'] = $id_utilisateur;
607
		$donnees['id_utilisateur'] = $id_utilisateur;
571
		
-
 
572
		$url_modification_profil = new Url(Config::get('base_url_application'));
-
 
573
		$url_modification_profil->setVariableRequete('m','annuaire_formulaire_modification_inscription');
-
 
574
		$url_modification_profil->setVariableRequete('id_annuaire',$id_annuaire);
608
		
575
		$url_modification_profil->setVariableRequete('id_utilisateur',$id_utilisateur);
609
		$url_modification_profil = self::getUrlModificationProfil($id_annuaire,$id_utilisateur);
576
 
-
 
577
		$url_oubli_mdp = new Url(Config::get('base_url_application'));
-
 
578
		$url_oubli_mdp->setVariableRequete('m','annuaire_afficher_formulaire_oubli_mdp');
-
 
579
		$url_oubli_mdp->setVariableRequete('id_annuaire',$id_annuaire);
610
 
580
		$url_oubli_mdp->setVariableRequete('id_utilisateur',$id_utilisateur);
611
		$url_oubli_mdp = self::getUrlOubliMotDePasse($id_annuaire,$id_utilisateur);
581
 
612
 
582
		$donnees['url_oubli_mdp'] = $url_oubli_mdp;
613
		$donnees['url_oubli_mdp'] = $url_oubli_mdp;
583
		$donnees['url_modification_profil'] = $url_modification_profil;
614
		$donnees['url_modification_profil'] = $url_modification_profil;
584
 
615
 
585
		// on crée un controleur appelle les hooks de résumé pour chaque application externe
616
		// on crée un controleur appelle les hooks de résumé pour chaque application externe
586
		$resumes_controleur = new ApplicationExterneControleur();
617
		$resumes_controleur = new ApplicationExterneControleur();
587
 
618
 
588
		$donnees['champs'] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
619
		$donnees['champs'] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
589
		
-
 
590
		$donnees['tableau_mappage'] = $tableau_mappage[1];
-
 
591
		
620
		
592
		$navigateur = new NavigationControleur();
621
		$navigateur = new NavigationControleur();
593
		$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, 'gestion');
622
		$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, 'gestion');
594
		
623
		
595
		//Debug::printr($champs);
624
		//Debug::printr($champs);
596
		$donnees['resumes'] = $resumes_controleur->gererInscription($id_utilisateur,$mail_utilisateur);
625
		$donnees['resumes'] = $resumes_controleur->gererInscription($id_utilisateur,$mail_utilisateur);
597
		$donnees['carte_id'] = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_carte_id',$donnees);
626
		$donnees['carte_id'] = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_carte_id',$donnees);
598
 
627
 
599
		$fiche_contrib = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_gestion_inscription',$donnees);
628
		$fiche_contrib = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_gestion_inscription',$donnees);
600
 
629
 
601
		return $fiche_contrib;
630
		return $fiche_contrib;
602
	}
631
	}
603
 
632
 
604
	public function afficherFormulaireModificationInscription($id_annuaire, $id_utilisateur, $erreurs = array()) {
633
	public function afficherFormulaireModificationInscription($id_annuaire, $id_utilisateur, $erreurs = array()) {
605
		
634
		
606
		$this->chargerModele('AnnuaireModele');
635
		$this->chargerModele('AnnuaireModele');
607
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
636
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
608
		
637
		
609
		$donnees['aa_id_annuaire'] = $id_annuaire;
638
		$donnees['aa_id_annuaire'] = $id_annuaire;
610
		
639
		
611
		$this->chargerModele('MetadonneeModele');
640
		$this->chargerModele('MetadonneeModele');
612
		$champ_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
641
		$champ_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
613
		$valeurs_metadonnees = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
642
		$valeurs_metadonnees = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
614
		
643
		
615
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
644
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
616
		
645
		
617
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
646
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
618
		// pour ne charger que ce qui est nécéssaire
647
		// pour ne charger que ce qui est nécéssaire
619
		foreach($champ_metadonnees as $champ_metadonnee) {
648
		foreach($champ_metadonnees as $champ_metadonnee) {
620
 
649
 
621
			$id_champ = $champ_metadonnee['amc_id_champ'];
650
			$id_champ = $champ_metadonnee['amc_id_champ'];
622
			$nom_champ = $champ_metadonnee['amc_abreviation'];
651
			$nom_champ = $champ_metadonnee['amc_abreviation'];
623
			
652
			
624
			if(isset($valeurs_metadonnees[$nom_champ])) {
653
			if(isset($valeurs_metadonnees[$nom_champ])) {
625
				//echo Debug::printr($valeurs_metadonnees[$nom_champ]).'<br />';
-
 
626
				$champ_metadonnee['valeur_defaut'] = $valeurs_metadonnees[$nom_champ];
654
				$champ_metadonnee['valeur_defaut'] = $valeurs_metadonnees[$nom_champ];
627
			}
655
			}
628
 
656
 
629
			$champ_metadonnee['aa_id_annuaire'] = $id_annuaire;
657
			$champ_metadonnee['aa_id_annuaire'] = $id_annuaire;
630
			// on charge le formulaire d'affichage de chacune des métadonnées
658
			// on charge le formulaire d'affichage de chacune des métadonnées
631
			$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$champ_metadonnee);
659
			$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$champ_metadonnee);
632
 
660
 
633
		}
661
		}
634
		
662
		
635
		$donnees['tableau_mappage'] = $tableau_mappage[1];
663
		$donnees['tableau_mappage'] = $tableau_mappage[1];
636
 
664
 
637
		$donnees['id_utilisateur'] = $id_utilisateur;
665
		$donnees['id_utilisateur'] = $id_utilisateur;
638
		$donnees['erreurs'] = $erreurs;
666
		$donnees['erreurs'] = $erreurs;
639
 
667
 
640
 
668
 
641
		// Si le formulaire spécifique à l'annuaire existe, on l'affiche
669
		// Si le formulaire spécifique à l'annuaire existe, on l'affiche
642
		if($this->annuaireAvoirFormulaireModificationInscription($annuaire['informations']['aa_code'])) {
670
		if($this->annuaireAvoirFormulaireModificationInscription($annuaire['informations']['aa_code'])) {
643
			
671
			
644
			// Sinon on prend celui par defaut
672
			// Sinon on prend celui par defaut
645
			$formulaire_modification = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_modification',$donnees);
673
			$formulaire_modification = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_modification',$donnees);
646
			
674
			
647
		} else {
675
		} else {
648
			
676
			
649
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
677
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
650
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
678
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
651
			
679
			
652
			$formulaire_modification = $this->genererFormulaireModificationInscription($donnees);
680
			$formulaire_modification = $this->genererFormulaireModificationInscription($donnees);
653
		}
681
		}
654
		
682
		
655
		return $formulaire_modification;
683
		return $formulaire_modification;
656
 
684
 
657
	}
685
	}
658
 
686
 
659
	public function modifierInscription($valeurs) {
687
	public function modifierInscription($valeurs) {
660
		
688
		
661
		$this->chargerModele('MetadonneeModele');
689
		$this->chargerModele('MetadonneeModele');
662
 
690
 
663
		$id_utilisateur = $valeurs['id_utilisateur'];
691
		$id_utilisateur = $valeurs['id_utilisateur'];
664
		unset($valeurs['id_utilisateur']);
692
		unset($valeurs['id_utilisateur']);
665
 
693
 
666
		$id_annuaire = $valeurs['aa_id_annuaire'];
694
		$id_annuaire = $valeurs['aa_id_annuaire'];
667
		unset($valeurs['aa_id_annuaire']);
695
		unset($valeurs['aa_id_annuaire']);
668
 
696
 
669
		$this->chargerModele('AnnuaireModele');
697
		$this->chargerModele('AnnuaireModele');
670
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
698
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
671
 
699
 
672
		$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
700
		$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
673
		$ancien_mail = $mail_utilisateur;
701
		$ancien_mail = $mail_utilisateur;
674
 
702
 
675
		$verificateur = new VerificationControleur();
703
		$verificateur = new VerificationControleur();
676
 
704
 
677
		$valeurs_mappees = array();
705
		$valeurs_mappees = array();
678
		$valeurs_metadonnees = array();
706
		$valeurs_metadonnees = array();
679
 
707
 
680
		$erreurs = array();
708
		$erreurs = array();
681
 
709
 
682
		// on itère sur le tableau de valeur pour récupérer les métadonnées
710
		// on itère sur le tableau de valeur pour récupérer les métadonnées
683
		// et les valeurs
711
		// et les valeurs
684
		foreach($valeurs as $nom_champ => $valeur) {
712
		foreach($valeurs as $nom_champ => $valeur) {
685
 
713
 
686
			// pour chaque valeur
714
			// pour chaque valeur
687
			// on extrait l'id du champ
715
			// on extrait l'id du champ
688
			$ids_champ = mb_split("_",$nom_champ);
716
			$ids_champ = mb_split("_",$nom_champ);
689
 
717
 
690
			$confirmation = false;
718
			$confirmation = false;
691
			$valeur_a_ignorer = false;
719
			$valeur_a_ignorer = false;
692
 
720
 
693
			// l'identifiant du champ est la dernière valeur du tableau
721
			// l'identifiant du champ est la dernière valeur du tableau
694
			if(count($ids_champ) == 3) {
722
			if(count($ids_champ) == 3) {
695
 
723
 
696
				$type = $ids_champ[0];
724
				$type = $ids_champ[0];
697
				$id_champ = $ids_champ[2];
725
				$id_champ = $ids_champ[2];
698
				$condition = $ids_champ[1];
726
				$condition = $ids_champ[1];
699
 
727
 
700
			} else {
728
			} else {
701
				$type = $ids_champ[0];
729
				$type = $ids_champ[0];
702
				$condition = false;
730
				$condition = false;
703
				$id_champ = $ids_champ[1];
731
				$id_champ = $ids_champ[1];
704
			}
732
			}
705
 
733
 
706
			if($type == 'checkbox' && $condition != 'hidden') {
734
			if($type == 'checkbox' && $condition != 'hidden') {
707
				// on récupère la valeur
735
				// on récupère la valeur
708
					$nom_champ = $type.'_'.$id_champ;
736
					$nom_champ = $type.'_'.$id_champ;
709
					$valeur = $valeurs[$type.'_'.$id_champ];
737
					$valeur = $valeurs[$type.'_'.$id_champ];
710
			}
738
			}
711
 
739
 
712
			// cas de la checkbox qui devrait être là mais pas cochée
740
			// cas de la checkbox qui devrait être là mais pas cochée
713
			if($condition == 'hidden') {
741
			if($condition == 'hidden') {
714
				
742
				
715
				if(!isset($valeurs[$type.'_'.$id_champ])) {
743
				if(!isset($valeurs[$type.'_'.$id_champ])) {
716
					// dans ce cas là on fabrique une valeur qui vaut 0
744
					// dans ce cas là on fabrique une valeur qui vaut 0
717
					$nom_champ = $type.'_'.$id_champ;
745
					$nom_champ = $type.'_'.$id_champ;
718
					$valeur = '0';
746
					$valeur = '0';
719
				} else {
747
				} else {
720
					// sinon la valeur a déjà été traitée et doit être ignorée
748
					// sinon la valeur a déjà été traitée et doit être ignorée
721
					$valeur_a_ignorer = true;
749
					$valeur_a_ignorer = true;
722
				}
750
				}
723
			}
751
			}
724
 
752
 
725
			if($type ==  'mail') {
753
			if($type ==  'mail') {
726
				$mail_utilisateur = $valeur;
754
				$mail_utilisateur = $valeur;
727
			}
755
			}
728
 
756
 
729
			// cas du changement de mot de passe
757
			// cas du changement de mot de passe
730
			if($type == 'password') {
758
			if($type == 'password') {
731
 
759
 
732
				if($condition == 'conf') {
760
				if($condition == 'conf') {
733
					$valeur_a_ignorer = true;
761
					$valeur_a_ignorer = true;
734
				}
762
				}
735
 
763
 
736
				$tentative_changemement_mdp = false;
764
				$tentative_changemement_mdp = false;
737
 
765
 
738
				if(isset($valeurs[$type.'_conf_'.$id_champ]) && trim($valeurs[$type.'_conf_'.$id_champ]) != '') {
766
				if(isset($valeurs[$type.'_conf_'.$id_champ]) && trim($valeurs[$type.'_conf_'.$id_champ]) != '') {
739
					$tentative_changemement_mdp = true;
767
					$tentative_changemement_mdp = true;
740
				} else {
768
				} else {
741
					$valeur_a_ignorer = true;
769
					$valeur_a_ignorer = true;
742
				}
770
				}
743
 
771
 
744
				if($tentative_changemement_mdp) {
772
				if($tentative_changemement_mdp) {
745
					$confirmation = $valeurs[$type.'_conf_'.$id_champ];
773
					$confirmation = $valeurs[$type.'_conf_'.$id_champ];
746
				}
774
				}
747
			}
775
			}
748
 
776
 
749
			// Si la valeur n'est présente dans le formulaire que pour des raisons de vérification
777
			// Si la valeur n'est présente dans le formulaire que pour des raisons de vérification
750
			// on passe à l'iteration suivante
778
			// on passe à l'iteration suivante
751
			if($valeur_a_ignorer) {
779
			if($valeur_a_ignorer) {
752
				continue;
780
				continue;
753
			}
781
			}
754
 
782
 
755
			$verification = $verificateur->verifierErreurChampModification($id_annuaire, $id_utilisateur, $type , $valeur, $confirmation);
783
			$verification = $verificateur->verifierErreurChampModification($id_annuaire, $id_utilisateur, $type , $valeur, $confirmation);
756
 
784
 
757
			if($verification[0] == false) {
785
			if($verification[0] == false) {
758
				$erreurs[$type.'_'.$id_champ] = $verification[1];
786
				$erreurs[$type.'_'.$id_champ] = $verification[1];
759
 
787
 
760
			}
788
			}
761
 
789
 
762
			// on fait des vérifications et des remplacements sur certaines valeurs
790
			// on fait des vérifications et des remplacements sur certaines valeurs
763
			// et quelques fois des actions externes
791
			// et quelques fois des actions externes
764
			$valeur = $verificateur->remplacerValeurChampPourModification($id_annuaire, $id_utilisateur, $type, $valeur, $mail_utilisateur);
792
			$valeur = $verificateur->remplacerValeurChampPourModification($id_annuaire, $id_utilisateur, $type, $valeur, $mail_utilisateur);
765
 
793
 
766
			// Si le champ fait partie des champs mappés
794
			// Si le champ fait partie des champs mappés
767
			$cle_champ = array_search($id_champ, $tableau_mappage[1]);
795
			$cle_champ = array_search($id_champ, $tableau_mappage[1]);
768
			if($cle_champ) {
796
			if($cle_champ) {
769
				// on ajoute sa clé correspondante dans l'annuaire mappé et sa valeur dans le tableau des champs mappés
797
				// on ajoute sa clé correspondante dans l'annuaire mappé et sa valeur dans le tableau des champs mappés
770
				$valeurs_mappees[$tableau_mappage[0][$cle_champ]] = $valeur;
798
				$valeurs_mappees[$tableau_mappage[0][$cle_champ]] = $valeur;
771
			} else {
799
			} else {
772
				// sinon, il est stocké dans les valeurs de metadonnées
800
				// sinon, il est stocké dans les valeurs de metadonnées
773
				$valeurs_metadonnees[$id_champ] = $valeur;
801
				$valeurs_metadonnees[$id_champ] = $valeur;
774
			}
802
			}
775
		}
803
		}
776
		
804
		
777
		if(count($erreurs) > 0) {
805
		if(count($erreurs) > 0) {
778
			return $this->afficherFormulaireModificationInscription($id_annuaire,$id_utilisateur,$erreurs);
806
			return $this->afficherFormulaireModificationInscription($id_annuaire,$id_utilisateur,$erreurs);
779
		}
807
		}
780
 
808
 
781
 
809
 
782
		if(isset($tableau_mappage[0]['champ_pays']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_pays']])) {
810
		if(isset($tableau_mappage[0]['champ_pays']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_pays']])) {
783
			$pays = $valeurs_mappees[$tableau_mappage[0]['champ_pays']];
811
			$pays = $valeurs_mappees[$tableau_mappage[0]['champ_pays']];
784
			$valeurs_metadonnees[$tableau_mappage[1]['champ_pays']] = $pays;
812
			$valeurs_metadonnees[$tableau_mappage[1]['champ_pays']] = $pays;
785
			$pays = $this->MetadonneeModele->renvoyerCorrespondanceAbreviationId($pays);
813
			$pays = $this->MetadonneeModele->renvoyerCorrespondanceAbreviationId($pays);
786
			$valeurs_mappees[$tableau_mappage[0]['champ_pays']] = $pays;
814
			$valeurs_mappees[$tableau_mappage[0]['champ_pays']] = $pays;
787
		} else {
815
		} else {
788
			$pays = '';
816
			$pays = '';
789
		}
817
		}
790
		
818
		
791
		if($ancien_mail != $mail_utilisateur) {
819
		if($ancien_mail != $mail_utilisateur) {
792
			$changement_mail = true;
820
			$changement_mail = true;
793
		}
821
		}
794
			
822
			
795
		if(isset($tableau_mappage[0]['champ_prenom']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_prenom']])) {
823
		if(isset($tableau_mappage[0]['champ_prenom']) && isset($valeurs_mappees[$tableau_mappage[0]['champ_prenom']])) {
796
			$valeurs['text_'.$tableau_mappage[1]['champ_prenom']] = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_prenom']]);
824
			$valeurs['text_'.$tableau_mappage[1]['champ_prenom']] = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_prenom']]);
797
			$prenom = $valeurs['text_'.$tableau_mappage[1]['champ_prenom']];
825
			$prenom = $valeurs['text_'.$tableau_mappage[1]['champ_prenom']];
798
		} else {
826
		} else {
799
			$prenom = '';
827
			$prenom = '';
800
		}
828
		}
801
		
829
		
802
		//echo 'ancien_nom '.$valeurs['text_'.$tableau_mappage[1]['champ_nom']].'<br />';
830
		//echo 'ancien_nom '.$valeurs['text_'.$tableau_mappage[1]['champ_nom']].'<br />';
803
 
831
 
804
		$valeurs['text_'.$tableau_mappage[1]['champ_nom']] =  AppControleur::formaterMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_nom']]);
832
		$valeurs['text_'.$tableau_mappage[1]['champ_nom']] =  AppControleur::formaterMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_nom']]);
805
		$nom = $valeurs['text_'.$tableau_mappage[1]['champ_nom']];
833
		$nom = $valeurs['text_'.$tableau_mappage[1]['champ_nom']];
806
		//		echo 'nouveau_nom '.$nom;
834
		//		echo 'nouveau_nom '.$nom;
807
		//exit;
835
		//exit;
808
		$ancien_mail = $ancien_mail;
836
		$ancien_mail = $ancien_mail;
809
		$mail = $mail_utilisateur;
837
		$mail = $mail_utilisateur;
810
		$pass = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
838
		$pass = $valeurs['password_'.$tableau_mappage[1]['champ_pass']];
811
 
839
 
812
		$this->chargerModele('AnnuaireModele');
840
		$this->chargerModele('AnnuaireModele');
813
		$modification_annuaire = $this->AnnuaireModele->modifierInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur ,$valeurs_mappees, $tableau_mappage[0]);
841
		$modification_annuaire = $this->AnnuaireModele->modifierInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur ,$valeurs_mappees, $tableau_mappage[0]);
814
		
842
		
815
		$nouveau_mail = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
843
		$nouveau_mail = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
816
		
844
		
817
		$changement_mail = false;
845
		$changement_mail = false;
818
 
846
 
819
		// Si le mail a changé alors il faut appeler les applications externes pour modification
847
		// Si le mail a changé alors il faut appeler les applications externes pour modification
820
		if($ancien_mail != $mail_utilisateur || $tentative_changemement_mdp) {
848
		if($ancien_mail != $mail_utilisateur || $tentative_changemement_mdp) {
821
			
849
			
822
			$appli_controleur = new ApplicationExterneControleur();
850
			$appli_controleur = new ApplicationExterneControleur();
823
 
851
 
824
			$params = array (
852
			$params = array (
825
				'id_utilisateur' => $id_utilisateur,
853
				'id_utilisateur' => $id_utilisateur,
826
				'prenom' => $prenom,
854
				'prenom' => $prenom,
827
				'nom' => $nom,
855
				'nom' => $nom,
828
				'mail' => $ancien_mail,
856
				'mail' => $ancien_mail,
829
				'pass' => $pass,
857
				'pass' => $pass,
830
				'pays' => $pays,
858
				'pays' => $pays,
831
				'nouveau_pass' => $pass,
859
				'nouveau_pass' => $pass,
832
				'nouveau_mail' => $nouveau_mail
860
				'nouveau_mail' => $nouveau_mail
833
			);
861
			);
834
 
862
 
835
			$appli_controleur->modifierInscription($id_utilisateur, $params);
863
			$appli_controleur->modifierInscription($id_utilisateur, $params);
836
		}
864
		}
837
 
865
 
838
		// les champs arrivent avec un identifiant sous la forme type_xxx_id
866
		// les champs arrivent avec un identifiant sous la forme type_xxx_id
839
		foreach($valeurs_metadonnees as $id_champ => $valeur) {
867
		foreach($valeurs_metadonnees as $id_champ => $valeur) {
840
 
868
 
841
			// S'il existe déjà une valeur de metadonnée pour cette colonne et cet utilisateur
869
			// S'il existe déjà une valeur de metadonnée pour cette colonne et cet utilisateur
842
			// car on a pu ajouter de nouveaux champs entre temps
870
			// car on a pu ajouter de nouveaux champs entre temps
843
			if($this->MetadonneeModele->valeurExiste($id_champ,$id_utilisateur)) {
871
			if($this->MetadonneeModele->valeurExiste($id_champ,$id_utilisateur)) {
844
				// On se contente de la modifier
872
				// On se contente de la modifier
845
				$this->MetadonneeModele->modifierValeurMetadonnee($id_champ,$id_utilisateur,$valeur);
873
				$this->MetadonneeModele->modifierValeurMetadonnee($id_champ,$id_utilisateur,$valeur);
846
 
874
 
847
			} else {
875
			} else {
848
				// S'il n'existe pas de valeur, on ajoute une nouvelle ligne à la table de valeurs de meta données
876
				// S'il n'existe pas de valeur, on ajoute une nouvelle ligne à la table de valeurs de meta données
849
				if($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$valeur)) {
877
				if($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$valeur)) {
850
					// Si l'insertion a réussi, on continue
878
					// Si l'insertion a réussi, on continue
851
				} else {
879
				} else {
852
					return false;
880
					return false;
853
				}
881
				}
854
			}
882
			}
855
		}
883
		}
856
		
884
		
857
		if($changement_mail) {
885
		if($changement_mail) {
858
			$identificateur = new IdentificationControleur();
886
			$identificateur = new IdentificationControleur();
859
			$identificateur->setUtilisateur($nouveau_mail);
887
			$identificateur->setUtilisateur($nouveau_mail);
860
		}
888
		}
861
		
889
		
862
		$statistique = new StatistiqueControleur();
890
		$statistique = new StatistiqueControleur();
863
		$statistique->ajouterEvenementStatistique($id_annuaire, $id_utilisateur, 'modification');
891
		$statistique->ajouterEvenementStatistique($id_annuaire, $id_utilisateur, 'modification');
864
 
892
 
865
		return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur);
893
		return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur);
866
	}
894
	}
867
 
895
 
868
	public function bloquerDebloquerUtilisateur($id_annuaire, $id_utilisateur, $bloquer = true) {
896
	public function bloquerDebloquerUtilisateur($id_annuaire, $id_utilisateur, $bloquer = true) {
869
 
897
 
870
		$annuaire_modele = $this->getModele('AnnuaireModele');
898
		$annuaire_modele = $this->getModele('AnnuaireModele');
871
		$champs_description = $annuaire_modele->obtenirChampsDescriptionAnnuaire($id_annuaire);
899
		$champs_description = $annuaire_modele->obtenirChampsDescriptionAnnuaire($id_annuaire);
872
 
900
 
873
		$valeur = '0';
901
		$valeur = '0';
874
 
902
 
875
		if($bloquer) {
903
		if($bloquer) {
876
			$valeur = '1';
904
			$valeur = '1';
877
		}
905
		}
878
 
906
 
879
		$metadonne_modele = $this->getModele('MetadonneeModele');
907
		$metadonne_modele = $this->getModele('MetadonneeModele');
880
		$metadonne_modele->modifierValeurMetadonnee($champs_description[1]['champ_statut'],$id_utilisateur,$valeur);
908
		$metadonne_modele->modifierValeurMetadonnee($champs_description[1]['champ_statut'],$id_utilisateur,$valeur);
881
 
909
 
882
		return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur);
910
		return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur);
883
	}
911
	}
884
 
912
 
885
	/**
913
	/**
886
	 * Affiche le formulaire permettant d'entrer un mail et de recevoir le mot de passe
914
	 * Affiche le formulaire permettant d'entrer un mail et de recevoir le mot de passe
887
	 * associé sur cette adresse
915
	 * associé sur cette adresse
888
	 * @param int $id_annuaire l'identifiant de l'annuaire associé
916
	 * @param int $id_annuaire l'identifiant de l'annuaire associé
889
	 */
917
	 */
890
	public function afficherFormulaireOubliMotDePasse($id_annuaire) {
918
	public function afficherFormulaireOubliMotDePasse($id_annuaire) {
891
 
919
 
892
		$donnees['aa_id_annuaire'] = $id_annuaire;
920
		$donnees['aa_id_annuaire'] = $id_annuaire;
893
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees);
921
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees);
894
	}
922
	}
895
 
923
 
896
	/**
924
	/**
897
	 * Supprime l'ancien mot de passe d'un utilisateur et crée un nouveau mot de passe
925
	 * Supprime l'ancien mot de passe d'un utilisateur et crée un nouveau mot de passe
898
	 * aléatoire qui sera envoyé par mail
926
	 * aléatoire qui sera envoyé par mail
899
	 * @param int $id_annuaire l'identifiant de l'annuaire associé
927
	 * @param int $id_annuaire l'identifiant de l'annuaire associé
900
	 * @param int $mail le mail auquel on envoie le mot de passe
928
	 * @param int $mail le mail auquel on envoie le mot de passe
901
	 *
929
	 *
902
	 */
930
	 */
903
	public function reinitialiserMotDePasse($id_annuaire, $mail) {
931
	public function reinitialiserMotDePasse($id_annuaire, $mail) {
904
 
932
 
905
		$this->chargerModele('AnnuaireModele');
933
		$this->chargerModele('AnnuaireModele');
906
		$verificateur = new VerificationControleur();
934
		$verificateur = new VerificationControleur();
907
		$messagerie = new MessageControleur();
935
		$messagerie = new MessageControleur();
908
 
936
 
909
		$donnees = array();
937
		$donnees = array();
910
 
938
 
911
		if(!$verificateur->mailValide($mail) || !$this->AnnuaireModele->utilisateurExisteParMail($id_annuaire,$mail)) {
939
		if(!$verificateur->mailValide($mail) || !$this->AnnuaireModele->utilisateurExisteParMail($id_annuaire,$mail)) {
912
			$donnees['erreurs']['mail'] = 'Cet utilisateur n\'existe pas';
940
			$donnees['erreurs']['mail'] = 'Cet utilisateur n\'existe pas';
913
			$donnees['aa_id_annuaire'] = $id_annuaire;
941
			$donnees['aa_id_annuaire'] = $id_annuaire;
914
			return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees);
942
			return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees);
915
		}
943
		}
916
		
944
		
917
		$nouveau_mdp = $verificateur->genererMotDePasse();
945
		$nouveau_mdp = $verificateur->genererMotDePasse();
918
		$nouveau_mdp_encrypte = $verificateur->encrypterMotDePasse($nouveau_mdp);
946
		$nouveau_mdp_encrypte = $verificateur->encrypterMotDePasse($nouveau_mdp);
919
		
947
		
920
		$modif_mdp = $this->AnnuaireModele->reinitialiserMotDePasse($id_annuaire, $mail, $nouveau_mdp_encrypte);
948
		$modif_mdp = $this->AnnuaireModele->reinitialiserMotDePasse($id_annuaire, $mail, $nouveau_mdp_encrypte);
921
		
949
		
922
		if(!$modif_mdp) {
950
		if(!$modif_mdp) {
923
			$donnees['erreurs']['mdp'] = 'Impossible de générer un nouveau mot de passe';
951
			$donnees['erreurs']['mdp'] = 'Impossible de générer un nouveau mot de passe';
924
			$donnees['aa_id_annuaire'] = $id_annuaire;
952
			$donnees['aa_id_annuaire'] = $id_annuaire;
925
			return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees);
953
			return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees);
926
		}
954
		}
927
 
955
 
928
		if($messagerie->envoyerMailOubliMdp($id_annuaire, $mail, $nouveau_mdp)) {
956
		if($messagerie->envoyerMailOubliMdp($id_annuaire, $mail, $nouveau_mdp)) {
929
			$donnees['titre'] = 'Mot de passe envoyé';
957
			$donnees['titre'] = 'Mot de passe envoyé';
930
			$donnees['message'] = 'Votre nouveau mot de passe a été envoyé à l\'adresse '.$mail;
958
			$donnees['message'] = 'Votre nouveau mot de passe a été envoyé à l\'adresse '.$mail;
931
		} else {
959
		} else {
932
			$donnees['titre'] = 'Impossible de renvoyer le nouveau mot de passe';
960
			$donnees['titre'] = 'Impossible de renvoyer le nouveau mot de passe';
933
			$donnees['message'] = 'Votre nouveau mot de passe n\'a pas pu être envoyé à l\'adresse indiquée ';
961
			$donnees['message'] = 'Votre nouveau mot de passe n\'a pas pu être envoyé à l\'adresse indiquée ';
934
		}
962
		}
935
		
963
		
936
		return $this->getVue(Config::get('dossier_squelettes_annuaires').'information_simple',$donnees);
964
		return $this->getVue(Config::get('dossier_squelettes_annuaires').'information_simple',$donnees);
937
	}
965
	}
938
	
966
	
939
	public function afficherFormulaireSuppressionInscription($id_annuaire, $id_utilisateur) {
967
	public function afficherFormulaireSuppressionInscription($id_annuaire, $id_utilisateur) {
940
 
968
 
941
		$donnees['id_annuaire'] = $id_annuaire;
969
		$donnees['id_annuaire'] = $id_annuaire;
942
		$donnees['id_utilisateur'] = $id_utilisateur;
970
		$donnees['id_utilisateur'] = $id_utilisateur;
943
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'suppression_inscription',$donnees);
971
		return $this->getVue(Config::get('dossier_squelettes_formulaires').'suppression_inscription',$donnees);
944
		
972
		
945
	}
973
	}
946
 
974
 
947
	/**
975
	/**
948
	 * Supprime l'inscription d'un utilisateur dans un annuaire donné
976
	 * Supprime l'inscription d'un utilisateur dans un annuaire donné
949
	 * @param int $id_annuaire l'identifiant de l'annuaire associé
977
	 * @param int $id_annuaire l'identifiant de l'annuaire associé
950
	 * @param int $id_utilisateur l'identifiant de l'utilisateur à supprimer
978
	 * @param int $id_utilisateur l'identifiant de l'utilisateur à supprimer
951
	 */
979
	 */
952
	public function supprimerInscription($id_annuaire, $id_utilisateur) {
980
	public function supprimerInscription($id_annuaire, $id_utilisateur) {
953
		
981
		
954
		if(!$id_utilisateur || $id_utilisateur == '') {
982
		if(!$id_utilisateur || $id_utilisateur == '') {
955
			return $this->index();
983
			return $this->index();
956
		}
984
		}
957
 
985
 
958
		$this->chargerModele('AnnuaireModele');
986
		$this->chargerModele('AnnuaireModele');
959
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
987
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
960
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
988
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
961
		
989
		
962
		$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
990
		$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire, $id_utilisateur);
963
		
991
		
964
		$suppression_inscription = $this->AnnuaireModele->supprimerInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur);
992
		$suppression_inscription = $this->AnnuaireModele->supprimerInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur);
965
		
993
		
966
		if(!$mail_utilisateur || $mail_utilisateur == '') {
994
		if(!$mail_utilisateur || $mail_utilisateur == '') {
967
			return $this->index();
995
			return $this->index();
968
		}
996
		}
969
 
997
 
970
		$donnees = array('erreurs' => array());
998
		$donnees = array('erreurs' => array());
971
 
999
 
972
		$this->chargerModele('MetadonneeModele');
1000
		$this->chargerModele('MetadonneeModele');
973
 		$suppression_metadonnees = $this->MetadonneeModele->supprimerValeursMetadonneesParIdEnregistrementLie($id_utilisateur);
1001
 		$suppression_metadonnees = $this->MetadonneeModele->supprimerValeursMetadonneesParIdEnregistrementLie($id_utilisateur);
974
 
1002
 
975
		if(!$suppression_inscription || !$suppression_metadonnees) {
1003
		if(!$suppression_inscription || !$suppression_metadonnees) {
976
			$donnees['erreurs']['inscription'] = $suppression_inscription;
1004
			$donnees['erreurs']['inscription'] = $suppression_inscription;
977
			$donnees['erreurs']['metadonnees'] = $suppression_metadonnees;
1005
			$donnees['erreurs']['metadonnees'] = $suppression_metadonnees;
978
			$donnees['erreurs']['titre'] = 'Erreur lors de la suppression de l\'inscription ';
1006
			$donnees['erreurs']['titre'] = 'Erreur lors de la suppression de l\'inscription ';
979
 
1007
 
980
			return $this->getVue(Config::get('dossier_squelettes_elements').'erreurs',$donnees);
1008
			return $this->getVue(Config::get('dossier_squelettes_elements').'erreurs',$donnees);
981
		}
1009
		}
982
 
1010
 
983
		$params = array (
1011
		$params = array (
984
				'id_utilisateur' => $id_utilisateur,
1012
				'id_utilisateur' => $id_utilisateur,
985
				'prenom' => '',
1013
				'prenom' => '',
986
				'nom' => '',
1014
				'nom' => '',
987
				'mail' => $mail_utilisateur,
1015
				'mail' => $mail_utilisateur,
988
				'pass' => '',
1016
				'pass' => '',
989
				'pays' => '',
1017
				'pays' => '',
990
				'nouveau_pass' => '',
1018
				'nouveau_pass' => '',
991
				'nouveau_mail' => ''
1019
				'nouveau_mail' => ''
992
			);
1020
			);
993
 
1021
 
994
		// on appelle les controleur de lettre actu et d'applications externes
1022
		// on appelle les controleur de lettre actu et d'applications externes
995
		$appli_controleur = new ApplicationExterneControleur();
1023
		$appli_controleur = new ApplicationExterneControleur();
996
		$appli_controleur->supprimerInscription($id_utilisateur, $params);
1024
		$appli_controleur->supprimerInscription($id_utilisateur, $params);
997
 
1025
 
998
		// pour qu'ils lancent les procédures de désinscription associées
1026
		// pour qu'ils lancent les procédures de désinscription associées
999
		$lettre_controleur = new LettreControleur();
1027
		$lettre_controleur = new LettreControleur();
1000
		$lettre_controleur->desinscriptionLettreActualite($mail_utilisateur);
1028
		$lettre_controleur->desinscriptionLettreActualite($mail_utilisateur);
1001
		
1029
		
1002
		if($id_utilisateur == Registre::getInstance()->get('identification_id')) {
1030
		if($id_utilisateur == Registre::getInstance()->get('identification_id')) {
1003
			$identificateur = new IdentificationControleur();
1031
			$identificateur = new IdentificationControleur();
1004
			$identificateur->deloggerUtilisateur();
1032
			$identificateur->deloggerUtilisateur();
1005
		}
1033
		}
1006
		
1034
		
1007
		$donnees = array();
1035
		$donnees = array();
1008
		
1036
		
1009
		// Si le formulaire spécifique à l'annuaire existe, on l'affiche
1037
		// Si le formulaire spécifique à l'annuaire existe, on l'affiche
1010
		if($this->annuaireAvoirPagePostDesinscription($annuaire['informations']['aa_code'])) {
1038
		if($this->annuaireAvoirPagePostDesinscription($annuaire['informations']['aa_code'])) {
1011
			$informations_desinscription = $this->GetVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_desinscription_confirmation',$donnees);
1039
			$informations_desinscription = $this->GetVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_desinscription_confirmation',$donnees);
1012
		} else {
1040
		} else {
1013
			
1041
			
1014
			// Sinon on prend celui par defaut
1042
			// Sinon on prend celui par defaut
1015
			$donnees['titre'] = 'Vous êtes maintenant désinscrit de l\'annuaire';
1043
			$donnees['titre'] = 'Vous êtes maintenant désinscrit de l\'annuaire';
1016
			$donnees['message'] = 'Votre désinscription a bien été prise en compte <br />';
1044
			$donnees['message'] = 'Votre désinscription a bien été prise en compte <br />';
1017
			
1045
			
1018
			$informations_desinscription = $this->getVue(Config::get('dossier_squelettes_annuaires').'information_simple',$donnees);
1046
			$informations_desinscription = $this->getVue(Config::get('dossier_squelettes_annuaires').'information_simple',$donnees);
1019
		}
1047
		}
1020
		
1048
		
1021
		$statistique = new StatistiqueControleur();
1049
		$statistique = new StatistiqueControleur();
1022
		$statistique->ajouterEvenementStatistique($id_annuaire, $id_utilisateur, 'suppression');
1050
		$statistique->ajouterEvenementStatistique($id_annuaire, $id_utilisateur, 'suppression');
1023
		
1051
		
1024
		return $informations_desinscription;
1052
		return $informations_desinscription;
1025
	}
1053
	}
1026
 
1054
 
1027
	/**
1055
	/**
1028
	 * Affiche le formulaire de recherche pour un annuaire donné ou en génère un à la volée
1056
	 * Affiche le formulaire de recherche pour un annuaire donné ou en génère un à la volée
1029
	 * @param int $id_annuaire l'identifiant de l'annuaire
1057
	 * @param int $id_annuaire l'identifiant de l'annuaire
1030
	 * @param array $donnees des données utilisées pour pré remplir le formulaire
1058
	 * @param array $donnees des données utilisées pour pré remplir le formulaire
1031
	 * @return string le html contenant le formulaire de recherche
1059
	 * @return string le html contenant le formulaire de recherche
1032
	 */
1060
	 */
1033
	public function afficherFormulaireRecherche($id_annuaire, $donnees = array()) {
1061
	public function afficherFormulaireRecherche($id_annuaire, $donnees = array()) {
1034
 
1062
 
1035
		$this->chargerModele('AnnuaireModele');
1063
		$this->chargerModele('AnnuaireModele');
1036
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
1064
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false);
1037
 
1065
 
1038
		$this->chargerModele('MetadonneeModele');
1066
		$this->chargerModele('MetadonneeModele');
1039
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
1067
		$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
1040
 
1068
 
1041
		$donnees['aa_id_annuaire'] = $id_annuaire;
1069
		$donnees['aa_id_annuaire'] = $id_annuaire;
1042
 
1070
 
1043
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
1071
		// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire
1044
		// pour ne charger que ce qui est nécéssaire
1072
		// pour ne charger que ce qui est nécéssaire
1045
 
1073
 
1046
		foreach($metadonnees as $nom_champ => $metadonnee) {
1074
		foreach($metadonnees as $nom_champ => $metadonnee) {
1047
 
1075
 
1048
			$id_champ = $metadonnee['amc_id_champ'];
1076
			$id_champ = $metadonnee['amc_id_champ'];
1049
			$type_champ = $metadonnee['amc_ce_template_affichage'];
1077
			$type_champ = $metadonnee['amc_ce_template_affichage'];
1050
			$nom_champ = $metadonnee['amc_abreviation'];
1078
			$nom_champ = $metadonnee['amc_abreviation'];
1051
			
1079
			
1052
			if(isset($donnees[$type_champ.'_'.$id_champ])) {
1080
			if(isset($donnees[$type_champ.'_'.$id_champ])) {
1053
						
1081
						
1054
				$metadonnee['valeur_defaut']['amv_valeur'] = $donnees[$type_champ.'_'.$id_champ];
1082
				$metadonnee['valeur_defaut']['amv_valeur'] = $donnees[$type_champ.'_'.$id_champ];
1055
			}
1083
			}
1056
 
1084
 
1057
			$metadonnee['aa_id_annuaire'] = $id_annuaire;
1085
			$metadonnee['aa_id_annuaire'] = $id_annuaire;
1058
			// on charge le formulaire d'affichage de chacune des métadonnées
1086
			// on charge le formulaire d'affichage de chacune des métadonnées
1059
			$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$metadonnee);
1087
			$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$metadonnee);
1060
		}
1088
		}
1061
 
1089
 
1062
		// Si le formulaire spécifique à l'annuaire existe, on l'affiche
1090
		// Si le formulaire spécifique à l'annuaire existe, on l'affiche
1063
		if($this->annuaireAvoirFormulaireRecherche($annuaire['informations']['aa_code'])) {
1091
		if($this->annuaireAvoirFormulaireRecherche($annuaire['informations']['aa_code'])) {
1064
			
1092
			
1065
			// Sinon on prend celui par defaut
1093
			// Sinon on prend celui par defaut
1066
			$formulaire_recherche = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_recherche',$donnees);
1094
			$formulaire_recherche = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_recherche',$donnees);
1067
		
1095
		
1068
		} else {
1096
		} else {
1069
			
1097
			
1070
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
1098
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
1071
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
1099
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
1072
			$formulaire_recherche = $this->genererFormulaireRecherche($donnees);
1100
			$formulaire_recherche = $this->genererFormulaireRecherche($donnees);
1073
			
1101
			
1074
		}
1102
		}
1075
		
1103
		
1076
		return $formulaire_recherche;
1104
		return $formulaire_recherche;
1077
	}
1105
	}
1078
 
1106
 
1079
	/**
1107
	/**
1080
	 * Recherche un ou plusieurs inscrits selon les valeurs passées en paramètres, qui peuvent êtres des valeurs
1108
	 * Recherche un ou plusieurs inscrits selon les valeurs passées en paramètres, qui peuvent êtres des valeurs
1081
	 * dans l'annuaire mappé ou bien des valeurs de metadonnées
1109
	 * dans l'annuaire mappé ou bien des valeurs de metadonnées
1082
	 * @param int $id_annuaire l'identifiant de l'annuaire
1110
	 * @param int $id_annuaire l'identifiant de l'annuaire
1083
	 * @param array $valeurs_recherchees les valeurs à rechercher
1111
	 * @param array $valeurs_recherchees les valeurs à rechercher
1084
	 * @param boolean $exclusive indique si la recherche si fait sur tous les critères ou bien sur au moins un
1112
	 * @param boolean $exclusive indique si la recherche si fait sur tous les critères ou bien sur au moins un
1085
	 */
1113
	 */
1086
	public function rechercherInscrit($id_annuaire, $valeurs_recherchees, $exclusive = true) {
1114
	public function rechercherInscrit($id_annuaire, $valeurs_recherchees, $exclusive = true) {
1087
				
1115
				
1088
		$this->chargerModele('AnnuaireModele');
1116
		$this->chargerModele('AnnuaireModele');
1089
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, true);
1117
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, true);
1090
 
1118
 
1091
		if(isset($_GET['numero_page'])) {
1119
		if(isset($_GET['numero_page'])) {
1092
			$numero_page = $_GET['numero_page'];
1120
			$numero_page = $_GET['numero_page'];
1093
			unset($_GET['numero_page']);
1121
			unset($_GET['numero_page']);
1094
			unset($valeurs_recherchees['numero_page']);
1122
			unset($valeurs_recherchees['numero_page']);
1095
		} else {
1123
		} else {
1096
			$numero_page = 1;
1124
			$numero_page = 1;
1097
		}
1125
		}
1098
 
1126
 
1099
		if(isset($_GET['taille_page'])) {
1127
		if(isset($_GET['taille_page'])) {
1100
			$taille_page = $_GET['taille_page'];
1128
			$taille_page = $_GET['taille_page'];
1101
			unset($_GET['taille_page']);
1129
			unset($_GET['taille_page']);
1102
			unset($valeurs_recherchees['taille_page']);
1130
			unset($valeurs_recherchees['taille_page']);
1103
		} else {
1131
		} else {
1104
			$taille_page = 50;
1132
			$taille_page = 50;
1105
		}
1133
		}
1106
 
1134
 
1107
		$tableau_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
1135
		$tableau_mappage = $this->AnnuaireModele->obtenirChampsMappageAnnuaire($id_annuaire);
1108
 
1136
 
1109
		$valeurs_mappees = array();
1137
		$valeurs_mappees = array();
1110
		$valeurs = array();
1138
		$valeurs = array();
1111
 
1139
 
1112
		$collecteur = new VerificationControleur();
1140
		$collecteur = new VerificationControleur();
1113
		$tableau_valeur_collectees = $collecteur->collecterValeursRechercheMoteur($valeurs_recherchees, $tableau_mappage);
1141
		$tableau_valeur_collectees = $collecteur->collecterValeursRechercheMoteur($valeurs_recherchees, $tableau_mappage);
1114
		
1142
		
1115
		$valeurs_recherchees = $tableau_valeur_collectees['valeurs_recherchees']; 
1143
		$valeurs_recherchees = $tableau_valeur_collectees['valeurs_recherchees']; 
1116
		$valeurs_mappees = $tableau_valeur_collectees['valeurs_mappees']; 
1144
		$valeurs_mappees = $tableau_valeur_collectees['valeurs_mappees']; 
1117
		$valeurs_get = $tableau_valeur_collectees['valeurs_get']; 
1145
		$valeurs_get = $tableau_valeur_collectees['valeurs_get']; 
1118
		
1146
		
1119
		$admin = Registre::getInstance()->get('est_admin');
1147
		$admin = Registre::getInstance()->get('est_admin');
1120
 
1148
 
1121
		// on recherche dans les métadonnées
1149
		// on recherche dans les métadonnées
1122
		$this->chargerModele('MetadonneeModele');
1150
		$this->chargerModele('MetadonneeModele');
1123
		// le résultat est un ensemble d'identifiants
1151
		// le résultat est un ensemble d'identifiants
1124
		$resultat_metadonnees = $this->MetadonneeModele->rechercherDansValeurMetadonnees($id_annuaire,$valeurs_recherchees, $exclusive);
1152
		$resultat_metadonnees = $this->MetadonneeModele->rechercherDansValeurMetadonnees($id_annuaire,$valeurs_recherchees, $exclusive);
1125
		
1153
		
1126
		// on recherche les infos dans la table annuaire mappée
1154
		// on recherche les infos dans la table annuaire mappée
1127
		// en incluant ou excluant les id déjà trouvées dans les metadonnées
1155
		// en incluant ou excluant les id déjà trouvées dans les metadonnées
1128
		// suivant le critères d'exclusivité ou non
1156
		// suivant le critères d'exclusivité ou non
1129
		$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $resultat_metadonnees, $exclusive, $numero_page, $taille_page);
1157
		$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $resultat_metadonnees, $exclusive, $numero_page, $taille_page);
1130
		
1158
		
1131
		$resultat_recherche = $resultat_annuaire_mappe['resultat'];
1159
		$resultat_recherche = $resultat_annuaire_mappe['resultat'];
1132
 
1160
 
1133
		$nb_resultats = $resultat_annuaire_mappe['total'];
1161
		$nb_resultats = $resultat_annuaire_mappe['total'];
1134
		
1162
		
1135
		$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
1163
		$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
1136
		
1164
		
1137
		$resultats = array();
1165
		$resultats = array();
1138
		foreach($resultat_recherche as $resultat) {
1166
		foreach($resultat_recherche as $resultat) {
1139
			$id_utilisateur = $resultat[$champ_id_annuaire];
1167
			$id_utilisateur = $resultat[$champ_id_annuaire];
1140
			$resultats[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
1168
			$resultats[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
1141
		}
1169
		}
1142
 
1170
 
1143
		// on renvoie une liste identique à celle de la liste des inscrits
1171
		// on renvoie une liste identique à celle de la liste des inscrits
1144
		$donnees['resultats_recherche'] = $resultats;
1172
		$donnees['resultats_recherche'] = $resultats;
1145
		$donnees['tableau_mappage'] = $tableau_mappage[1];
1173
		$donnees['tableau_mappage'] = $tableau_mappage[1];
1146
		$donnees['id_annuaire'] = $id_annuaire;
1174
		$donnees['id_annuaire'] = $id_annuaire;
1147
		$donnees['nb_resultats'] = $nb_resultats;
1175
		$donnees['nb_resultats'] = $nb_resultats;
1148
 
1176
 
1149
		$url_base = new URL(Registre::getInstance()->get('base_url_application'));
1177
		$url_base = new URL(Registre::getInstance()->get('base_url_application'));
1150
		$url_pagination = clone($url_base);
1178
		$url_pagination = clone($url_base);
1151
 
1179
 
1152
		$valeurs_get['m'] = $_GET['m'];
1180
		$valeurs_get['m'] = $_GET['m'];
1153
		
1181
		
1154
		$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
1182
		$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
1155
		
1183
		
1156
		$valeurs_get['exclusive'] = $exclusive;
1184
		$valeurs_get['exclusive'] = $exclusive;
1157
		$donnees['criteres'] = urlencode(serialize($valeurs_get));
1185
		$donnees['criteres'] = urlencode(serialize($valeurs_get));
1158
		
1186
		
1159
		$valeurs_get['id_annuaire'] = $id_annuaire;
1187
		$valeurs_get['id_annuaire'] = $id_annuaire;
1160
 
1188
 
1161
		// S'il existe une page de résultats spécifique à l'annuaire pour la recherche
1189
		// S'il existe une page de résultats spécifique à l'annuaire pour la recherche
1162
		if($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) {
1190
		if($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) {
1163
			// on l'affiche
1191
			// on l'affiche
1164
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
1192
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
1165
 
1193
 
1166
		} else {
1194
		} else {
1167
			
1195
			
1168
			// sinon on prend celle par défaut
1196
			// sinon on prend celle par défaut
1169
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
1197
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
1170
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
1198
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
1171
			
1199
			
1172
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
1200
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
1173
		}
1201
		}
1174
		
1202
		
1175
		return $this->afficherFormulaireRecherche($id_annuaire, $valeurs_get).$vue_resultat_recherche;
1203
		return $this->afficherFormulaireRecherche($id_annuaire, $valeurs_get).$vue_resultat_recherche;
1176
	}
1204
	}
1177
 
1205
 
1178
	/** Recherche un ou plusieurs inscrits selon des indications géographiques, qui peuvent êtres des valeurs
1206
	/** Recherche un ou plusieurs inscrits selon des indications géographiques, qui peuvent êtres des valeurs
1179
	 * dans l'annuaire mappé ou bien des valeurs de metadonnées
1207
	 * dans l'annuaire mappé ou bien des valeurs de metadonnées
1180
	 * @param int $id_annuaire l'identifiant de l'annuaire
1208
	 * @param int $id_annuaire l'identifiant de l'annuaire
1181
	 * @param array $valeurs_recherchees les valeurs à rechercher
1209
	 * @param array $valeurs_recherchees les valeurs à rechercher
1182
	 * @param boolean $exclusive indique si la recherche si fait sur tous les critères ou bien sur au moins un
1210
	 * @param boolean $exclusive indique si la recherche si fait sur tous les critères ou bien sur au moins un
1183
	 * @param int $numero_page le numero de page demandé
1211
	 * @param int $numero_page le numero de page demandé
1184
	 * @param int $taille_page la taille de page
1212
	 * @param int $taille_page la taille de page
1185
	 */
1213
	 */
1186
	public function rechercherInscritParlocalisation($id_annuaire,$valeurs_recherchees) {
1214
	public function rechercherInscritParlocalisation($id_annuaire,$valeurs_recherchees) {
1187
 
1215
 
1188
		if(isset($_GET['taille_page'])) {
1216
		if(isset($_GET['taille_page'])) {
1189
			$taille_page = $_GET['taille_page'];
1217
			$taille_page = $_GET['taille_page'];
1190
		} else  {
1218
		} else  {
1191
			$taille_page = 50;
1219
			$taille_page = 50;
1192
		}
1220
		}
1193
 
1221
 
1194
		if(isset($_GET['numero_page'])) {
1222
		if(isset($_GET['numero_page'])) {
1195
			$numero_page = $_GET['numero_page'];
1223
			$numero_page = $_GET['numero_page'];
1196
		} else {
1224
		} else {
1197
			$numero_page = 1;
1225
			$numero_page = 1;
1198
		}
1226
		}
1199
 
1227
 
1200
		$this->chargerModele('AnnuaireModele');
1228
		$this->chargerModele('AnnuaireModele');
1201
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, true);
1229
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, true);
1202
 
1230
 
1203
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1231
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1204
 
1232
 
1205
		$valeurs_get = $valeurs_recherchees;
1233
		$valeurs_get = $valeurs_recherchees;
1206
 
1234
 
1207
		$valeurs_mappees = array();
1235
		$valeurs_mappees = array();
1208
		$valeurs = array();
1236
		$valeurs = array();
1209
		
1237
		
1210
		$continent = $valeurs_recherchees['continent'];
1238
		$continent = $valeurs_recherchees['continent'];
1211
 
1239
 
1212
		$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
1240
		$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
1213
 
1241
 
1214
		$valeur = $valeurs_recherchees['pays'];
1242
		$valeur = $valeurs_recherchees['pays'];
1215
		$champ_critere = $tableau_mappage[0]['champ_pays'];
1243
		$champ_critere = $tableau_mappage[0]['champ_pays'];
1216
		
1244
		
1217
		$criteres = array($tableau_mappage[0]['champ_pays'] => $valeurs_recherchees['pays']);
1245
		$criteres = array($tableau_mappage[0]['champ_pays'] => $valeurs_recherchees['pays']);
1218
 
1246
 
1219
		if(isset($valeurs_recherchees['departement'])) {
1247
		if(isset($valeurs_recherchees['departement'])) {
1220
			$valeur = $valeurs_recherchees['departement'];
1248
			$valeur = $valeurs_recherchees['departement'];
1221
			$champ_critere = $tableau_mappage[0]['champ_code_postal'];
1249
			$champ_critere = $tableau_mappage[0]['champ_code_postal'];
1222
			
1250
			
1223
			$criteres = array($tableau_mappage[0]['champ_pays'] => $valeurs_recherchees['pays'], 
1251
			$criteres = array($tableau_mappage[0]['champ_pays'] => $valeurs_recherchees['pays'], 
1224
								$tableau_mappage[0]['champ_code_postal'] => $valeurs_recherchees['departement']
1252
								$tableau_mappage[0]['champ_code_postal'] => $valeurs_recherchees['departement']
1225
			);
1253
			);
1226
		}
1254
		}
1227
 
1255
 
1228
		$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappeParTableauChamps($id_annuaire, $criteres, true, $numero_page, $taille_page);
1256
		$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappeParTableauChamps($id_annuaire, $criteres, true, $numero_page, $taille_page);
1229
 
1257
 
1230
		$resultat_recherche = $resultat_annuaire_mappe;
1258
		$resultat_recherche = $resultat_annuaire_mappe;
1231
		
1259
		
1232
		$nb_resultats = $resultat_recherche['total'];
1260
		$nb_resultats = $resultat_recherche['total'];
1233
		$resultat_recherche = $resultat_recherche['resultat'];
1261
		$resultat_recherche = $resultat_recherche['resultat'];
1234
		
1262
		
1235
		$resultats = array();
1263
		$resultats = array();
1236
		foreach($resultat_recherche as $resultat) {
1264
		foreach($resultat_recherche as $resultat) {
1237
			$id_utilisateur = $resultat[$champ_id_annuaire];
1265
			$id_utilisateur = $resultat[$champ_id_annuaire];
1238
			$resultats[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
1266
			$resultats[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
1239
		}
1267
		}
1240
 
1268
 
1241
		// on renvoie une liste identique à celle de la liste des inscrits
1269
		// on renvoie une liste identique à celle de la liste des inscrits
1242
		$donnees['resultats_recherche'] = $resultats;
1270
		$donnees['resultats_recherche'] = $resultats;
1243
		$donnees['tableau_mappage'] = $tableau_mappage[1];
1271
		$donnees['tableau_mappage'] = $tableau_mappage[1];
1244
		$donnees['id_annuaire'] = $id_annuaire;
1272
		$donnees['id_annuaire'] = $id_annuaire;
1245
		$donnees['nb_resultats'] = $nb_resultats;
1273
		$donnees['nb_resultats'] = $nb_resultats;
1246
		
1274
		
1247
		
1275
		
1248
		
1276
		
1249
		$donnees['criteres'] = urlencode(serialize(array('select_'.$tableau_mappage[1]['champ_pays'] => $valeurs_recherchees['pays'],
1277
		$donnees['criteres'] = urlencode(serialize(array('select_'.$tableau_mappage[1]['champ_pays'] => $valeurs_recherchees['pays'],
1250
														'text_'.$tableau_mappage[1]['champ_code_postal'] => $valeurs_recherchees['departement'],
1278
														'text_'.$tableau_mappage[1]['champ_code_postal'] => $valeurs_recherchees['departement'],
1251
														'exclusive' => true
1279
														'exclusive' => true
1252
		)));
1280
		)));
1253
 
1281
 
1254
		$url_base = new URL(Registre::getInstance()->get('base_url_application'));
1282
		$url_base = new URL(Registre::getInstance()->get('base_url_application'));
1255
		$url_pagination = clone($url_base);
1283
		$url_pagination = clone($url_base);
1256
 
1284
 
1257
		$valeurs_get['id_annuaire'] = $id_annuaire;
1285
		$valeurs_get['id_annuaire'] = $id_annuaire;
1258
		$valeurs_get['m'] = $_GET['m'];
1286
		$valeurs_get['m'] = $_GET['m'];
1259
 
1287
 
1260
		$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
1288
		$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
1261
 
1289
 
1262
		if($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) {
1290
		if($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) {
1263
			// on l'affiche
1291
			// on l'affiche
1264
			$navigation_carto = new NavigationControleur();
1292
			$navigation_carto = new NavigationControleur();
1265
			$cartographe = new CartoControleur();
1293
			$cartographe = new CartoControleur();
1266
			$donnees_navigation = $cartographe->obtenirUrlsNavigation($id_annuaire,$valeurs_recherchees['continent'],$valeurs_recherchees['pays'],$valeurs_recherchees['departement']);
1294
			$donnees_navigation = $cartographe->obtenirUrlsNavigation($id_annuaire,$valeurs_recherchees['continent'],$valeurs_recherchees['pays'],$valeurs_recherchees['departement']);
1267
			$donnees['navigation'] = $navigation_carto->afficherBandeauNavigationCartographie($donnees_navigation);
1295
			$donnees['navigation'] = $navigation_carto->afficherBandeauNavigationCartographie($donnees_navigation);
1268
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
1296
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
1269
 
1297
 
1270
		} else {
1298
		} else {
1271
			
1299
			
1272
		// sinon on prend celle par défaut
1300
		// sinon on prend celle par défaut
1273
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
1301
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
1274
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
1302
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
1275
			
1303
			
1276
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
1304
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
1277
		}
1305
		}
1278
		
1306
		
1279
		return $vue_resultat_recherche;
1307
		return $vue_resultat_recherche;
1280
	}
1308
	}
1281
	
1309
	
1282
	public function rechercherDoublons($id_annuaire) {
1310
	public function rechercherDoublons($id_annuaire) {
1283
		
1311
		
1284
		if(isset($_GET['taille_page'])) {
1312
		if(isset($_GET['taille_page'])) {
1285
			$taille_page = $_GET['taille_page'];
1313
			$taille_page = $_GET['taille_page'];
1286
		} else  {
1314
		} else  {
1287
			$taille_page = 50;
1315
			$taille_page = 50;
1288
		}
1316
		}
1289
 
1317
 
1290
		if(isset($_GET['numero_page'])) {
1318
		if(isset($_GET['numero_page'])) {
1291
			$numero_page = $_GET['numero_page'];
1319
			$numero_page = $_GET['numero_page'];
1292
		} else {
1320
		} else {
1293
			$numero_page = 1;
1321
			$numero_page = 1;
1294
		}
1322
		}
1295
 
1323
 
1296
		$this->chargerModele('AnnuaireModele');
1324
		$this->chargerModele('AnnuaireModele');
1297
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, true);
1325
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, true);
1298
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1326
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1299
		$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
1327
		$champ_id_annuaire = $tableau_mappage[0]['champ_id'];
1300
		
1328
		
1301
		$resultat_recherche_doublons= $this->AnnuaireModele->rechercherDoublonsDansAnnuaireMappe($id_annuaire, $numero_page, $taille_page);
1329
		$resultat_recherche_doublons= $this->AnnuaireModele->rechercherDoublonsDansAnnuaireMappe($id_annuaire, $numero_page, $taille_page);
1302
		
1330
		
1303
		$nb_resultats = $resultat_recherche_doublons['total'];
1331
		$nb_resultats = $resultat_recherche_doublons['total'];
1304
		$resultat_recherche = $resultat_recherche_doublons['resultat'];
1332
		$resultat_recherche = $resultat_recherche_doublons['resultat'];
1305
		
1333
		
1306
		$resultats = array();
1334
		$resultats = array();
1307
		foreach($resultat_recherche as $resultat) {
1335
		foreach($resultat_recherche as $resultat) {
1308
			$id_utilisateur = $resultat[$champ_id_annuaire];
1336
			$id_utilisateur = $resultat[$champ_id_annuaire];
1309
			$resultats[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
1337
			$resultats[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
1310
		}
1338
		}
1311
 
1339
 
1312
		// on renvoie une liste identique à celle de la liste des inscrits
1340
		// on renvoie une liste identique à celle de la liste des inscrits
1313
		$donnees['resultats_recherche'] = $resultats;
1341
		$donnees['resultats_recherche'] = $resultats;
1314
		$donnees['tableau_mappage'] = $tableau_mappage[1];
1342
		$donnees['tableau_mappage'] = $tableau_mappage[1];
1315
		$donnees['id_annuaire'] = $id_annuaire;
1343
		$donnees['id_annuaire'] = $id_annuaire;
1316
		$donnees['nb_resultats'] = $nb_resultats;
1344
		$donnees['nb_resultats'] = $nb_resultats;
1317
		
1345
		
1318
		$url_base = new URL(Registre::getInstance()->get('base_url_application'));
1346
		$url_base = new URL(Registre::getInstance()->get('base_url_application'));
1319
		$url_pagination = clone($url_base);
1347
		$url_pagination = clone($url_base);
1320
		
1348
		
1321
		$valeurs_get = array('m' => 'annuaire_recherche_doublons', 'id_annuaire' => $id_annuaire);
1349
		$valeurs_get = array('m' => 'annuaire_recherche_doublons', 'id_annuaire' => $id_annuaire);
1322
		$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
1350
		$donnees['pagination'] = $this->paginer($numero_page,$taille_page,$nb_resultats,$url_pagination, $valeurs_get);
1323
		
1351
		
1324
		if($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) {
1352
		if($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) {
1325
			// on l'affiche
1353
			// on l'affiche
1326
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
1354
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees);
1327
 
1355
 
1328
		} else {	
1356
		} else {	
1329
		// sinon on prend celle par défaut
1357
		// sinon on prend celle par défaut
1330
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
1358
			$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire);
1331
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
1359
			$donnees['mappage_nom_champs'] = $tableau_nom_mappage;
1332
			
1360
			
1333
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
1361
			$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').'resultat_recherche', $donnees);
1334
		}
1362
		}
1335
		
1363
		
1336
		return $vue_resultat_recherche;
1364
		return $vue_resultat_recherche;
1337
	}
1365
	}
1338
 
1366
 
1339
 
1367
 
1340
/** --- Fonction pour les images ------------------------------------------------------------------------*/
1368
/** --- Fonction pour les images ------------------------------------------------------------------------*/
1341
 
1369
 
1342
	public function afficherFormulaireUploadImage($id_annuaire,$id_utilisateur, $donnees = array()) {
1370
	public function afficherFormulaireUploadImage($id_annuaire,$id_utilisateur, $donnees = array()) {
1343
 
1371
 
1344
		$donnees['aa_id_annuaire'] = $id_annuaire;
1372
		$donnees['aa_id_annuaire'] = $id_annuaire;
1345
		$donnees['id_utilisateur'] = $id_utilisateur;
1373
		$donnees['id_utilisateur'] = $id_utilisateur;
1346
 
1374
 
1347
		$donnees['amc_nom'] = 'Image de profil';
1375
		$donnees['amc_nom'] = 'Image de profil';
1348
 
1376
 
1349
		$this->chargerModele('AnnuaireModele');
1377
		$this->chargerModele('AnnuaireModele');
1350
		$id_champ_image = $this->AnnuaireModele->obtenirChampAvatar($id_annuaire);
1378
		$id_champ_image = $this->AnnuaireModele->obtenirChampAvatar($id_annuaire);
1351
 
1379
 
1352
		if(!$id_champ_image) {
1380
		if(!$id_champ_image) {
1353
			$donnees['erreurs'] = 'Aucun champ n\'est défini pour l\'image de profil';
1381
			$donnees['erreurs'] = 'Aucun champ n\'est défini pour l\'image de profil';
1354
			return $this->getVue(Config::get('dossier_squelettes_elements').'erreurs',$donnees);
1382
			return $this->getVue(Config::get('dossier_squelettes_elements').'erreurs',$donnees);
1355
		}
1383
		}
1356
		
1384
		
1357
		$formats = str_replace('|',', ',Config::get('extensions_acceptees'));
1385
		$formats = str_replace('|',', ',Config::get('extensions_acceptees'));
1358
		$donnees['formats'] = $formats; 
1386
		$donnees['formats'] = $formats; 
1359
		
1387
		
1360
		$taille_max = Config::get('taille_max_images');	
1388
		$taille_max = Config::get('taille_max_images');	
1361
		$taille_max_formatee = VerificationControleur::convertirTailleFichier(Config::get('taille_max_images'));	
1389
		$taille_max_formatee = VerificationControleur::convertirTailleFichier(Config::get('taille_max_images'));	
1362
		
1390
		
1363
		$donnees['taille_max_formatee'] = $taille_max_formatee; 
1391
		$donnees['taille_max_formatee'] = $taille_max_formatee; 
1364
		$donnees['taille_max'] = $taille_max; 
1392
		$donnees['taille_max'] = $taille_max; 
1365
 
1393
 
1366
		$donnees['amc_id_champ'] = $id_champ_image;
1394
		$donnees['amc_id_champ'] = $id_champ_image;
1367
 
1395
 
1368
		return $this->getVue(Config::get('dossier_squelettes_champs').'image',$donnees);
1396
		return $this->getVue(Config::get('dossier_squelettes_champs').'image',$donnees);
1369
	}
1397
	}
1370
 
1398
 
1371
	/**
1399
	/**
1372
	 * Ajoute une image uploadée à travers le formulaire
1400
	 * Ajoute une image uploadée à travers le formulaire
1373
	 *
1401
	 *
1374
	 */
1402
	 */
1375
	public function ajouterImageUtilisateur($id_annuaire, $id_utilisateur, $fichier_a_stocker, $retourner_booleen = false) {
1403
	public function ajouterImageUtilisateur($id_annuaire, $id_utilisateur, $fichier_a_stocker, $retourner_booleen = false) {
1376
 
1404
 
1377
		$donnees = array('erreurs' => array(), 'aa_id_annuaire' => $id_annuaire);
1405
		$donnees = array('erreurs' => array(), 'aa_id_annuaire' => $id_annuaire);
1378
 
1406
 
1379
		foreach($fichier_a_stocker as $nom_champ => $fichier) {
1407
		foreach($fichier_a_stocker as $nom_champ => $fichier) {
1380
 
1408
 
1381
			$ids_champ = mb_split("_",$nom_champ, 3);
1409
			$ids_champ = mb_split("_",$nom_champ, 3);
1382
 
1410
 
1383
			if(count($ids_champ) == 2) {
1411
			if(count($ids_champ) == 2) {
1384
 
1412
 
1385
				$type = $ids_champ[0];
1413
				$type = $ids_champ[0];
1386
				$id_champ = $ids_champ[1];
1414
				$id_champ = $ids_champ[1];
1387
 
1415
 
1388
 
1416
 
1389
			} else {
1417
			} else {
1390
				trigger_error('Ce champ n\'est pas relié à un annuaire');
1418
				trigger_error('Ce champ n\'est pas relié à un annuaire');
1391
				return false;
1419
				return false;
1392
			}
1420
			}
1393
 
1421
 
1394
			$this->chargerModele('ImageModele');
1422
			$this->chargerModele('ImageModele');
1395
 
1423
 
1396
			$format_accepte = $this->ImageModele->verifierFormat($fichier['name']);
1424
			$format_accepte = $this->ImageModele->verifierFormat($fichier['name']);
1397
 
1425
 
1398
			if(!$format_accepte) {
1426
			if(!$format_accepte) {
1399
				$formats = str_replace('|',', ',Config::get('extensions_acceptees'));
1427
				$formats = str_replace('|',', ',Config::get('extensions_acceptees'));
1400
				$donnees['erreurs'][$id_champ] = 'Cette extension de fichier n\'est pas prise en charge. Veuillez utiliser un fichier portant l\'une des extensions suivantes :'.$formats ;
1428
				$donnees['erreurs'][$id_champ] = 'Cette extension de fichier n\'est pas prise en charge. Veuillez utiliser un fichier portant l\'une des extensions suivantes :'.$formats ;
1401
				
1429
				
1402
				return $this->afficherFormulaireUploadImage($id_annuaire, $id_utilisateur,$donnees);
1430
				return $this->afficherFormulaireUploadImage($id_annuaire, $id_utilisateur,$donnees);
1403
			}
1431
			}
1404
 
1432
 
1405
			$stockage_image = $this->ImageModele->stockerFichier($id_annuaire, $id_utilisateur, $fichier);
1433
			$stockage_image = $this->ImageModele->stockerFichier($id_annuaire, $id_utilisateur, $fichier);
1406
 
1434
 
1407
			$this->chargerModele('MetadonneeModele');
1435
			$this->chargerModele('MetadonneeModele');
1408
 
1436
 
1409
			if($this->MetadonneeModele->valeurExiste($id_champ,$id_utilisateur)) {
1437
			if($this->MetadonneeModele->valeurExiste($id_champ,$id_utilisateur)) {
1410
				// On se contente de la modifier
1438
				// On se contente de la modifier
1411
				if($stockage_image && $this->MetadonneeModele->modifierValeurMetadonnee($id_champ,$id_utilisateur,$id_utilisateur)) {
1439
				if($stockage_image && $this->MetadonneeModele->modifierValeurMetadonnee($id_champ,$id_utilisateur,$id_utilisateur)) {
1412
 
1440
 
1413
				} else {
1441
				} else {
1414
					$donnees['erreurs'][$id_champ] = 'Problème durant le stockage de l\'image';
1442
					$donnees['erreurs'][$id_champ] = 'Problème durant le stockage de l\'image';
1415
					return $this->afficherFormulaireUploadImage($id_annuaire, $id_utilisateur,$donnees);
1443
					return $this->afficherFormulaireUploadImage($id_annuaire, $id_utilisateur,$donnees);
1416
				}
1444
				}
1417
 
1445
 
1418
			} else {
1446
			} else {
1419
				// S'il n'existe pas de valeur, on ajoute une nouvelle ligne à la table de valeurs de meta données
1447
				// S'il n'existe pas de valeur, on ajoute une nouvelle ligne à la table de valeurs de meta données
1420
				if($stockage_image && $this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$id_utilisateur)) {
1448
				if($stockage_image && $this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$id_utilisateur)) {
1421
					// Si l'insertion a réussi, on continue
1449
					// Si l'insertion a réussi, on continue
1422
				} else {
1450
				} else {
1423
					$donnees['erreurs'][$id_champ] = 'Problème durant le stockage de l\'image';
1451
					$donnees['erreurs'][$id_champ] = 'Problème durant le stockage de l\'image';
1424
					return $this->afficherFormulaireUploadImage($id_annuaire, $id_utilisateur,$id_champ,$donnees);
1452
					return $this->afficherFormulaireUploadImage($id_annuaire, $id_utilisateur,$id_champ,$donnees);
1425
				}
1453
				}
1426
			}
1454
			}
1427
		}
1455
		}
1428
 
1456
 
1429
		if($retourner_booleen) {
1457
		if($retourner_booleen) {
1430
			return true;
1458
			return true;
1431
		} else {
1459
		} else {
1432
			return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur) ;
1460
			return $this->afficherFicheUtilisateur($id_annuaire, $id_utilisateur) ;
1433
		}
1461
		}
1434
	}
1462
	}
1435
	
1463
	
1436
	public function obtenirTableauDerniersInscrits($id_annuaire, $limite = '20') {
1464
	public function obtenirTableauDerniersInscrits($id_annuaire, $limite = '20') {
1437
		
1465
		
1438
		// Chargement des informations de l'utilisateur dans la table annuaire principale
1466
		// Chargement des informations de l'utilisateur dans la table annuaire principale
1439
		$this->chargerModele('AnnuaireModele');
1467
		$this->chargerModele('AnnuaireModele');
1440
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
1468
		$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire);
1441
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1469
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1442
		$this->chargerModele('AnnuaireModele');
1470
		$this->chargerModele('AnnuaireModele');
1443
		$tableau_ids = $this->AnnuaireModele->obtenirTableauIdsUtilisateurs($id_annuaire, $tableau_mappage[0]);
1471
		$tableau_ids = $this->AnnuaireModele->obtenirTableauIdsUtilisateurs($id_annuaire, $tableau_mappage[0]);
1444
		
1472
		
1445
		$derniers_inscrits = array();
1473
		$derniers_inscrits = array();
1446
		
1474
		
1447
		foreach($tableau_ids as $id) {
1475
		foreach($tableau_ids as $id) {
1448
			
1476
			
1449
			$id_utilisateur = $id[$tableau_mappage[0][champ_id]];
1477
			$id_utilisateur = $id[$tableau_mappage[0][champ_id]];
1450
			$derniers_inscrits[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
1478
			$derniers_inscrits[$id_utilisateur] = $this->obtenirValeursUtilisateur($id_annuaire, $id_utilisateur);
1451
		}
1479
		}
1452
		
1480
		
1453
		return $derniers_inscrits;
1481
		return $derniers_inscrits;
1454
	}
1482
	}
1455
	
1483
	
1456
	public function chargerNombreAnnuaireListeInscrits($id_annuaire) {
1484
	public function chargerNombreAnnuaireListeInscrits($id_annuaire) {
1457
		$annuaire_modele = $this->getModele('AnnuaireModele');
1485
		$annuaire_modele = $this->getModele('AnnuaireModele');
1458
		return $annuaire_modele->chargerNombreAnnuaireListeInscrits($id_annuaire);
1486
		return $annuaire_modele->chargerNombreAnnuaireListeInscrits($id_annuaire);
1459
	}
1487
	}
1460
 
1488
 
1461
	public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones) {
1489
	public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones) {
1462
 
1490
 
1463
		$annuaire_modele = $this->getModele('AnnuaireModele');
1491
		$annuaire_modele = $this->getModele('AnnuaireModele');
1464
		return $annuaire_modele->chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones);
1492
		return $annuaire_modele->chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones);
1465
	}
1493
	}
1466
 
1494
 
1467
	public function chargerNombreAnnuaireListeInscritsParDepartement($id_annuaire) {
1495
	public function chargerNombreAnnuaireListeInscritsParDepartement($id_annuaire) {
1468
		$this->chargerModele('AnnuaireModele');
1496
		$this->chargerModele('AnnuaireModele');
1469
		return $this->AnnuaireModele->chargerNombreAnnuaireListeInscritsParDepartement($id_annuaire);
1497
		return $this->AnnuaireModele->chargerNombreAnnuaireListeInscritsParDepartement($id_annuaire);
1470
	}
1498
	}
1471
}
1499
}
1472
?>
1500
?>