Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 430 → Rev 431

/trunk/modeles/MetadonneeModele.php
23,6 → 23,7
private $id_liste_liste = 0;
private $id_liste_type = 1002;
private $id_liste_champs = 30768;
private $id_liste_pays = 1074;
 
/**
* Charge la liste complète des champs de métadonnées associées à un annuaire en particulier
500,7 → 501,6
* $exclusive boolean indique si la recherche doit se faire avec un ET ou bien un OU sur les critèrex
*/
public function rechercherDansValeurMetadonnees($id_annuaire, $valeurs, $exclusive = true) {
 
// Définition du séparateur de requête suivant la paramètre
if($exclusive) {
$separateur = ' AND ';
548,8 → 548,7
$requete_recherche = 'SELECT DISTINCT amv_cle_ligne '.
'FROM annu_meta_valeurs '.
'WHERE '.$chaine_recherche ;
$resultat_recherche = $this->requeteTous($requete_recherche . ' -- ' . __FILE__ . ':' . __LINE__);
$resultat_recherche = $this->requeteTous($requete_recherche);
 
if($resultat_recherche) {
 
603,5 → 602,9
return ($resultat) ? $resultat['amc_ce_ontologie'] : 0 ;
}
 
public function obtenirValeurPaysParAbbreviation($abrevation_pays) {
return $this->renvoyerCorrespondanceIdParAbreviation($abrevation_pays, $this->id_liste_pays);
}
}
?>
/trunk/modeles/OntologieModele.php
64,7 → 64,7
return array();
}
$requete = 'SELECT * '.
$requete = 'SELECT * '.
'FROM annu_meta_ontologie '.
'WHERE amo_id_ontologie = '.$identifiant;
$resultat = $this->requeteTous($requete);
/trunk/modeles/StatistiqueModele.php
53,9 → 53,6
'AND at_valeur >= "'.date('Y-m-d H:i:s', $date_debut).'" '.
'AND at_valeur < "'.date('Y-m-d H:i:s', $date_fin).'" ';
//echo $requete_nb_modif_intervalle;
//exit;
$resultat_nb_modif_intervalle = $this->requeteUn($requete_nb_modif_intervalle);
if(!$resultat_nb_modif_intervalle) {
/trunk/modeles/AnnuaireModele.php
142,7 → 142,7
$tableau_carto[$champ['at_action']][1] = $champ['at_valeur'];
}
 
// TODO faire une interface de gestion des champs de mappage
return $tableau_carto ;
}
 
166,7 → 166,7
 
$champ_avatar = $resultat_champs_avatar['at_valeur'];
 
// TODO faire une interface de gestion des champs de mappage
return $champ_avatar ;
}
 
186,7 → 186,7
$resultat_champs_date_validite[$champ['at_action']] = $champ['at_ressource'];
}
 
// TODO faire une interface de gestion des champs de mappage
return $resultat_champs_date_validite ;
}
 
216,12 → 216,12
 
return $tableau_mappage ;
}
 
/** Charge le nombre d'inscrits d'une table annuaire mappée
* @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.' ';
230,10 → 230,10
if(!$resultat_informations_annuaire) {
trigger_error('impossible de récupérer les informations de la table '.$identifiant);
}
 
$requete_nombre_inscrits = 'SELECT COUNT(*) as nb '.
'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
 
// Récupération des résultats
try {
$resultat_nb_inscrits = $this->requeteUn($requete_nombre_inscrits);
245,8 → 245,8
} catch (Exception $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
}
 
return $nb_inscrits;
return $nb_inscrits;
}
 
/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par départements
308,7 → 308,7
*
*/
public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) {
 
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
'FROM annu_annuaire '.
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
352,11 → 352,11
 
return $resultat_nombre_inscrits;
}
 
private function formaterAbreviationPaysPourRecherche($chaine) {
return $this->proteger(strtoupper($chaine));
}
 
/**
* 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
372,9 → 372,9
if($modele) {
$sep = '%';
}
 
foreach($criteres as $champ => $valeur) {
$criteres[$champ] = $valeur.$sep;
$criteres[$champ] = $valeur.$sep;
}
 
return $this->rechercherInscritDansAnnuaireMappe($id_annuaire, $criteres, array(), true, $numero_page, $taille_page);
395,9 → 395,9
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
 
$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
 
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
 
$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);
408,7 → 408,7
}
 
$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);
}
751,7 → 751,7
}
 
}
 
/**
* Renvoie le nom et prénom associé au mail d'un utilisateur dans un annuaire donné
* @param int $id_annuair l'identifiant de l'annuaire
766,15 → 766,16
$requete = 'SELECT * '.
'FROM annu_annuaire '.
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
 
$annuaire = $this->requeteUn($requete);
if (!$annuaire) {
return false;
}
 
foreach ($courriels as $id => $courriel) {
$courriels[$id] = $this->proteger($courriel);
}
 
$requete = 'SELECT '.$mappage['champ_id'].', '.$mappage['champ_mail'].', '.$mappage['champ_prenom'].', '.$mappage['champ_nom'].' '.
'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
'WHERE '.$mappage['champ_mail'].' IN ('.implode(',', $courriels).')';
788,7 → 789,7
$id = $resultat[$mappage['champ_id']];
$prenom = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($resultat[$mappage['champ_prenom']]);
$nom = AppControleur::formaterMotEnMajuscule($resultat[$mappage['champ_nom']]);
 
$infos[$resultat[$mappage['champ_mail']]] = array('id' => $id, 'prenom' => $prenom, 'nom' => $nom);
}
return $infos;
914,8 → 915,8
return $resultat_selection_utilisateur;
}
}
 
/**
/**
* Récupère les valeurs utilisateur dans l'annuaire indiqué en les ordonnant par le champ demandé
* @param int $id_annuaire l'identifiant de l'annuaire dans lequel on va travailler
* @param Array $champs_mappage les noms des champs que l'on veut récupérer
942,7 → 943,7
$requete_selection_utilisateur = 'SELECT '.$champs_mappage['champ_id'].' '.
'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
'ORDER BY '.$champ_order_by.' '.$dir.' LIMIT '.$limit;
 
$resultat_selection_utilisateur = $this->requeteTous($requete_selection_utilisateur);
 
 
953,9 → 954,9
return $resultat_selection_utilisateur;
}
}
 
public function obtenirNombreInscriptionsDansIntervalleDate($id_annuaire, $date_debut, $date_fin) {
 
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
 
$requete_infos_annuaire = 'SELECT * '.
974,26 → 975,26
$valeurs_mappees = array();
 
$champs_date = $this->obtenirChampDateEtValidite($id_annuaire);
 
$date_inscription = $champs_date['champ_date_inscription'];
 
$requete_nb_inscrits_intervalle = 'SELECT COUNT(*) as nb '.
'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
'WHERE '.$date_inscription.' >= "'.date('Y-m-d H:i:s', $date_debut).'" '.
'AND '.$date_inscription.' < "'.date('Y-m-d H:i:s', $date_fin).'" ';
 
$resultat_nb_inscrits_intervalle = $this->requeteUn($requete_nb_inscrits_intervalle);
 
if(!$resultat_nb_inscrits_intervalle) {
return 0;
}
 
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
1133,7 → 1134,7
* @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
1140,12 → 1141,12
return array();
}
 
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
$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);
 
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
 
$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].
1172,7 → 1173,7
// 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.'%';
1188,13 → 1189,13
$valeur = '%'.$valeur.'%';
}
}
 
if(strpos($valeur,"%") === false) {
$operateur = ' = ';
} else {
$operateur = ' LIKE ';
}
 
$requete_conditions_inscrits .= $champ.$operateur.$this->proteger($valeur).$separateur;
}
}
1230,9 → 1231,7
 
return array('total' => $nb_inscrits, 'resultat' => $resultat_recherche_inscrits) ;
}
 
 
 
public function rechercherDoublonsDansAnnuaireMappe($id_annuaire, $numero_page = 1, $taille_page = 50) {
 
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
1240,7 → 1239,7
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
 
$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
 
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
 
$champ_id = $champs_mappage[0]['champ_id'];
1248,7 → 1247,7
$champ_nom = $champs_mappage[0]['champ_nom'];
$champ_prenom = $champs_mappage[0]['champ_prenom'];
$champ_ville = $champs_mappage[0]['champ_ville'];
 
$requete_recherche_doublon = 'SELECT DISTINCT t2.'.$champ_id.
' 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 '.
1255,15 → 1254,15
'USING ('.$champ_nom.','.$champ_prenom.','.$champ_ville.') '.
'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 '.
'USING ('.$champ_nom.','.$champ_prenom.','.$champ_ville.') '.
'WHERE t1.'.$champ_id.' != t2.'.$champ_id;
 
$resultat_nb_doublons = $this->requeteUn($requete_nb_doublons);
 
$nb_doublons = 0;
1270,9 → 1269,9
if($resultat_nb_doublons) {
$nb_doublons = $resultat_nb_doublons['nb'];
}
 
$resultat_recherche_doublons = $this->requeteTous($requete_recherche_doublon);
 
if(!$resultat_recherche_doublons) {
$resultat_recherche_doublons = array();
} else {