13,17 → 13,14 |
|
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')); |
34,11 → 31,9 |
* 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')); |
83,7 → 78,6 |
* @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(); |
137,7 → 131,6 |
* @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); |
|
151,7 → 144,6 |
// 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']; |
172,11 → 164,8 |
$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; |
|
195,7 → 184,6 |
* @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']); |
235,10 → 223,7 |
|
$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 |
251,7 → 236,6 |
* @param int $indentifant L'identifant de session d'une tentative d'inscription |
*/ |
public function ajouterNouvelleInscription($identifiant) { |
|
$this->chargerModele('DonneeTemporaireModele'); |
$valeurs = $this->DonneeTemporaireModele->chargerDonneeTemporaire($identifiant); |
|
298,7 → 282,6 |
|
// 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); |
336,7 → 319,6 |
|
// 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); |
380,7 → 362,6 |
} |
|
public function ajouterNouvelleInscriptionSansIdentifier($code_confirmation) { |
|
// TODO: ajouter un controle d'erreurs |
$inscription_ajout = $this->ajouterNouvelleInscription($code_confirmation); |
$id_annuaire = $inscription_ajout['id_annuaire']; |
389,7 → 370,6 |
} |
|
public function ajouterNouvelleInscriptionEtIdentifier($code_confirmation) { |
|
$inscription_ajout = $this->ajouterNouvelleInscription($code_confirmation); |
|
if(!$inscription_ajout) { |
402,7 → 382,6 |
|
$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']; |
436,7 → 415,6 |
} |
|
public function afficherInscritsEnAttenteConfirmation($id_annuaire) { |
|
$donnees['id_annuaire'] = $id_annuaire; |
|
$this->chargerModele('AnnuaireModele'); |
451,15 → 429,14 |
$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']], |
474,7 → 451,6 |
} |
|
public function supprimerInscriptionEnAttente($id_annuaire, $id_inscrit_en_attente) { |
|
$this->chargerModele('DonneeTemporaireModele'); |
$inscrits_en_attente = $this->DonneeTemporaireModele->supprimerDonneeTemporaire($id_inscrit_en_attente); |
|
482,7 → 458,6 |
} |
|
public function afficherPage($id_annuaire, $id_utilisateur, $page) { |
|
$donnees['id_annuaire'] = $id_annuaire; |
$donnees['id_utilisateur'] = $id_utilisateur; |
|
498,7 → 473,6 |
$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']; |
|
527,7 → 501,6 |
* @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); |
572,7 → 545,6 |
* @return string la vue contenant les contributions utilisateur |
*/ |
public function afficherFicheResumeUtilisateur($id_annuaire, $id_utilisateur) { |
|
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
|
608,7 → 580,6 |
} |
|
public function gererInscriptionExterne($id_annuaire, $id_utilisateur) { |
|
$this->chargerModele('AnnuaireModele'); |
$mail_utilisateur = $this->AnnuaireModele->obtenirMailParId($id_annuaire,$id_utilisateur); |
|
640,7 → 611,6 |
} |
|
public function afficherFormulaireModificationInscription($id_annuaire, $id_utilisateur, $erreurs = array()) { |
|
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
|
677,12 → 647,9 |
|
// 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; |
|
694,7 → 661,6 |
} |
|
public function modifierInscription($valeurs) { |
|
$this->chargerModele('MetadonneeModele'); |
|
$id_utilisateur = $valeurs['id_utilisateur']; |
748,7 → 714,6 |
|
// 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; |
765,7 → 730,6 |
|
// cas du changement de mot de passe |
if($type == 'password') { |
|
if($condition == 'conf') { |
$valeur_a_ignorer = true; |
} |
875,7 → 839,6 |
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)) { |
898,7 → 861,6 |
} |
|
public function bloquerDebloquerUtilisateur($id_annuaire, $id_utilisateur, $bloquer = true) { |
|
$annuaire_modele = $this->getModele('AnnuaireModele'); |
$champs_description = $annuaire_modele->obtenirChampsDescriptionAnnuaire($id_annuaire); |
|
920,7 → 882,6 |
* @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); |
} |
933,7 → 894,6 |
* |
*/ |
public function reinitialiserMotDePasse($id_annuaire, $mail) { |
|
$this->chargerModele('AnnuaireModele'); |
$verificateur = new VerificationControleur(); |
$messagerie = new MessageControleur(); |
969,7 → 929,6 |
} |
|
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); |
982,7 → 941,6 |
* @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(); |
} |
1042,7 → 1000,6 |
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 />'; |
1063,7 → 1020,6 |
* @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); |
|
1076,7 → 1032,6 |
// 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']; |
1093,16 → 1048,12 |
|
// 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; |
1116,7 → 1067,6 |
* @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); |
|
1195,9 → 1145,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); |
$donnees['mappage_nom_champs'] = $tableau_nom_mappage; |
1217,7 → 1165,6 |
* @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 { |
1277,9 → 1224,8 |
$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 |
))); |
1299,9 → 1245,7 |
$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; |
1313,7 → 1257,6 |
} |
|
public function rechercherDoublons($id_annuaire) { |
|
if(isset($_GET['taille_page'])) { |
$taille_page = $_GET['taille_page']; |
} else { |
1357,7 → 1300,6 |
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); |
1369,11 → 1311,9 |
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; |
|
1406,19 → 1346,13 |
* |
*/ |
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; |
1442,12 → 1376,10 |
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)) { |
1467,7 → 1399,6 |
} |
|
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); |
1492,7 → 1423,6 |
} |
|
public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones) { |
|
$annuaire_modele = $this->getModele('AnnuaireModele'); |
return $annuaire_modele->chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $id_zones); |
} |