Subversion Repositories Applications.annuaire

Rev

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

Rev 55 Rev 81
Line 182... Line 182...
182
 
182
 
183
	 /** Renvoie l'identifiant du champ associé à l'image de profil (Avatar) dans un annuaire donné
183
	 /** Renvoie l'identifiant du champ associé à l'image de profil (Avatar) dans un annuaire donné
184
	 * @param int $id_annuaire l'identifiant de l'annuaire
184
	 * @param int $id_annuaire l'identifiant de l'annuaire
185
	 * @return string l'identifiant du champ date inscription dans l'annuaire donné ou false s'il n'en existe pas
185
	 * @return string l'identifiant du champ date inscription dans l'annuaire donné ou false s'il n'en existe pas
186
	 */
186
	 */
Line 187... Line 187...
187
	/*public function obtenirChampDate($id_annuaire) {
187
	public function obtenirChampDateEtValidite($id_annuaire) {
188
 
188
 
Line -... Line 189...
-
 
189
		$requete_champs_date_validite = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '.
-
 
190
		"AND at_action IN ('champ_date_inscription', 'champ_date_desinscription', 'champ_validite_inscription')";
-
 
191
 
189
		$requete_champs_avatar = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '.
192
		$resultat_champs_date_validite = $this->requeteTous($requete_champs_date_validite);
-
 
193
 
-
 
194
		$champs_date_validite = array();
Line 190... Line 195...
190
		"AND at_action = 'champ_avatar'";
195
		foreach ($resultat_champs_date_validite as $champ) {
191
 
196
     		$resultat_champs_date_validite[$champ['at_action']] = $champ['at_ressource'];
192
		$champ_avatar = $resultat_champs_avatar['at_valeur'];
197
		}
Line 193... Line 198...
193
 
198
 
194
		// TODO faire une interface de gestion des champs de mappage
199
		// TODO faire une interface de gestion des champs de mappage
195
		return $champ_avatar ;
200
		return $resultat_champs_date_validite ;
196
	}*/
201
	}
Line 319... Line 324...
319
		}
324
		}
Line 320... Line 325...
320
 
325
 
321
		$tableau_mappage = $this->obtenirChampsCartographie($id_annuaire);
326
		$tableau_mappage = $this->obtenirChampsCartographie($id_annuaire);
Line -... Line 327...
-
 
327
		$champ_pays = $tableau_mappage['champ_pays'][0];
-
 
328
 
322
		$champ_pays = $tableau_mappage['champ_pays'][0];
329
		$ids_recherchees = array_map('strtoupper', $ids_recherchees);
Line 323... Line 330...
323
 
330
 
324
		$resultat_nombre_inscrits = array();
331
		$resultat_nombre_inscrits = array();
325
 
332
 
Line 423... Line 430...
423
		$donnees = $this->proteger($donnees);
430
		$donnees = $this->proteger($donnees);
Line 424... Line 431...
424
 
431
 
Line 425... Line 432...
425
		//echo $donnees ;
432
		//echo $donnees ;
426
 
433
 
427
		// FIXME: les accents sautent alors que l'encodage est le bon ! Pourquoi ?
434
		// FIXME: les accents sautent alors que l'encodage est le bon ! Pourquoi ?
428
		$requete = 	'INSERT INTO annu_inscription_temp '.
435
		$requete = 	'INSERT INTO annu_donnees_temp '.
Line 429... Line 436...
429
					'VALUES '.
436
					'VALUES '.
430
					'('.$identifiant.','.$donnees.', NOW())';
437
					'('.$identifiant.','.$donnees.', NOW())';
Line 440... Line 447...
440
	 */
447
	 */
441
	public function chargerDonneesInscriptionTemporaire($identifiant) {
448
	public function chargerDonneesInscriptionTemporaire($identifiant) {
Line 442... Line 449...
442
 
449
 
Line 443... Line 450...
443
		$identifiant = $this->proteger($identifiant);
450
		$identifiant = $this->proteger($identifiant);
444
 
451
 
445
		$requete = 	'SELECT * FROM annu_inscription_temp '.
452
		$requete = 	'SELECT * FROM annu_donnees_temp '.
Line 446... Line 453...
446
					'WHERE '.
453
					'WHERE '.
Line 447... Line 454...
447
					'ait_id = '.$identifiant;
454
					'adt_id = '.$identifiant;
448
 
455
 
Line 463... Line 470...
463
	 */
470
	 */
464
	public function supprimerDonneesInscriptionTemporaire($identifiant) {
471
	public function supprimerDonneesInscriptionTemporaire($identifiant) {
Line 465... Line 472...
465
 
472
 
Line 466... Line 473...
466
		$identifiant = $this->proteger($identifiant);
473
		$identifiant = $this->proteger($identifiant);
467
 
474
 
468
		$requete = 	'DELETE FROM annu_inscription_temp '.
475
		$requete = 	'DELETE FROM annu_donnees_temp '.
Line 469... Line 476...
469
					'WHERE '.
476
					'WHERE '.
Line 470... Line 477...
470
					'ait_id = '.$identifiant;
477
					'adt_id = '.$identifiant;
471
 
478
 
Line 496... Line 503...
496
			return false;
503
			return false;
497
		}
504
		}
Line 498... Line 505...
498
 
505
 
Line -... Line 506...
-
 
506
		$annuaire = $resultat;
-
 
507
 
-
 
508
		$champs_date = $this->obtenirChampDateEtValidite($id_annuaire);
-
 
509
 
-
 
510
		// si l'on fonctionne sur un modele de type champ inscription valide = 1
-
 
511
		// puis valide = 0 lors de la desinscrption sans suppression
-
 
512
		// on l'indique
-
 
513
		if(isset($champs_date['champ_validite_inscription'])) {
-
 
514
			$valeurs_mappees[$champs_date['champ_validite_inscription']] = '1';
499
		$annuaire = $resultat;
515
		}
Line -... Line 516...
-
 
516
 
-
 
517
		$valeurs_prot = array_map(array($this,'proteger'),$valeurs_mappees);
-
 
518
 
-
 
519
		// si on a défini un champ date d'inscription, on l'ajoute à la liste des champs insérer
-
 
520
		// avec la valeur NOW
-
 
521
		if(isset($champs_date['champ_date_inscription'])) {
-
 
522
			$valeurs_mappees[$champs_date['champ_date_inscription']] = 'NOW()';
500
 
523
			$valeurs_prot[$champs_date['champ_date_inscription']] = 'NOW()';
501
		$valeurs_prot = array_map(array($this,'proteger'),$valeurs_mappees);
524
		}
Line 502... Line 525...
502
 
525
 
503
		$valeurs = implode(',',$valeurs_prot);
526
		$valeurs = implode(',',$valeurs_prot);
504
		$champs = implode(',',array_keys($valeurs_mappees));
527
		$champs = implode(',',array_keys($valeurs_mappees));
Line 505... Line 528...
505
 
528
 
Line -... Line 529...
-
 
529
		$requete_insertion_annuaire = 'INSERT INTO '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
-
 
530
			'('.$champs.') '.
506
		$requete_insertion_annuaire = 'INSERT INTO '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
531
			'VALUES ('.$valeurs.')';
507
			'('.$champs.') '.
532
 
508
			'VALUES ('.$valeurs.')';
533
		$id_nouvel_enregistrement = false;
509
 
534
 
510
		$id_nouvel_enregistrement = false;
535
		//Debug::printr($requete_insertion_annuaire);
Line 871... Line 896...
871
			return $resultat_selection_utilisateur;
896
			return $resultat_selection_utilisateur;
872
		}
897
		}
873
	}
898
	}
Line 874... Line 899...
874
 
899
 
-
 
900
	/**
-
 
901
	 * Récupère les valeurs utilisateur dans l'annuaire indiqué en les ordonnant par le champ demandé
-
 
902
	 * @param int $id_annuaire	l'identifiant de l'annuaire dans lequel on va travailler
-
 
903
	 * @param Array $champs_mappage les noms des champs que l'on veut récupérer
-
 
904
	 * @param string order_by le champ par lequel on ordonne les résultats
-
 
905
	 * @param limit la limite au nombre de résultats
-
 
906
	 * @return Array les informations demandées
-
 
907
	 */
-
 
908
	public function obtenirTableauValeursUtilisateurs($id_annuaire, $champs_mappage, $order_by = 'champ_id', $dir= 'DESC', $limit = '20') {
-
 
909
 
-
 
910
		$requete_infos_annuaire = 'SELECT * '.
-
 
911
					'FROM annu_annuaire '.
-
 
912
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
-
 
913
 
-
 
914
		$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire);
-
 
915
 
-
 
916
		// en cas d'erreur on renvoie false
-
 
917
		// TODO: lever une exception
-
 
918
		if(!$resultat_infos_annuaire) {
-
 
919
			return false;
-
 
920
		}
-
 
921
 
-
 
922
		$champ_order_by = $champs_mappage[$order_by];
-
 
923
 
-
 
924
		$champs_mappage_str = implode(',',$champs_mappage);
-
 
925
		$id_utilisateur = $this->proteger($id_utilisateur);
-
 
926
 
-
 
927
		$requete_selection_utilisateur = 'SELECT '.$champs_mappage_str.' '.
-
 
928
										 'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
-
 
929
										 'ORDER BY '.$champ_order_by.' '.$dir.' LIMIT '.$limit;
-
 
930
 
-
 
931
		$resultat_selection_utilisateur = $this->requeteTous($requete_selection_utilisateur);
-
 
932
 
-
 
933
		// en cas d'erreur on renvoie false
-
 
934
		// TODO: lever une exception
-
 
935
		if(!$resultat_selection_utilisateur) {
-
 
936
			return false;
-
 
937
		} else {
-
 
938
			return $resultat_selection_utilisateur;
-
 
939
		}
-
 
940
	}
-
 
941
	
-
 
942
/**
-
 
943
	 * Récupère les valeurs utilisateur dans l'annuaire indiqué en les ordonnant par le champ demandé
-
 
944
	 * @param int $id_annuaire	l'identifiant de l'annuaire dans lequel on va travailler
-
 
945
	 * @param Array $champs_mappage les noms des champs que l'on veut récupérer
-
 
946
	 * @param string order_by le champ par lequel on ordonne les résultats
-
 
947
	 * @param limit la limite au nombre de résultats
-
 
948
	 * @return Array les informations demandées
-
 
949
	 */
-
 
950
	public function obtenirTableauIdsUtilisateurs($id_annuaire, $champs_mappage, $order_by = 'champ_id', $dir= 'DESC', $limit = '20') {
-
 
951
 
-
 
952
		$requete_infos_annuaire = 'SELECT * '.
-
 
953
					'FROM annu_annuaire '.
-
 
954
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
-
 
955
 
-
 
956
		$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire);
-
 
957
 
-
 
958
		// en cas d'erreur on renvoie false
-
 
959
		// TODO: lever une exception
-
 
960
		if(!$resultat_infos_annuaire) {
-
 
961
			return false;
-
 
962
		}
-
 
963
 
-
 
964
		$champ_order_by = $champs_mappage[$order_by];
-
 
965
 
-
 
966
		$requete_selection_utilisateur = 'SELECT '.$champs_mappage['champ_id'].' '.
-
 
967
										 'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
-
 
968
										 'ORDER BY '.$champ_order_by.' '.$dir.' LIMIT '.$limit;
-
 
969
		
-
 
970
		$resultat_selection_utilisateur = $this->requeteTous($requete_selection_utilisateur);
-
 
971
 
-
 
972
		// en cas d'erreur on renvoie false
-
 
973
		// TODO: lever une exception
-
 
974
		if(!$resultat_selection_utilisateur) {
-
 
975
			return false;
-
 
976
		} else {
-
 
977
			return $resultat_selection_utilisateur;
-
 
978
		}
-
 
979
	}
-
 
980
	
-
 
981
	
-
 
982
 
875
	/**
983
	/**
876
	 * Supprime une inscription dans une table annuaire
984
	 * Supprime une inscription dans une table annuaire
877
	 * @param int $id_annuaire l'identifiant de l'annuaire dans lequel on supprime les données
985
	 * @param int $id_annuaire l'identifiant de l'annuaire dans lequel on supprime les données
878
	 * @param int $id_utilisateur l'identifiant de l'utilisateur à supprimer
986
	 * @param int $id_utilisateur l'identifiant de l'utilisateur à supprimer
879
	 * @return boolean true si la suppression a réussi, false sinon
987
	 * @return boolean true si la suppression a réussi, false sinon
Line 892... Line 1000...
892
		// TODO: lever une exception
1000
		// TODO: lever une exception
893
		if(!$resultat_infos_annuaire) {
1001
		if(!$resultat_infos_annuaire) {
894
			return false;
1002
			return false;
895
		}
1003
		}
Line -... Line 1004...
-
 
1004
 
-
 
1005
		//$supprimer_donnes = false;
-
 
1006
		$valeurs_mappees = array();
-
 
1007
 
-
 
1008
		$champs_date = $this->obtenirChampDateEtValidite($id_annuaire);
-
 
1009
 
-
 
1010
		// si on a défini un champ de validite d'inscription, on ne supprime pas l'enregistrement
-
 
1011
		// mais on remplace cette valeur par 0
-
 
1012
		/*if(isset($champs_date['champ_validite_inscription'])) {
-
 
1013
			$valeurs_mappees[$champs_date['champ_validite_inscription']] = '1';
-
 
1014
			$supprimer_donnees = true;
-
 
1015
		}
-
 
1016
 
-
 
1017
		// si on a défini un champ date de desinscription, on met à jour avec la valeur NOW
-
 
1018
		// avec la valeur NOW
-
 
1019
		if(isset($champs_date['champ_date_desinscription'])) {
-
 
1020
			$valeurs_mappees[$champs_date['champ_date_desinscription']] = 'NOW()';
-
 
1021
		}*/
-
 
1022
 
896
 
1023
		//if($supprimer_donnees) {
897
		$requete_suppression_utilisateur = 'DELETE FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
1024
			$requete_suppression_utilisateur = 'DELETE FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
-
 
1025
											 'WHERE '.$champs_mappage[0]['champ_id'].' = '.$this->proteger($id_utilisateur);
-
 
1026
 
-
 
1027
		/*} else {
-
 
1028
 
-
 
1029
			$champs_valeurs = '';
-
 
1030
			foreach($valeurs_mappees as $cle => $valeur) {
-
 
1031
				$champs_valeurs .= $cle.' = '.$valeur.', ';
-
 
1032
			}
-
 
1033
 
-
 
1034
			$requete_suppression_utilisateur = 'UPDATE '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
-
 
1035
											 	'SET '.$champs_valeurs.' '.
-
 
1036
												'WHERE '.$champs_mappage[0]['champ_id'].' = '.$this->proteger($id_utilisateur);
Line 898... Line 1037...
898
										 'WHERE '.$champs_mappage[0]['champ_id'].' = '.$this->proteger($id_utilisateur);
1037
		}*/
Line 899... Line 1038...
899
 
1038
 
900
		$resultat_suppression_utilisateur = $this->requeteUn($requete_suppression_utilisateur);
1039
		$resultat_suppression_utilisateur = $this->requeteUn($requete_suppression_utilisateur);
901
 
1040
 
902
		// en cas d'erreur on renvoie false
-
 
903
		// TODO: lever une exception
1041
		// en cas d'erreur on renvoie false
904
		if($this->utilisateurExisteParId($id_annuaire, $id_utilisateur, $champs_mappage)) {
1042
		// TODO: lever une exception
Line 905... Line 1043...
905
 
1043
		if($this->utilisateurExisteParId($id_annuaire, $id_utilisateur, $champs_mappage)) {
906
			return false;
1044
			return false;