43,7 → 43,6 |
* @return array un tableau contenant des objets d'informations sur les annuaires |
*/ |
public function chargerAnnuaire($identifiant, $charger_liste_champs = true) { |
|
$requete = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$identifiant.' '; |
123,26 → 122,23 |
* @return array un tableau contenant les identifiants ou les noms des champs cartographiques |
*/ |
public function obtenirChampsCartographie($id_annuaire) { |
|
// TODO rendre les noms de champs plus générique |
$requete_champs_carto = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
$requete_champs_carto = 'SELECT * FROM annu_triples '. |
'WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
"AND at_action IN ('champ_pays', 'champ_code_postal')"; |
|
$resultat_champs_carto = $this->requeteTous($requete_champs_carto); |
|
$tableau_carto = array(); |
|
if(!$resultat_champs_carto) { |
trigger_error('impossible de récupérer les champs cartographiques de l\'annuaire '.$id_annuaire); |
} |
|
$tableau_carto = array(); |
foreach ($resultat_champs_carto as $champ) { |
// le tableau des champs carto se présente sous la forme type de champ => [0] nom_champ_annuaire [1] nomù champ metadonnées |
$tableau_carto[$champ['at_action']][0] = $champ['at_ressource']; |
$tableau_carto[$champ['at_action']][1] = $champ['at_valeur']; |
} |
|
|
return $tableau_carto ; |
} |
|
152,21 → 148,19 |
* @return string l'identifiant du champ avatar dans l'annuaire donné ou false s'il n'en existe pas |
*/ |
public function obtenirChampAvatar($id_annuaire) { |
|
$requete_champs_avatar = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
$requete_champs_avatar = 'SELECT * '. |
'FROM annu_triples '. |
'WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
"AND at_action = 'champ_avatar'"; |
|
$resultat_champs_avatar = $this->requeteUn($requete_champs_avatar); |
|
$champ_avatar = false; |
|
if(!$resultat_champs_avatar) { |
trigger_error('impossible de récupérer le champ avatar de l\'annuaire '.$id_annuaire); |
} |
|
$champ_avatar = $resultat_champs_avatar['at_valeur']; |
|
|
return $champ_avatar ; |
} |
|
175,18 → 169,16 |
* @return string l'identifiant du champ date inscription dans l'annuaire donné ou false s'il n'en existe pas |
*/ |
public function obtenirChampDateEtValidite($id_annuaire) { |
|
$requete_champs_date_validite = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
$requete_champs_date_validite = 'SELECT * '. |
'FROM annu_triples '. |
'WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
"AND at_action IN ('champ_date_inscription', 'champ_date_desinscription', 'champ_validite_inscription')"; |
|
$resultat_champs_date_validite = $this->requeteTous($requete_champs_date_validite); |
|
$champs_date_validite = array(); |
foreach ($resultat_champs_date_validite as $champ) { |
$resultat_champs_date_validite[$champ['at_action']] = $champ['at_ressource']; |
} |
|
|
return $resultat_champs_date_validite ; |
} |
|
196,24 → 188,18 |
* @return array un tableau contenant les noms de champs mappés et les ids des champs métadonnées correspondants |
*/ |
public function obtenirChampsDescriptionAnnuaire($id_annuaire) { |
|
$tableau_mappage = array(); |
|
$requete_champs_mappage = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire); |
|
$resultat_champs_mappage = $this->requeteTous($requete_champs_mappage); |
|
$tableau_mappage = array(); |
|
if(!$resultat_champs_mappage) { |
trigger_error('impossible de récupérer les champs décrivant l\'annuaire '.$id_annuaire); |
} |
|
$tableau_mappage = array(); |
foreach ($resultat_champs_mappage as $champ) { |
$tableau_mappage[0][$champ['at_action']] = $champ['at_ressource']; |
$tableau_mappage[1][$champ['at_action']] = $champ['at_valeur']; |
} |
|
return $tableau_mappage ; |
} |
|
221,7 → 207,6 |
* @param int $identifiant l'identifiant de l'annuaire mappé |
*/ |
public function chargerNombreAnnuaireListeInscrits($identifiant) { |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$identifiant.' '; |
255,7 → 240,6 |
* |
*/ |
public function chargerNombreAnnuaireListeInscritsParDepartement($identifiant) { |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$identifiant.' '; |
308,12 → 292,11 |
* |
*/ |
public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) { |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire); |
|
if(!$resultat_informations_annuaire) { |
trigger_error('impossible de récupérer les informations de la table '.$id_annuaire); |
} |
321,10 → 304,6 |
$tableau_mappage = $this->obtenirChampsCartographie($id_annuaire); |
$champ_pays = $tableau_mappage['champ_pays'][0]; |
|
//$ids_recherchees = array_map(array($this,'formaterAbreviationPaysPourRecherche'), $ids_recherchees); |
|
$resultat_nombre_inscrits = array(); |
|
$requete_nombre_inscrits = 'SELECT '.$champ_pays.', COUNT(*) AS nbre '. |
'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' '. |
' WHERE '.$champ_pays.' IN '. |
333,6 → 312,7 |
'ORDER BY '.$champ_pays.' ASC '; |
|
// Récupération des résultats |
$resultat_nombre_inscrits = array(); |
try { |
$donnees = $this->requeteTous($requete_nombre_inscrits); |
if ($donnees === false) { |
366,13 → 346,8 |
* @return array un tableau contenant la liste des inscrits dans l'annuaire donné, correspondants à ce critère |
*/ |
public function rechercherInscritDansAnnuaireMappeParTableauChamps($id_annuaire, $criteres, $modele = false, $numero_page = 1, $taille_page = 50) { |
$sep = $modele ? '%' : ''; |
|
$sep = ''; |
|
if($modele) { |
$sep = '%'; |
} |
|
foreach($criteres as $champ => $valeur) { |
$criteres[$champ] = $valeur.$sep; |
} |
389,7 → 364,6 |
* |
*/ |
public function chargerAnnuaireListeInscrits($id_annuaire, $numero_page = 1, $taille_page = 50) { |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
398,7 → 372,8 |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$requete_nb_inscrits = 'SELECT COUNT( * ) as nb '.' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']; |
$requete_nb_inscrits = 'SELECT COUNT( * ) AS nb '. |
'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']; |
|
$resultat_nb_inscrits = $this->requeteUn($requete_nb_inscrits); |
|
407,7 → 382,8 |
$nb_inscrits = $resultat_nb_inscrits['nb']; |
} |
|
$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']; |
$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].' '. |
'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']; |
|
if($taille_page != 0) { |
$requete_recherche_inscrits .= ' LIMIT '.(($numero_page-1)*$taille_page).','.($taille_page); |
430,7 → 406,6 |
* @return int l'identifiant du nouvel enregistrement |
*/ |
public function ajouterInscriptionDansAnnuaireMappe($id_annuaire, $valeurs_mappees, $nom_champs) { |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
489,9 → 464,6 |
$nom_champs['champ_mail'].' = '.$this->proteger($valeurs_mappees[$nom_champs['champ_mail']]); |
|
$resultat_nouvel_id = $this->requeteUn($requete_nouvel_id); |
|
|
|
if(!$resultat_nouvel_id) { |
return $id_nouvel_enregistrement; |
} |
510,7 → 482,6 |
* @return boolean true ou false suivant le succès de l'operation |
*/ |
public function modifierInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur, $valeurs_mappees, $champs_mappage) { |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
549,7 → 520,6 |
} |
|
public function obtenirValeurChampAnnuaireMappe($id_annuaire, $id_utilisateur, $champ) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal |
$champs_mappage = $champs_mappage[0]; |
560,8 → 530,6 |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
575,8 → 543,6 |
|
$resultat_selection_valeur = $this->requeteUn($requete_selection_valeur); |
|
|
|
if(!$resultat_selection_valeur) { |
return false; |
} else { |
585,7 → 551,6 |
} |
|
public function modifierValeurChampAnnuaireMappe($id_annuaire, $id_utilisateur, $champ, $valeur) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal |
$champs_mappage = $champs_mappage[0]; |
592,29 → 557,22 |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
"WHERE aa_id_annuaire = $id_annuaire "; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
|
$champs_mappage_str = implode(',',$champs_mappage); |
$id_utilisateur = $this->proteger($id_utilisateur); |
$valeur = $this->proteger($valeur); |
|
$requete_modification_valeur = 'UPDATE '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
'SET '.$champ.' = '.$valeur.' '. |
$requete_modification_valeur = |
'UPDATE '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
"SET $champ = $valeur ". |
'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur; |
|
|
$resultat_modification_valeur = $this->requeteUn($requete_modification_valeur); |
|
|
|
return $resultat_modification_valeur; |
} |
|
625,24 → 583,19 |
* @return string le mail associé à cet identifiant ou false si l'utilisateur n'existe pas |
*/ |
public function obtenirMailParId($id_annuaire, $id_utilisateur) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal |
$champs_mappage = $champs_mappage[0]; |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
|
$champs_mappage_str = implode(',',$champs_mappage); |
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal |
$champs_mappage = $champs_mappage[0]; |
|
$id_utilisateur = $this->proteger($id_utilisateur); |
|
$requete_selection_utilisateur = 'SELECT '.$champs_mappage['champ_mail'].' '. |
649,13 → 602,8 |
'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur; |
|
|
|
//echo $requete_selection_utilisateur; |
$resultat_selection_utilisateur = $this->requeteUn($requete_selection_utilisateur); |
|
|
|
if(!$resultat_selection_utilisateur) { |
return false; |
} else { |
671,25 → 619,18 |
* @return array un tableau contenant les mails associés à ces identifiant ou false si les utilisateurs n'existent pas |
*/ |
public function obtenirMailParTableauId($id_annuaire, $tableau_ids_utilisateurs) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal |
$champs_mappage = $champs_mappage[0]; |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
|
$champs_mappage_str = implode(',',$champs_mappage); |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal |
$champs_mappage = $champs_mappage[0]; |
$tableau_ids_utilisateurs_p = array_map(array($this, 'proteger'), $tableau_ids_utilisateurs); |
$str_ids_utilisateurs = implode(',',$tableau_ids_utilisateurs_p); |
|
700,19 → 641,14 |
$resultat_selection_utilisateurs = $this->requeteTous($requete_selection_utilisateurs); |
|
$resultat_utilisateurs = array(); |
|
foreach($resultat_selection_utilisateurs as $utilisateur) { |
$resultat_utilisateurs[] = $utilisateur[$champs_mappage['champ_mail']]; |
} |
|
|
|
if(!$resultat_selection_utilisateurs) { |
return false; |
} else { |
return $resultat_utilisateurs; |
} |
|
} |
|
/** |
722,7 → 658,6 |
* @return string l'id associé à ce mail ou false si l'utilisateur n'existe pas |
*/ |
public function obtenirIdParMail($id_annuaire, $mail_utilisateur) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal |
$champs_mappage = $champs_mappage[0]; |
732,9 → 667,6 |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
749,7 → 681,6 |
} else { |
return $resultat_selection_utilisateur[$champs_mappage['champ_id']]; |
} |
|
} |
|
/** |
799,15 → 730,11 |
|
// TODO: commenter |
public function comparerIdentifiantMotDePasse($id_annuaire, $id_utilisateur, $mot_de_passe) { |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
819,7 → 746,7 |
$mot_de_passe = $this->proteger($mot_de_passe); |
$id_utilisateur = $this->proteger($id_utilisateur); |
|
$requete_selection_utilisateur = 'SELECT COUNT(*) as match_login_mdp '. |
$requete_selection_utilisateur = 'SELECT COUNT(*) AS match_login_mdp '. |
'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur.' '. |
'AND '.$champs_mappage['champ_pass'].' = '.$mot_de_passe; |
843,36 → 770,28 |
* @return Array les informations demandées |
*/ |
public function obtenirValeursUtilisateur($id_annuaire, $id_utilisateur, $champs_mappage) { |
|
$requete_infos_annuaire = 'SELECT * '. |
$requete = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
$resultat = $this->requeteUn($requete); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
|
$retour = false; |
if ($resultat) { |
$champs_mappage_str = implode(',',$champs_mappage); |
$id_utilisateur = $this->proteger($id_utilisateur); |
$idUtilisateurP = $this->proteger($id_utilisateur); |
|
$requete_selection_utilisateur = 'SELECT '.$champs_mappage_str.' '. |
'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur; |
$requete = 'SELECT '.$champs_mappage_str.' '. |
'FROM '.$resultat['aa_bdd'].'.'.$resultat['aa_table'].' '. |
'WHERE '.$champs_mappage['champ_id'].' = '.$idUtilisateurP; |
|
$resultat_selection_utilisateur = $this->requeteUn($requete_selection_utilisateur); |
|
|
|
if(!$resultat_selection_utilisateur) { |
return false; |
} else { |
return $resultat_selection_utilisateur; |
$resultat = $this->requeteUn($requete); |
if ($resultat) { |
$retour = $resultat; |
} |
} |
return $retour; |
} |
|
/** |
* Récupère les valeurs utilisateur dans l'annuaire indiqué en les ordonnant par le champ demandé |
883,15 → 802,11 |
* @return Array les informations demandées |
*/ |
public function obtenirTableauValeursUtilisateurs($id_annuaire, $champs_mappage, $order_by = 'champ_id', $dir= 'DESC', $limit = '20') { |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
906,9 → 821,6 |
'ORDER BY '.$champ_order_by.' '.$dir.' LIMIT '.$limit; |
|
$resultat_selection_utilisateur = $this->requeteTous($requete_selection_utilisateur); |
|
|
|
if(!$resultat_selection_utilisateur) { |
return false; |
} else { |
925,15 → 837,11 |
* @return Array les informations demandées |
*/ |
public function obtenirTableauIdsUtilisateurs($id_annuaire, $champs_mappage, $order_by = 'champ_id', $dir= 'DESC', $limit = '20') { |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
946,8 → 854,6 |
|
$resultat_selection_utilisateur = $this->requeteTous($requete_selection_utilisateur); |
|
|
|
if(!$resultat_selection_utilisateur) { |
return false; |
} else { |
956,7 → 862,6 |
} |
|
public function obtenirNombreInscriptionsDansIntervalleDate($id_annuaire, $date_debut, $date_fin) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$requete_infos_annuaire = 'SELECT * '. |
964,9 → 869,6 |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
990,11 → 892,8 |
} |
|
return $resultat_nb_inscrits_intervalle['nb']; |
|
} |
|
|
|
/** |
* Supprime une inscription dans une table annuaire |
* @param int $id_annuaire l'identifiant de l'annuaire dans lequel on supprime les données |
1002,7 → 901,6 |
* @return boolean true si la suppression a réussi, false sinon |
*/ |
public function supprimerInscriptionDansAnnuaireMappe($id_annuaire, $id_utilisateur) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$requete_infos_annuaire = 'SELECT * '. |
1011,54 → 909,21 |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
|
|
if(!$resultat_infos_annuaire) { |
return false; |
} |
|
//$supprimer_donnes = false; |
$valeurs_mappees = array(); |
|
$champs_date = $this->obtenirChampDateEtValidite($id_annuaire); |
|
// si on a défini un champ de validite d'inscription, on ne supprime pas l'enregistrement |
// mais on remplace cette valeur par 0 |
/*if(isset($champs_date['champ_validite_inscription'])) { |
$valeurs_mappees[$champs_date['champ_validite_inscription']] = '1'; |
$supprimer_donnees = true; |
} |
|
// si on a défini un champ date de desinscription, on met à jour avec la valeur NOW |
// avec la valeur NOW |
if(isset($champs_date['champ_date_desinscription'])) { |
$valeurs_mappees[$champs_date['champ_date_desinscription']] = 'NOW()'; |
}*/ |
|
//if($supprimer_donnees) { |
$requete_suppression_utilisateur = 'DELETE FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
$requete_suppression_utilisateur = |
'DELETE FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
'WHERE '.$champs_mappage[0]['champ_id'].' = '.$this->proteger($id_utilisateur); |
|
/*} else { |
|
$champs_valeurs = ''; |
foreach($valeurs_mappees as $cle => $valeur) { |
$champs_valeurs .= $cle.' = '.$valeur.', '; |
} |
|
$requete_suppression_utilisateur = 'UPDATE '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
'SET '.$champs_valeurs.' '. |
'WHERE '.$champs_mappage[0]['champ_id'].' = '.$this->proteger($id_utilisateur); |
}*/ |
|
$resultat_suppression_utilisateur = $this->requeteUn($requete_suppression_utilisateur); |
|
|
|
if($this->utilisateurExisteParId($id_annuaire, $id_utilisateur, $champs_mappage)) { |
return false; |
} |
|
return true; |
} |
|
1069,14 → 934,13 |
* @return boolean true si l'utilisateur existe, false sinon |
*/ |
public function utilisateurExisteParId($id_annuaire, $id_utilisateur) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire); |
|
if(!$resultat_informations_annuaire) { |
trigger_error('impossible de récupérer les informations de la table '.$id_annuaire); |
} |
1086,13 → 950,11 |
' WHERE '.$champs_mappage[0]['champ_id'].' = '.$this->proteger($id_utilisateur); |
|
$resultat_nombre_inscrits = $this->requeteUn($requete_nombre_inscrits); |
|
if(!$resultat_nombre_inscrits) { |
trigger_error('impossible de vérifier l\'existence de cet utilisateur '); |
} |
|
return ($resultat_nombre_inscrits['est_inscrit'] > 0) ; |
|
} |
|
/** Renvoie vrai si un utilisateur existe suivant un mail donné |
1101,14 → 963,13 |
* @return boolean true si l'utilisateur existe, false sinon |
*/ |
public function utilisateurExisteParMail($id_annuaire, $mail) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire); |
|
if(!$resultat_informations_annuaire) { |
trigger_error('impossible de récupérer les informations de la table '.$id_annuaire); |
} |
1118,7 → 979,6 |
' WHERE '.$champs_mappage[0]['champ_mail'].' = '.$this->proteger($mail); |
|
$resultat_nombre_inscrits = $this->requeteUn($requete_nombre_inscrits); |
|
if(!$resultat_nombre_inscrits) { |
trigger_error('impossible de vérifier l\'existence de cet utilisateur '); |
} |
1134,7 → 994,6 |
* @param boolean $exclusive indique si l'on recherche effectue une recherche exclusive ou inclusive (AND, ou OR) |
*/ |
public function rechercherInscritDansAnnuaireMappe($id_annuaire, $valeurs, $id_a_inclure = array(), $exclusive = true, $numero_page = 1, $taille_page = 50, $ordre = 'champ_nom') { |
|
// Si la fonction est appelée et que tous les critères sont vides |
if(count($valeurs) == 0 && count($id_a_inclure) == 0) { |
// on sort directement |
1155,15 → 1014,10 |
|
$requete_conditions_inscrits = ''; |
|
if($exclusive) { |
$separateur = ' AND '; |
} else { |
$separateur = ' OR '; |
} |
$separateur = $exclusive ? ' AND ' : ' OR '; |
|
// on inclut les identifiants déjà trouvé par les critères de métadonnées |
if(is_array($id_a_inclure) && count($id_a_inclure) != 0) { |
|
$id_inclus = implode(',',$id_a_inclure); |
|
$requete_conditions_inscrits .= $champs_mappage[0]['champ_id'].' IN '. |
1173,28 → 1027,21 |
// si le champ contient un % alors on ne cherche pas une valeur exacte : on utilise LIKE |
foreach($valeurs as $champ => $valeur) { |
if(trim($valeur) != '') { |
|
if($champ == $champs_mappage[0]['champ_nom'] || $champ == $champs_mappage[0]['champ_prenom']) { |
if(strpos($valeur,"%") === false) { |
$valeur = '%' . $valeur.'%'; |
} |
} |
elseif($champ == $champs_mappage[0]['champ_code_postal']) { |
} elseif ($champ == $champs_mappage[0]['champ_code_postal']) { |
if(strpos($valeur,"%") === false) { |
$valeur .= '%'; |
} |
} |
elseif($champ == $champs_mappage[0]['champ_mail']) { |
} elseif ($champ == $champs_mappage[0]['champ_mail']) { |
if(strpos($valeur,"%") === false) { |
$valeur = '%'.$valeur.'%'; |
} |
} |
|
if(strpos($valeur,"%") === false) { |
$operateur = ' = '; |
} else { |
$operateur = ' LIKE '; |
} |
$operateur = (strpos($valeur,"%") === false) ? ' = ' : ' LIKE '; |
|
$requete_conditions_inscrits .= $champ.$operateur.$this->proteger($valeur).$separateur; |
} |
1233,7 → 1080,6 |
} |
|
public function rechercherDoublonsDansAnnuaireMappe($id_annuaire, $numero_page = 1, $taille_page = 50) { |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
1255,8 → 1101,6 |
'WHERE t1.'.$champ_id.' != t2.'.$champ_id.' '. |
'ORDER BY '.$champ_nom.', '.$champ_prenom.' '; |
|
|
|
$requete_nb_doublons = 'SELECT COUNT(DISTINCT t2.'.$champs_mappage[0]['champ_id'].') as nb'. |
' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t1 '. |
'LEFT JOIN '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t2 '. |
1291,7 → 1135,6 |
* @return string le nouveau mot de passe ou false si l'utilisateur n'existe pas |
*/ |
public function reinitialiserMotDePasse($id_annuaire, $mail, $pass) { |
|
$nouveau_mdp = $pass; |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
1313,6 → 1156,5 |
|
return false; |
} |
|
} |
?> |