142,7 → 142,7 |
$tableau_carto[$champ['at_action']][1] = $champ['at_valeur']; |
} |
|
|
|
return $tableau_carto ; |
} |
|
166,7 → 166,7 |
|
$champ_avatar = $resultat_champs_avatar['at_valeur']; |
|
|
|
return $champ_avatar ; |
} |
|
186,7 → 186,7 |
$resultat_champs_date_validite[$champ['at_action']] = $champ['at_ressource']; |
} |
|
|
|
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,10 → 751,10 |
} |
|
} |
|
|
/** |
* 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 |
* @param int $id_annuaire l'identifiant de l'annuaire |
* @param array $courriels un tableau de courriel d'utilisateur |
* @return array un tableau contenant en clé le courriel et en valeur un tableau avec le prénom dans le champ 'prenom' et le nom dans le champ 'nom'. |
*/ |
764,21 → 764,21 |
$mappage = $mappage[0]; |
|
$requete = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
'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).')'; |
'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '. |
'WHERE '.$mappage['champ_mail'].' IN ('.implode(',', $courriels).')'; |
$resultats = $this->requeteTous($requete); |
|
if (!$resultats) { |
789,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; |
797,6 → 797,42 |
|
} |
|
/** |
* 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 |
* @return array un tableau. |
*/ |
public function obtenirInfosUtilisateurParId($id_annuaire, $id_utilisateur) { |
$requete = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$annuaire = $this->requeteUn($requete); |
if (!$annuaire) { |
return false; |
} |
|
$mappageInfos = $this->obtenirChampsMappageAnnuaire($id_annuaire, $id_utilisateur); |
// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal |
$mappage = $mappageInfos[0]; |
$requete = 'SELECT '.$mappage['champ_id'].', '.$mappage['champ_mail'].', '.$mappage['champ_prenom'].', '.$mappage['champ_nom'].' '. |
'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '. |
'WHERE '.$mappage['champ_id'].' = '.$id_utilisateur.' '; |
$resultat = $this->requeteUn($requete); |
|
$infos = false; |
if ($resultat) { |
$id = $resultat[$mappage['champ_id']]; |
$prenom = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($resultat[$mappage['champ_prenom']]); |
$nom = AppControleur::formaterMotEnMajuscule($resultat[$mappage['champ_nom']]); |
$courriel = $resultat[$mappage['champ_mail']]; |
|
$infos = array('id' => $id, 'prenom' => $prenom, 'nom' => $nom, 'courriel' => $courriel); |
} |
return $infos; |
} |
|
// TODO: commenter |
public function comparerIdentifiantMotDePasse($id_annuaire, $id_utilisateur, $mot_de_passe) { |
|
915,7 → 951,7 |
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 |
943,7 → 979,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); |
|
|
954,9 → 990,9 |
return $resultat_selection_utilisateur; |
} |
} |
|
|
public function obtenirNombreInscriptionsDansIntervalleDate($id_annuaire, $date_debut, $date_fin) { |
|
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$requete_infos_annuaire = 'SELECT * '. |
975,26 → 1011,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 |
1134,7 → 1170,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 |
1146,7 → 1182,7 |
'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']. |
1173,7 → 1209,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.'%'; |
1189,13 → 1225,13 |
$valeur = '%'.$valeur.'%'; |
} |
} |
|
|
if(strpos($valeur,"%") === false) { |
$operateur = ' = '; |
} else { |
$operateur = ' LIKE '; |
} |
|
|
$requete_conditions_inscrits .= $champ.$operateur.$this->proteger($valeur).$separateur; |
} |
} |
1231,7 → 1267,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 '. |
1239,7 → 1275,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']; |
1247,7 → 1283,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 '. |
1254,15 → 1290,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; |
1269,9 → 1305,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 { |