13,14 → 13,17 |
|
class AnnuaireControleur extends AppControleur { |
|
|
/** |
* Fonction affichant la vue par défaut, ici le menu principal |
* @return String la vue contenant le menu |
*/ |
public function index() { |
|
if (Registre::getInstance()->get('est_admin')) { |
$data = array(); |
$index_annuaire = $this->getVue('index_annuaire', $data); |
|
return $index_annuaire; |
} else { |
return $this->afficherFicheUtilisateur(Registre::getInstance()->get('identification_id')); |
31,9 → 34,11 |
* Fonction d'affichage par défaut |
*/ |
public function executerActionParDefaut() { |
|
if (Registre::getInstance()->get('est_admin')) { |
$data = array(); |
$index_annuaire = $this->getVue('index_annuaire', $data); |
|
return $index_annuaire; |
} else { |
return $this->afficherFicheUtilisateur(Registre::getInstance()->get('identification_id')); |
78,6 → 83,7 |
* @return string la vue contenant les inscrits à l'annuaire |
*/ |
public function chargerAnnuaireListeInscrits($id_annuaire, $numero_page = 1, $taille_page = 50) { |
|
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
$data['erreurs'] = array(); |
131,6 → 137,7 |
* @param Array $donnees le tableau de données pour préremplir le formulaire si besoin (en cas de retour erreur) |
*/ |
public function afficherFormulaireInscription($id_annuaire, $donnees = array()) { |
|
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false); |
|
144,6 → 151,7 |
// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire |
// pour ne charger que ce qui est nécéssaire |
foreach ($metadonnees as $metadonnee) { |
|
$id_champ = $metadonnee['amc_id_champ']; |
$type_champ = $metadonnee['amc_ce_template_affichage']; |
$nom_champ = $metadonnee['amc_abreviation']; |
164,8 → 172,11 |
$donnees['tableau_mappage'] = $tableau_mappage[1]; |
|
if ($this->annuaireAvoirFormulaireInscription($annuaire['informations']['aa_code'])) { |
|
$formulaire_inscription = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees); |
|
} else { |
|
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire); |
$donnees['mappage_nom_champs'] = $tableau_nom_mappage; |
|
184,6 → 195,7 |
* @return string la vue contenant la confirmation de l'inscription |
*/ |
public function ajouterInscriptionTemporaire($valeurs) { |
|
$this->chargerModele('MetadonneeModele'); |
$id_annuaire = $valeurs['aa_id_annuaire']; |
unset($valeurs['aa_id_annuaire']); |
223,7 → 235,10 |
|
$messagerie = new MessageControleur(); |
|
$messagerie->envoyerMailConfirmationInscription($mail, $nom, $prenom, $code_confirmation); |
$messagerie->envoyerMailConfirmationInscription($mail, |
$nom, |
$prenom, |
$code_confirmation); |
|
$tableau_vide = array(); |
// Si tout s'est bien passé, on affiche la page de confirmation |
236,6 → 251,7 |
* @param int $indentifant L'identifant de session d'une tentative d'inscription |
*/ |
public function ajouterNouvelleInscription($identifiant) { |
|
$this->chargerModele('DonneeTemporaireModele'); |
$valeurs = $this->DonneeTemporaireModele->chargerDonneeTemporaire($identifiant); |
|
282,6 → 298,7 |
|
// on itère sur le tableau de valeur pour récupérer les métadonnées; |
foreach ($valeurs as $nom_champ => $valeur) { |
|
// pour chaque valeur |
// on extrait l'id du champ |
$ids_champ = mb_split("_",$nom_champ, 2); |
319,6 → 336,7 |
|
// les champs de metadonnees arrivent avec un identifiant sous la forme type_condition_id |
foreach ($valeurs_metadonnees as $nom_champ => $valeur) { |
|
// pour chaque valeur |
// on extrait l'id du champ |
$ids_champ = mb_split("_",$nom_champ); |
362,6 → 380,7 |
} |
|
public function ajouterNouvelleInscriptionSansIdentifier($code_confirmation) { |
|
// TODO: ajouter un controle d'erreurs |
$inscription_ajout = $this->ajouterNouvelleInscription($code_confirmation); |
$id_annuaire = $inscription_ajout['id_annuaire']; |
370,6 → 389,7 |
} |
|
public function ajouterNouvelleInscriptionEtIdentifier($code_confirmation) { |
|
$inscription_ajout = $this->ajouterNouvelleInscription($code_confirmation); |
|
if (!$inscription_ajout) { |
382,6 → 402,7 |
|
$vue_resultat_inscription = $this->getVue(Config::get('dossier_squelettes_annuaires').'information_simple',$donnees).$identificateur->afficherFormulaireIdentification(Config::get('annuaire_defaut'), array()); |
} else { |
|
$mail = $inscription_ajout['mail']; |
$pass = $inscription_ajout['pass']; |
$id_nouvel_inscrit = $inscription_ajout['id_utilisateur']; |
415,6 → 436,7 |
} |
|
public function afficherInscritsEnAttenteConfirmation($id_annuaire) { |
|
$donnees['id_annuaire'] = $id_annuaire; |
|
$this->chargerModele('AnnuaireModele'); |
429,14 → 451,15 |
$inscrits_en_attente_formates = array(); |
|
foreach ($inscrits_en_attente as $inscrit_attente) { |
|
if ($id_annuaire == $inscrit_attente['aa_id_annuaire']) { |
|
$lien_confirmation_inscription = AppControleur::getUrlConfirmationInscriptionAdmin($inscrit_attente['code_confirmation']); |
$lien_suppression_inscription = AppControleur::getUrlSuppressionInscriptionTemporaire($id_annuaire, $inscrit_attente['code_confirmation']); |
|
$date_inscription_formatee = AppControleur::formaterDateMysqlVersDateAnnuaire($inscrit_attente['date']); |
|
$inscrits_en_attente_formates[] = array( |
'lien_confirmation' => $lien_confirmation_inscription, |
$inscrits_en_attente_formates[] = array('lien_confirmation' => $lien_confirmation_inscription, |
'lien_suppression' => $lien_suppression_inscription, |
'date_inscription' => $date_inscription_formatee, |
'mail' => $inscrit_attente['mail_'.$tableau_mappage[1]['champ_mail']], |
451,6 → 474,7 |
} |
|
public function supprimerInscriptionEnAttente($id_annuaire, $id_inscrit_en_attente) { |
|
$this->chargerModele('DonneeTemporaireModele'); |
$inscrits_en_attente = $this->DonneeTemporaireModele->supprimerDonneeTemporaire($id_inscrit_en_attente); |
|
458,6 → 482,7 |
} |
|
public function afficherPage($id_annuaire, $id_utilisateur, $page) { |
|
$donnees['id_annuaire'] = $id_annuaire; |
$donnees['id_utilisateur'] = $id_utilisateur; |
|
473,6 → 498,7 |
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
foreach ($champ_metadonnees as $champ_metadonnee) { |
|
$id_champ = $champ_metadonnee['amc_id_champ']; |
$nom_champ = $champ_metadonnee['amc_abreviation']; |
|
501,6 → 527,7 |
* @return string la vue contenant la fiche utilisateur |
*/ |
public function afficherFicheUtilisateur($id_annuaire, $id_utilisateur) { |
|
// Chargement des informations de l'utilisateur dans la table annuaire principale |
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
545,6 → 572,7 |
* @return string la vue contenant les contributions utilisateur |
*/ |
public function afficherFicheResumeUtilisateur($id_annuaire, $id_utilisateur) { |
|
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
|
580,6 → 608,7 |
} |
|
public function gererInscriptionExterne($id_annuaire, $id_utilisateur) { |
|
$this->chargerModele('AnnuaireModele'); |
$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur); |
|
611,6 → 640,7 |
} |
|
public function afficherFormulaireModificationInscription($id_annuaire, $id_utilisateur, $erreurs = array()) { |
|
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
|
647,9 → 677,12 |
|
// Si le formulaire spécifique à l'annuaire existe, on l'affiche |
if ($this->annuaireAvoirFormulaireModificationInscription($annuaire['informations']['aa_code'])) { |
|
// Sinon on prend celui par defaut |
$formulaire_modification = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_modification',$donnees); |
|
} else { |
|
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire); |
$donnees['mappage_nom_champs'] = $tableau_nom_mappage; |
|
661,6 → 694,7 |
} |
|
public function modifierInscription($valeurs) { |
|
$this->chargerModele('MetadonneeModele'); |
|
$id_utilisateur = $valeurs['id_utilisateur']; |
714,6 → 748,7 |
|
// cas de la checkbox qui devrait être là mais pas cochée |
if ($condition == 'hidden') { |
|
if (!isset($valeurs[$type.'_'.$id_champ])) { |
// dans ce cas là on fabrique une valeur qui vaut 0 |
$nom_champ = $type.'_'.$id_champ; |
730,6 → 765,7 |
|
// cas du changement de mot de passe |
if ($type == 'password') { |
|
if ($condition == 'conf') { |
$valeur_a_ignorer = true; |
} |
839,6 → 875,7 |
if ($this->MetadonneeModele->valeurExiste($id_champ,$id_utilisateur)) { |
// On se contente de la modifier |
$this->MetadonneeModele->modifierValeurMetadonnee($id_champ,$id_utilisateur,$valeur); |
|
} else { |
// S'il n'existe pas de valeur, on ajoute une nouvelle ligne à la table de valeurs de meta données |
if ($this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$valeur)) { |
861,6 → 898,7 |
} |
|
public function bloquerDebloquerUtilisateur($id_annuaire, $id_utilisateur, $bloquer = true) { |
|
$annuaire_modele = $this->getModele('AnnuaireModele'); |
$champs_description = $annuaire_modele->obtenirChampsDescriptionAnnuaire($id_annuaire); |
|
882,6 → 920,7 |
* @param int $id_annuaire l'identifiant de l'annuaire associé |
*/ |
public function afficherFormulaireOubliMotDePasse($id_annuaire) { |
|
$donnees['aa_id_annuaire'] = $id_annuaire; |
return $this->getVue(Config::get('dossier_squelettes_formulaires').'oubli_mdp',$donnees); |
} |
894,6 → 933,7 |
* |
*/ |
public function reinitialiserMotDePasse($id_annuaire, $mail) { |
|
$this->chargerModele('AnnuaireModele'); |
$verificateur = new VerificationControleur(); |
$messagerie = new MessageControleur(); |
929,6 → 969,7 |
} |
|
public function afficherFormulaireSuppressionInscription($id_annuaire, $id_utilisateur) { |
|
$donnees['id_annuaire'] = $id_annuaire; |
$donnees['id_utilisateur'] = $id_utilisateur; |
return $this->getVue(Config::get('dossier_squelettes_formulaires').'suppression_inscription',$donnees); |
941,6 → 982,7 |
* @param int $id_utilisateur l'identifiant de l'utilisateur à supprimer |
*/ |
public function supprimerInscription($id_annuaire, $id_utilisateur) { |
|
if (!$id_utilisateur || $id_utilisateur == '') { |
return $this->index(); |
} |
1000,6 → 1042,7 |
if ($this->annuaireAvoirPagePostDesinscription($annuaire['informations']['aa_code'])) { |
$informations_desinscription = $this->GetVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_desinscription_confirmation',$donnees); |
} else { |
|
// Sinon on prend celui par defaut |
$donnees['titre'] = 'Vous êtes maintenant désinscrit de l\'annuaire'; |
$donnees['message'] = 'Votre désinscription a bien été prise en compte <br />'; |
1020,6 → 1063,7 |
* @return string le html contenant le formulaire de recherche |
*/ |
public function afficherFormulaireRecherche($id_annuaire, $donnees = array()) { |
|
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, false); |
|
1032,6 → 1076,7 |
// pour ne charger que ce qui est nécéssaire |
|
foreach ($metadonnees as $nom_champ => $metadonnee) { |
|
$id_champ = $metadonnee['amc_id_champ']; |
$type_champ = $metadonnee['amc_ce_template_affichage']; |
$nom_champ = $metadonnee['amc_abreviation']; |
1048,12 → 1093,16 |
|
// Si le formulaire spécifique à l'annuaire existe, on l'affiche |
if ($this->annuaireAvoirFormulaireRecherche($annuaire['informations']['aa_code'])) { |
|
// Sinon on prend celui par defaut |
$formulaire_recherche = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_recherche',$donnees); |
|
} else { |
|
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire); |
$donnees['mappage_nom_champs'] = $tableau_nom_mappage; |
$formulaire_recherche = $this->genererFormulaireRecherche($donnees); |
|
} |
|
return $formulaire_recherche; |
1067,6 → 1116,7 |
* @param boolean $exclusive indique si la recherche si fait sur tous les critères ou bien sur au moins un |
*/ |
public function rechercherInscrit($id_annuaire, $valeurs_recherchees, $exclusive = true) { |
|
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire, true); |
|
1145,7 → 1195,9 |
if ($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) { |
// on l'affiche |
$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees); |
|
} else { |
|
// sinon on prend celle par défaut |
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire); |
$donnees['mappage_nom_champs'] = $tableau_nom_mappage; |
1165,6 → 1217,7 |
* @param int $taille_page la taille de page |
*/ |
public function rechercherInscritParlocalisation($id_annuaire,$valeurs_recherchees) { |
|
if (isset($_GET['taille_page'])) { |
$taille_page = $_GET['taille_page']; |
} else { |
1224,8 → 1277,9 |
$donnees['id_annuaire'] = $id_annuaire; |
$donnees['nb_resultats'] = $nb_resultats; |
|
$donnees['criteres'] = urlencode(serialize(array( |
'select_'.$tableau_mappage[1]['champ_pays'] => $valeurs_recherchees['pays'], |
|
|
$donnees['criteres'] = urlencode(serialize(array('select_'.$tableau_mappage[1]['champ_pays'] => $valeurs_recherchees['pays'], |
'text_'.$tableau_mappage[1]['champ_code_postal'] => $valeurs_recherchees['departement'], |
'exclusive' => true |
))); |
1245,7 → 1299,9 |
$donnees_navigation = $cartographe->obtenirUrlsNavigation($id_annuaire,$valeurs_recherchees['continent'],$valeurs_recherchees['pays'],$valeurs_recherchees['departement']); |
$donnees['navigation'] = $navigation_carto->afficherBandeauNavigationCartographie($donnees_navigation); |
$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees); |
|
} else { |
|
// sinon on prend celle par défaut |
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire); |
$donnees['mappage_nom_champs'] = $tableau_nom_mappage; |
1257,6 → 1313,7 |
} |
|
public function rechercherDoublons($id_annuaire) { |
|
if (isset($_GET['taille_page'])) { |
$taille_page = $_GET['taille_page']; |
} else { |
1300,6 → 1357,7 |
if ($this->annuaireAvoirPageResultatRecherche($annuaire['informations']['aa_code'])) { |
// on l'affiche |
$vue_resultat_recherche = $this->getVue(Config::get('dossier_squelettes_annuaires').$annuaire['informations']['aa_code'].'_resultat_recherche', $donnees); |
|
} else { |
// sinon on prend celle par défaut |
$tableau_nom_mappage = $this->obtenirNomsChampsMappageAnnuaire($id_annuaire); |
1311,9 → 1369,11 |
return $vue_resultat_recherche; |
} |
|
|
/** --- Fonction pour les images ------------------------------------------------------------------------*/ |
|
public function afficherFormulaireUploadImage($id_annuaire,$id_utilisateur, $donnees = array()) { |
|
$donnees['aa_id_annuaire'] = $id_annuaire; |
$donnees['id_utilisateur'] = $id_utilisateur; |
|
1346,13 → 1406,19 |
* |
*/ |
public function ajouterImageUtilisateur($id_annuaire, $id_utilisateur, $fichier_a_stocker, $retourner_booleen = false) { |
|
$donnees = array('erreurs' => array(), 'aa_id_annuaire' => $id_annuaire); |
|
foreach ($fichier_a_stocker as $nom_champ => $fichier) { |
|
$ids_champ = mb_split("_",$nom_champ, 3); |
|
if (count($ids_champ) == 2) { |
|
$type = $ids_champ[0]; |
$id_champ = $ids_champ[1]; |
|
|
} else { |
trigger_error('Ce champ n\'est pas relié à un annuaire'); |
return false; |
1376,10 → 1442,12 |
if ($this->MetadonneeModele->valeurExiste($id_champ,$id_utilisateur)) { |
// On se contente de la modifier |
if ($stockage_image && $this->MetadonneeModele->modifierValeurMetadonnee($id_champ,$id_utilisateur,$id_utilisateur)) { |
|
} else { |
$donnees['erreurs'][$id_champ] = 'Problème durant le stockage de l\'image'; |
return $this->afficherFormulaireUploadImage($id_annuaire, $id_utilisateur,$donnees); |
} |
|
} else { |
// S'il n'existe pas de valeur, on ajoute une nouvelle ligne à la table de valeurs de meta données |
if ($stockage_image && $this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$id_utilisateur)) { |
1399,6 → 1467,7 |
} |
|
public function obtenirTableauDerniersInscrits($id_annuaire, $limite = '20') { |
|
// Chargement des informations de l'utilisateur dans la table annuaire principale |
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
1423,6 → 1492,7 |
} |
|
public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones) { |
|
$annuaire_modele = $this->getModele('AnnuaireModele'); |
return $annuaire_modele->chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones); |
} |