64,12 → 64,6 |
return $annuaire; |
} |
|
/** |
* Charge les champs de mappage d'un annuaire, c'est à dire les champs de metadonnées qui correspondent à un champ |
* déjà présent dans la table mappée |
* @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 obtenirChampsMappageAnnuaire($id_annuaire) { |
|
$tableau_mappage = array(); |
95,12 → 89,6 |
return $tableau_mappage ; |
} |
|
/** |
* Charge les champs obligatoire d'un annuaire, c'est à dire les champs qui doivent être présents et remplis dans le |
* formulaire |
* @param int $id_annuaire l'identifiant de l'annuaire |
* @return un tableau contenant les ids des champs obligatoire |
*/ |
public function obtenirChampsObligatoires($id_annuaire) { |
|
$tableau_mappage = array(); |
125,62 → 113,31 |
return $tableau_obligatoire ; |
} |
|
/** |
* Charge les champs de cartographie d'un annuaire, c'est à dire les champs utilisées pour générer la carte des inscrits |
* @param int $id_annuaire l'identifiant de l'annuaire |
* @return array un tableau contenant les identifiants ou les noms des champs cartographiques |
*/ |
public function obtenirChampsCartographie($id_annuaire) { |
/*public function obtenirChampAvatar($id_annuaire) { |
$tableau_mappage = array(); |
|
// 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).' '. |
"AND at_action IN ('champ_pays', 'champ_code_postal')"; |
$requete_champs_obligatoire = 'SELECT * FROM annu_triples WHERE at_ce_annuaire = '.$this->proteger($id_annuaire).' '. |
"AND at_action = 'champ_avatar'"; |
|
$resultat_champs_carto = $this->requeteTous($requete_champs_carto); |
$resultat_champs_obligatoire = $this->requeteUn($requete_champs_obligatoire); |
|
$tableau_carto = array(); |
$tableau_mappage = array(); |
|
if(!$resultat_champs_carto) { |
trigger_error('impossible de récupérer les champs cartographiques de l\'annuaire '.$id_annuaire); |
if(!$resultat_champs_obligatoire) { |
trigger_error('impossible de récupérer les champs de obligatoire de l\'annuaire '.$id_annuaire); |
} |
|
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']; |
foreach ($resultat_champs_obligatoire as $champ) { |
// le tableau des champs obligatoires se présente sous la forme nom_champ_metadonnee => nom_champ_annuaire |
$tableau_obligatoire[$champ['at_valeur']] = $champ['at_ressource']; |
} |
|
// TODO faire une interface de gestion des champs de mappage |
return $tableau_carto ; |
} |
return $tableau_obligatoire ; |
}*/ |
|
/** |
* 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 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).' '. |
"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']; |
|
// TODO faire une interface de gestion des champs de mappage |
return $champ_avatar ; |
} |
|
/** 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é |
* |
*/ |
public function chargerNombreAnnuaireListeInscrits($identifiant) { |
205,11 → 162,6 |
return $resultat_nombre_inscrits['nom_inscrits'] ; |
} |
|
/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par départements |
* @param int $identifiant l'identifiant de l'annuaire mappé |
* @return array un tableau indexé par les numéros de departement contenant le nombre d'inscrits à chacun |
* |
*/ |
public function chargerNombreAnnuaireListeInscritsParDepartement($identifiant) { |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
244,7 → 196,7 |
$resultat_nombre_inscrits[$donnee['id']] = $donnee['nbre']; |
} |
} |
} catch (Exception $e) { |
} catch (PDOException $e) { |
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage()); |
} |
|
255,12 → 207,6 |
return $resultat_nombre_inscrits; |
} |
|
/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par pays |
* @param int $identifiant l'identifiant de l'annuaire mappé |
* @param array $id_recherchees un tableau contenant les codes de pays à rechercher |
* @return array un tableau indexé par les numéros de departement contenant le nombre d'inscrits à chacun |
* |
*/ |
public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) { |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
272,8 → 218,8 |
trigger_error('impossible de récupérer les informations de la table '.$id_annuaire); |
} |
|
$tableau_mappage = $this->obtenirChampsCartographie($id_annuaire); |
$champ_pays = $tableau_mappage['champ_pays'][0]; |
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
$champ_pays = 'U_COUNTRY'; |
|
$resultat_nombre_inscrits = array(); |
|
305,14 → 251,6 |
return $resultat_nombre_inscrits; |
} |
|
/** |
* Recherche selon une valeur d'un champ qui peut être une valeur approximative (avec des %) dans un champ d'annuaire donné |
* @param int $id_annuaire l'identifiant de l'annuaire |
* @param string $champ_critere le champ qui servira de filtre |
* @param string $valeur la valeur à rechercher |
* @param boolean $modele indique si l'on veut recherche la valeur exacte ou non |
* @return array un tableau contenant la liste des inscrits dans l'annuaire donné, correspondants à ce critère |
*/ |
public function rechercherInscritDansAnnuaireMappeParChamp($id_annuaire, $champ_critere, $valeur, $modele = false) { |
|
$sep = ''; |
490,14 → 428,6 |
return $id_nouvel_enregistrement; |
} |
|
/** |
* Modifie les valeurs données dans l'annuaire indiqué |
* @param int $id_annuaire l'identifiant de l'annuaire dans lequel on va travailler |
* @param int $id_annuaire l'identifiant de l'utilisateur à qui à modifier |
* @param Array $valeurs_mappees un tableau de valeurs à modifier |
* @param string $nom_champs les noms des champs dans lesquels on va modifier les données |
* @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 * '. |
537,12 → 467,6 |
|
} |
|
/** |
* Renvoie le mail associé à l'identifiant d'un utilisateur dans un annuaire donné |
* @param int $id_annuair l'identifiant de l'annuaire |
* @param int $id_utilisateur l'identifiant de l'utilisateur |
* @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); |
583,12 → 507,6 |
|
} |
|
/** |
* Renvoie les mail associés des identifiants d'utilisateur dans un annuaire donné |
* @param int $id_annuair l'identifiant de l'annuaire |
* @param array $ids_utilisateurs les identifiants des l'utilisateur |
* @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); |
634,12 → 552,6 |
|
} |
|
/** |
* Renvoie l'id associé au mail d'un utilisateur dans un annuaire donné |
* @param int $id_annuair l'identifiant de l'annuaire |
* @param int $mail_utilisateur le mail de l'utilisateur |
* @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); |
852,7 → 764,6 |
$separateur = ' 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); |
861,7 → 772,6 |
'('.$id_inclus.')'.$separateur ; |
} |
|
// 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(strpos($valeur,"%") != false) { |
896,13 → 806,6 |
return array('total' => $nb_inscrits, 'resultat' => $resultat_recherche_inscrits) ; |
} |
|
/** |
* Reinitialise un mot de passe associé à un mail donné et en renvoie un nouveau, |
* généré aléatoirement |
* @param int $id_annuaire l'identifiant de l'annuaire |
* @param string $mail le mail dont on doit réinitialiser le mot de passe |
* @return string le nouveau mot de passe ou false si l'utilisateur n'existe pas |
*/ |
public function reinitialiserMotDePasse($id_annuaire, $mail) { |
|
$str = ""; |