Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 518 → Rev 519

/trunk/modeles/AnnuaireModele.php
3,6 → 3,8
/**
* Modèle d'accès à la base de données des listes
* d'ontologies
*
* @TODO factoriser les 40 000 fonctions qui diffèrent d'un poil de Q
*
* @package Framework
* @category Class
716,6 → 718,62
}
 
/**
* Renvoie toutes les infos disponibles associées à l'adresse email fournie, dans un annuaire donné
* @param int $id_annuaire l'identifiant de l'annuaire
* @param array $courriels un (et un seul pour l'instant) courriel
* @return array un tableau associatif contenant les infos
*/
public function obtenirMaximumInfosParCourriel($id_annuaire, $courriel) {
$requete = 'SELECT * '.
'FROM annu_annuaire '.
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
 
$annuaire = $this->requeteUn($requete);
if (!$annuaire) {
return false;
}
 
$mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal
$mappage = $mappage[0];
 
$courriel = $this->proteger($courriel);
$requete = 'SELECT *'
. ' FROM ' . $annuaire['aa_bdd'] . '.' . $annuaire['aa_table']
. ' WHERE ' . $mappage['champ_mail'] . " = $courriel";
$resultat = $this->requeteUn($requete);
 
if (!$resultat) {
return false;
}
$infos = array();
foreach (array_keys($mappage) as $cle) {
// j'ai honte d'écrire un truc pareil
$infos[substr($cle, 6)] = $resultat[$mappage[$cle]];
}
// pour certains champs (fonction par ex.) il n'y a pas de mappage
// dans annu_triples : comment qu'on fait ? Ben on fait une dégueulasserie !
$mappagesALArrache = array(
"fonction" => "U_FONCTION",
"titre" => "U_TITLE",
"site_web" => "U_WEB",
"region" => "U_STATE"
);
foreach ($mappagesALArrache as $k => $v) {
$infos[$k] = (empty($resultat[$v]) ? '' : $resultat[$v]);
}
// les mappages ne correspondent pas à l'héritage de eFlore chatin, comment
// qu'on fait ? Quelle est la norme ? Ben on fait des trucs cracra redondants
// pour assurer la rétrocompatibilité !
$infos['adresse01'] = $infos['adresse'];
$infos['adresse02'] = $infos['adresse_comp'];
$infos['courriel'] = $infos['mail'];
$infos['mot_de_passe'] = $infos['pass'];
return $infos;
}
 
/**
* Renvoie les infos pour un utilisateur et un annuaire donné
* @param int $id_annuaire l'identifiant de l'annuaire
* @param array $id identifiant d'utilisateur