Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 54 → Rev 55

/trunk/modeles/AnnuaireModele.php
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) {
/trunk/modeles/MetadonneeModele.php
230,7 → 230,6
$resultat = $this->requeteUn($requete);
 
return $resultat['amo_abreviation'];
 
}
 
/**
443,6 → 442,8
}
}
 
echo $chaine_recherche;
 
if(trim($chaine_recherche) == '') {
return array();
}
455,8 → 456,6
 
$resultat_recherche = $this->requeteTous($requete_recherche);
 
//echo $requete_recherche;
 
if($resultat_recherche) {
 
$tableau_id = array();
469,5 → 468,28
return array();
}
}
 
/**
* Renvoie les valeur d'une méta colonne pour un identifiant d'enregistrement lié et de meta colonne donnés
* @param int $id_champ l'identifiant de champ
* @param int $id_utilisateur l'identifiant de ligne à laquelle est associée la metadonnée
* @return array un tableau d'informations contenant les données
*/
public function obtenirValeurMetadonnee($id_champ, $id_enregistrement_lie) {
 
$requete_valeur_metadonnee = 'SELECT * FROM annu_meta_valeurs'.
' WHERE amv_ce_colonne = '.$this->proteger($id_champ).
' AND amv_cle_ligne = '.$this->proteger($id_enregistrement_lie);
 
$resultat_valeur_metadonnee = $this->requeteTous($requete_valeur_metadonnee);
 
if($resultat_valeur_metadonnee) {
return $resultat_valeur_metadonnee;
} else {
 
return false;
}
 
}
}
?>