Subversion Repositories Applications.annuaire

Rev

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

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