Subversion Repositories Applications.annuaire

Rev

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

Rev 50 Rev 52
Line 62... Line 62...
62
		}
62
		}
Line 63... Line 63...
63
 
63
 
64
		return $annuaire;
64
		return $annuaire;
Line -... Line 65...
-
 
65
	}
-
 
66
 
-
 
67
	/**
-
 
68
	 * Charge les champs de mappage d'un annuaire, c'est à dire les champs de metadonnées qui correspondent à un champ
-
 
69
	 * déjà présent dans la table mappée
-
 
70
	 * @param int $id_annuaire l'identifiant de l'annuaire
65
	}
71
	 * @return array un tableau contenant les noms de champs mappés et les ids des champs métadonnées correspondants
Line 66... Line 72...
66
 
72
	 */
Line 67... Line 73...
67
	public function obtenirChampsMappageAnnuaire($id_annuaire) {
73
	public function obtenirChampsMappageAnnuaire($id_annuaire) {
Line 87... Line 93...
87
		// TODO faire une interface de gestion des champs de mappage
93
		// TODO faire une interface de gestion des champs de mappage
Line 88... Line 94...
88
 
94
 
89
		return $tableau_mappage ;
95
		return $tableau_mappage ;
Line -... Line 96...
-
 
96
	}
-
 
97
 
-
 
98
	/**
-
 
99
	 * Charge les champs obligatoire d'un annuaire, c'est à dire les champs qui doivent être présents et remplis dans le
-
 
100
	 * formulaire
-
 
101
	 * @param int $id_annuaire l'identifiant de l'annuaire
90
	}
102
	 * @return un tableau contenant les ids des champs obligatoire
Line 91... Line 103...
91
 
103
	 */
Line 92... Line 104...
92
	public function obtenirChampsObligatoires($id_annuaire) {
104
	public function obtenirChampsObligatoires($id_annuaire) {
Line 111... Line 123...
111
 
123
 
112
		// TODO faire une interface de gestion des champs de mappage
124
		// TODO faire une interface de gestion des champs de mappage
113
		return $tableau_obligatoire ;
125
		return $tableau_obligatoire ;
Line -... Line 126...
-
 
126
	}
-
 
127
 
114
	}
128
	/**
-
 
129
	 * Charge les champs de cartographie d'un annuaire, c'est à dire les champs utilisées pour générer la carte des inscrits
-
 
130
	 * @param int $id_annuaire l'identifiant de l'annuaire
115
 
131
	 * @return array un tableau contenant les identifiants ou les noms des champs cartographiques
Line -... Line 132...
-
 
132
	 */
116
	/*public function obtenirChampAvatar($id_annuaire) {
133
	public function obtenirChampsCartographie($id_annuaire) {
117
		$tableau_mappage = array();
134
 
Line 118... Line 135...
118
 
135
		// TODO rendre les noms de champs plus générique
Line 119... Line 136...
119
		$requete_champs_obligatoire = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '.
136
		$requete_champs_carto = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '.
Line 120... Line 137...
120
		"AND at_action = 'champ_avatar'";
137
		"AND at_action IN ('champ_pays', 'champ_code_postal')";
121
 
138
 
122
		$resultat_champs_obligatoire = $this->requeteUn($requete_champs_obligatoire);
139
		$resultat_champs_carto = $this->requeteTous($requete_champs_carto);
Line 123... Line 140...
123
 
140
 
124
		$tableau_mappage = array();
141
		$tableau_carto = array();
125
 
142
 
-
 
143
		if(!$resultat_champs_carto) {
126
		if(!$resultat_champs_obligatoire) {
144
			trigger_error('impossible de récupérer les champs cartographiques de l\'annuaire '.$id_annuaire);
Line 127... Line 145...
127
			trigger_error('impossible de récupérer les champs de obligatoire de l\'annuaire '.$id_annuaire);
145
		}
128
		}
146
 
-
 
147
		foreach ($resultat_champs_carto as  $champ) {
-
 
148
			// le tableau des champs carto se présente sous la forme type de champ => [0] nom_champ_annuaire [1] nomù champ metadonnées
-
 
149
			$tableau_carto[$champ['at_action']][0] = $champ['at_ressource'];
-
 
150
			$tableau_carto[$champ['at_action']][1] = $champ['at_valeur'];
-
 
151
		}
-
 
152
 
129
 
153
		// TODO faire une interface de gestion des champs de mappage
-
 
154
		return $tableau_carto ;
-
 
155
	}
-
 
156
 
-
 
157
	/**
-
 
158
	 * Renvoie l'identifiant du champ associé à l'image de profil (Avatar) dans un annuaire donné
-
 
159
	 * @param int $id_annuaire l'identifiant de l'annuaire
-
 
160
	 * @return string l'identifiant du champ avatar dans l'annuaire donné ou false s'il n'en existe pas
-
 
161
	 */
-
 
162
	public function obtenirChampAvatar($id_annuaire) {
-
 
163
 
-
 
164
		$requete_champs_avatar = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '.
-
 
165
		"AND at_action = 'champ_avatar'";
-
 
166
 
-
 
167
		$resultat_champs_avatar = $this->requeteUn($requete_champs_avatar);
-
 
168
 
-
 
169
		$champ_avatar = false;
-
 
170
 
-
 
171
		if(!$resultat_champs_avatar) {
Line 130... Line 172...
130
		foreach ($resultat_champs_obligatoire as  $champ) {
172
			trigger_error('impossible de récupérer le champ avatar de l\'annuaire '.$id_annuaire);
131
			// le tableau des champs obligatoires se présente sous la forme nom_champ_metadonnee => nom_champ_annuaire
173
		}
-
 
174
 
132
			$tableau_obligatoire[$champ['at_valeur']] = $champ['at_ressource'];
175
		$champ_avatar = $resultat_champs_avatar['at_valeur'];
133
		}
176
 
134
 
177
		// TODO faire une interface de gestion des champs de mappage
Line 135... Line 178...
135
		// TODO faire une interface de gestion des champs de mappage
178
		return $champ_avatar ;
Line 160... Line 203...
160
 
203
 
161
		$resultat_nombre_inscrits = $this->requeteUn($requete_nombre_inscrits);
204
		$resultat_nombre_inscrits = $this->requeteUn($requete_nombre_inscrits);
162
		return $resultat_nombre_inscrits['nom_inscrits'] ;
205
		return $resultat_nombre_inscrits['nom_inscrits'] ;
Line -... Line 206...
-
 
206
	}
-
 
207
 
-
 
208
	/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par départements
-
 
209
	 * @param int $identifiant l'identifiant de l'annuaire mappé
-
 
210
	 * @return array un tableau indexé par les numéros de departement contenant le nombre d'inscrits à chacun
163
	}
211
	 *
Line 164... Line 212...
164
 
212
	 */
165
	public function chargerNombreAnnuaireListeInscritsParDepartement($identifiant) {
213
	public function chargerNombreAnnuaireListeInscritsParDepartement($identifiant) {
166
 
214
 
Line 194... Line 242...
194
				} else {
242
				} else {
195
					foreach ($donnees as $donnee) {
243
					foreach ($donnees as $donnee) {
196
						$resultat_nombre_inscrits[$donnee['id']] = $donnee['nbre'];
244
						$resultat_nombre_inscrits[$donnee['id']] = $donnee['nbre'];
197
					}
245
					}
198
				}
246
				}
199
			} catch (PDOException $e) {
247
			} catch (Exception $e) {
200
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
248
				$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
201
			}
249
			}
Line 202... Line 250...
202
 
250
 
203
		if(!$resultat_informations_annuaire) {
251
		if(!$resultat_informations_annuaire) {
204
			trigger_error('impossible de récupérer le nombre d\'inscrits de la table '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']);
252
			trigger_error('impossible de récupérer le nombre d\'inscrits de la table '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']);
Line 205... Line 253...
205
		}
253
		}
206
 
254
 
Line -... Line 255...
-
 
255
		return $resultat_nombre_inscrits;
-
 
256
	}
-
 
257
 
-
 
258
	/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par pays
-
 
259
	 * @param int $identifiant l'identifiant de l'annuaire mappé
-
 
260
	 * @param array $id_recherchees un tableau contenant les codes de pays à rechercher
207
		return $resultat_nombre_inscrits;
261
	 * @return array un tableau indexé par les numéros de departement contenant le nombre d'inscrits à chacun
Line 208... Line 262...
208
	}
262
	 *
209
 
263
	 */
210
	public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) {
264
	public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) {
Line 216... Line 270...
216
 
270
 
217
		if(!$resultat_informations_annuaire) {
271
		if(!$resultat_informations_annuaire) {
218
			trigger_error('impossible de récupérer les informations de la table '.$id_annuaire);
272
			trigger_error('impossible de récupérer les informations de la table '.$id_annuaire);
Line 219... Line 273...
219
		}
273
		}
220
 
274
 
Line 221... Line 275...
221
		$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
275
		$tableau_mappage = $this->obtenirChampsCartographie($id_annuaire);
Line 222... Line 276...
222
		$champ_pays = 'U_COUNTRY';
276
		$champ_pays = $tableau_mappage['champ_pays'][0];
223
 
277
 
Line 249... Line 303...
249
		}
303
		}
Line 250... Line 304...
250
 
304
 
251
		return $resultat_nombre_inscrits;
305
		return $resultat_nombre_inscrits;
Line -... Line 306...
-
 
306
	}
-
 
307
 
-
 
308
	/**
-
 
309
	 * Recherche selon une valeur d'un champ qui peut être une valeur approximative (avec des %) dans un champ d'annuaire donné
-
 
310
	 * @param int $id_annuaire l'identifiant de l'annuaire
-
 
311
	 * @param string $champ_critere le champ qui servira de filtre
-
 
312
	 * @param string $valeur la valeur à rechercher
-
 
313
	 * @param boolean $modele indique si l'on veut recherche la valeur exacte ou non
252
	}
314
	 * @return array un tableau contenant la liste des inscrits dans l'annuaire donné, correspondants à ce critère
Line 253... Line 315...
253
 
315
	 */
Line 254... Line 316...
254
	public function rechercherInscritDansAnnuaireMappeParChamp($id_annuaire, $champ_critere, $valeur, $modele = false) {
316
	public function rechercherInscritDansAnnuaireMappeParChamp($id_annuaire, $champ_critere, $valeur, $modele = false) {
Line 426... Line 488...
426
		$id_nouvel_enregistrement = $resultat_nouvel_id[$nom_champs['champ_id']];
488
		$id_nouvel_enregistrement = $resultat_nouvel_id[$nom_champs['champ_id']];
Line 427... Line 489...
427
 
489
 
428
		return $id_nouvel_enregistrement;
490
		return $id_nouvel_enregistrement;
Line -... Line 491...
-
 
491
	}
-
 
492
 
-
 
493
	/**
-
 
494
	 * Modifie les valeurs données dans l'annuaire indiqué
-
 
495
	 * @param int $id_annuaire	l'identifiant de l'annuaire dans lequel on va travailler
-
 
496
	 * @param int $id_annuaire	l'identifiant de l'utilisateur à qui à modifier
-
 
497
	 * @param Array $valeurs_mappees un tableau de valeurs à modifier
-
 
498
	 * @param string $nom_champs les noms des champs dans lesquels on va modifier les données
429
	}
499
	 * @return boolean true ou false suivant le succès de l'operation
Line 430... Line 500...
430
 
500
	 */
431
	public function modifierInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur, $valeurs_mappees, $champs_mappage) {
501
	public function modifierInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur, $valeurs_mappees, $champs_mappage) {
432
 
502
 
Line 465... Line 535...
465
			return true;
535
			return true;
466
		}
536
		}
Line 467... Line 537...
467
 
537
 
Line -... Line 538...
-
 
538
	}
-
 
539
 
-
 
540
	/**
-
 
541
	 * Renvoie le mail associé à l'identifiant d'un utilisateur dans un annuaire donné
-
 
542
	 * @param int $id_annuair l'identifiant de l'annuaire
-
 
543
	 * @param int $id_utilisateur l'identifiant de l'utilisateur
468
	}
544
	 * @return string le mail associé à cet identifiant ou false si l'utilisateur n'existe pas
Line 469... Line 545...
469
 
545
	 */
470
	public function obtenirMailParId($id_annuaire, $id_utilisateur) {
546
	public function obtenirMailParId($id_annuaire, $id_utilisateur) {
471
 
547
 
Line 505... Line 581...
505
			return $resultat_selection_utilisateur[$champs_mappage['champ_mail']];
581
			return $resultat_selection_utilisateur[$champs_mappage['champ_mail']];
506
		}
582
		}
Line 507... Line 583...
507
 
583
 
Line -... Line 584...
-
 
584
	}
-
 
585
 
-
 
586
	/**
-
 
587
	 * Renvoie les mail associés des identifiants d'utilisateur dans un annuaire donné
-
 
588
	 * @param int $id_annuair l'identifiant de l'annuaire
-
 
589
	 * @param array $ids_utilisateurs les identifiants des l'utilisateur
508
	}
590
	 * @return array un tableau contenant les mails associés à ces identifiant ou false si les utilisateurs n'existent pas
Line 509... Line 591...
509
 
591
	 */
510
	public function obtenirMailParTableauId($id_annuaire, $tableau_ids_utilisateurs) {
592
	public function obtenirMailParTableauId($id_annuaire, $tableau_ids_utilisateurs) {
511
 
593
 
Line 550... Line 632...
550
			return $resultat_utilisateurs;
632
			return $resultat_utilisateurs;
551
		}
633
		}
Line 552... Line 634...
552
 
634
 
Line -... Line 635...
-
 
635
	}
-
 
636
 
-
 
637
	/**
-
 
638
	 * Renvoie l'id associé au mail d'un utilisateur dans un annuaire donné
-
 
639
	 * @param int $id_annuair l'identifiant de l'annuaire
-
 
640
	 * @param int $mail_utilisateur le mail de l'utilisateur
553
	}
641
	 * @return string l'id associé à ce mail ou false si l'utilisateur n'existe pas
Line 554... Line 642...
554
 
642
	 */
555
	public function obtenirIdParMail($id_annuaire, $mail_utilisateur) {
643
	public function obtenirIdParMail($id_annuaire, $mail_utilisateur) {
556
 
644
 
Line 762... Line 850...
762
			$separateur = ' AND ';
850
			$separateur = ' AND ';
763
		} else {
851
		} else {
764
			$separateur = ' OR ';
852
			$separateur = ' OR ';
765
		}
853
		}
Line -... Line 854...
-
 
854
 
766
 
855
		// on inclut les identifiants déjà trouvé par les critères de métadonnées
Line 767... Line 856...
767
		if(is_array($id_a_inclure) && count($id_a_inclure) != 0) {
856
		if(is_array($id_a_inclure) && count($id_a_inclure) != 0) {
Line 768... Line 857...
768
 
857
 
769
			$id_inclus = implode(',',$id_a_inclure);
858
			$id_inclus = implode(',',$id_a_inclure);
770
 
859
 
Line -... Line 860...
-
 
860
			$requete_conditions_inscrits .= $champs_mappage[0]['champ_id'].' IN '.
771
			$requete_conditions_inscrits .= $champs_mappage[0]['champ_id'].' IN '.
861
			'('.$id_inclus.')'.$separateur ;
772
			'('.$id_inclus.')'.$separateur ;
862
		}
773
		}
863
 
774
 
864
		// si le champ contient un % alors on ne cherche pas une valeur exacte : on utilise LIKE
775
		foreach($valeurs as $champ => $valeur) {
865
		foreach($valeurs as $champ => $valeur) {
Line 804... Line 894...
804
		}
894
		}
Line 805... Line 895...
805
 
895
 
806
		return array('total' => $nb_inscrits, 'resultat' => $resultat_recherche_inscrits) ;
896
		return array('total' => $nb_inscrits, 'resultat' => $resultat_recherche_inscrits) ;
Line -... Line 897...
-
 
897
	}
-
 
898
 
-
 
899
	/**
-
 
900
	 * Reinitialise un mot de passe associé à un mail donné et en renvoie un nouveau,
-
 
901
	 * généré aléatoirement
-
 
902
	 * @param int $id_annuaire l'identifiant de l'annuaire
-
 
903
	 * @param string $mail le mail dont on doit réinitialiser le mot de passe
807
	}
904
	 * @return string le nouveau mot de passe ou false si l'utilisateur n'existe pas
Line 808... Line 905...
808
 
905
	 */
809
	public function reinitialiserMotDePasse($id_annuaire, $mail) {
906
	public function reinitialiserMotDePasse($id_annuaire, $mail) {