75,7 → 75,7 |
$tableau_mappage = array(); |
|
$requete_champs_mappage = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
"AND at_action IN ('champ_id', 'champ_mail', 'champ_nom', 'champ_prenom', 'champ_pass', 'champ_lettre', 'champ_code_postal', 'champ_ville')"; |
"AND at_action IN ('champ_id', 'champ_mail', 'champ_nom', 'champ_prenom', 'champ_pass', 'champ_lettre','champ_pays', 'champ_code_postal', 'champ_ville')"; |
|
$resultat_champs_mappage = $this->requeteTous($requete_champs_mappage); |
|
90,6 → 90,8 |
$tableau_mappage[1][$champ['at_action']] = $champ['at_valeur']; |
} |
|
//echo Debug::printr($tableau_mappage); |
|
// TODO faire une interface de gestion des champs de mappage |
|
return $tableau_mappage ; |
121,7 → 123,7 |
$tableau_obligatoire[$champ['at_valeur']] = $champ['at_ressource']; |
} |
|
// TODO faire une interface de gestion des champs de mappage |
// TODO faire une interface de gestion des champs obligatoires |
return $tableau_obligatoire ; |
} |
|
178,6 → 180,50 |
return $champ_avatar ; |
} |
|
/** Renvoie l'identifiant du champ associé à l'image de profil (Avatar) dans un annuaire donné |
* @param int $id_annuaire l'identifiant de l'annuaire |
* @return string l'identifiant du champ date inscription dans l'annuaire donné ou false s'il n'en existe pas |
*/ |
/*public function obtenirChampDate($id_annuaire) { |
|
$requete_champs_avatar = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
"AND at_action = 'champ_avatar'"; |
|
$champ_avatar = $resultat_champs_avatar['at_valeur']; |
|
// TODO faire une interface de gestion des champs de mappage |
return $champ_avatar ; |
}*/ |
|
/** |
* Charge tous les champs de description de l'annuaire |
* @param int $id_annuaire l'identifiant de l'annuaire |
* @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); |
} |
|
foreach ($resultat_champs_mappage as $champ) { |
$tableau_mappage[0][$champ['at_action']] = $champ['at_ressource']; |
$tableau_mappage[1][$champ['at_action']] = $champ['at_valeur']; |
} |
|
// TODO faire une interface de gestion des champs de mappage |
|
return $tableau_mappage ; |
} |
|
/** Charge le nombre d'inscrits d'une table annuaire mappée |
* @param int $identifiant l'identifiant de l'annuaire mappé |
* @return int le nombre d'inscrits à un annuaire donné |
472,6 → 518,7 |
// le mail est censé être unique donc on l'utilise pour faire une selection pour retrouver l'enregistrement |
// (Les requetes du style SELECT MAX(id)... ne garantissent pas qu'on récupère le bon id |
// si une autre insertion a eu lieu entre temps) |
// TODO utiliser du PDO pur et utiliser les fonctions last_insert_id générique |
$requete_nouvel_id = 'SELECT '.$nom_champs['champ_id'].' '. |
'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '. |
'WHERE '. |
537,6 → 584,76 |
|
} |
|
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]; |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
// en cas d'erreur on renvoie false |
// TODO: lever une exception |
if(!$resultat_infos_annuaire) { |
return false; |
} |
|
$champs_mappage_str = implode(',',$champs_mappage); |
$id_utilisateur = $this->proteger($id_utilisateur); |
|
$requete_selection_valeur = 'SELECT '.$champs_mappage[$champ].' as '.$champ.' '. |
'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur; |
|
$resultat_selection_valeur = $this->requeteUn($requete_selection_valeur); |
|
// en cas d'erreur on renvoie false |
// TODO: lever une exception |
if(!$resultat_selection_valeur) { |
return false; |
} else { |
return $resultat_selection_valeur[$champ]; |
} |
} |
|
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]; |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
// en cas d'erreur on renvoie false |
// TODO: lever une exception |
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.' '. |
'WHERE '.$champs_mappage['champ_id'].' = '.$id_utilisateur; |
|
|
$resultat_modification_valeur = $this->requeteUn($requete_modification_valeur); |
|
// en cas d'erreur on renvoie false |
// TODO: lever une exception |
return $resultat_modification_valeur; |
} |
|
/** |
* Renvoie le mail associé à l'identifiant d'un utilisateur dans un annuaire donné |
* @param int $id_annuair l'identifiant de l'annuaire |
678,6 → 795,44 |
|
} |
|
// 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); |
|
// en cas d'erreur on renvoie false |
// TODO: lever une exception |
if(!$resultat_infos_annuaire) { |
return false; |
} |
|
$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]; |
|
$mot_de_passe = $this->proteger($mot_de_passe); |
$id_utilisateur = $this->proteger($id_utilisateur); |
|
$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; |
|
$resultat_selection_utilisateur = $this->requeteUn($requete_selection_utilisateur); |
|
// en cas d'erreur ou bien si le login ne matche pas le mot de passe |
// on renvoie false |
if(!$resultat_selection_utilisateur || $resultat_selection_utilisateur['match_login_mdp'] <= 0) { |
return false; |
} else { |
return true; |
} |
} |
|
/** |
* Récupère les champs demandé dans l'annuaire indiqué |
* @param int $id_annuaire l'identifiant de l'annuaire dans lequel on va travailler |
836,6 → 991,7 |
$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); |
|
$requete_recherche_inscrits = 'SELECT * '. |
877,10 → 1033,15 |
|
$requete_recherche_inscrits .= $requete_conditions_inscrits; |
|
if(trim($requete_conditions_inscrits) == '') { |
|
} |
|
$requete_nb_inscrits = 'SELECT COUNT( * ) as nb '.' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']. |
' WHERE '.$requete_conditions_inscrits; |
|
$resultat_nb_inscrits = $this->requeteUn($requete_nb_inscrits); |
|
$nb_inscrits = 0; |
if($resultat_nb_inscrits) { |
$nb_inscrits = $resultat_nb_inscrits['nb']; |
887,6 → 1048,7 |
} |
|
$requete_recherche_inscrits .= ' LIMIT '.(($numero_page-1)*$taille_page).','.($taille_page); |
|
$resultat_recherche_inscrits = $this->requeteTous($requete_recherche_inscrits); |
|
if(!$resultat_recherche_inscrits) { |