Blame | Last modification | View Log | RSS feed
<?php// declare(encoding='UTF-8');/*** Annuaire est le controlleur principal de l'application.* Il repartit les demandes utilisateurs dans les différents modules, execute les actions et redistribue le code* html dans les différentes fonctions d'affichage.* C'est un Singleton.** @category PHP5* @package Annuaire* @author Aurélien Peronnet <aurelien@tela-botanica.org>* @copyright 2010 Tela-Botanica* @license GPL-v3 et CECILL-v2* @version SVN:<svn_id>*/class Annuaire extends Controleur {/*** Instance de la classe pointant sur elle même (pour le pattern singleton)*/private static $instance = null;/*** Paramètres pour l'annuaire*/private static $parametres = array();/*** Constructeur vide*/public function __construct() {$sortie = array('titre' => '', 'description' => '', 'tags' => '','corps' => '', 'tete' => '', 'pied' => '', 'navigation' => '');$url = new Url(Config::get('url_base'));self::$parametres = array( 'module' => 'AnnuaireControleur','action' => 'executerActionParDefaut','sortie' => $sortie,'url' => $url);parent::__construct();}/*** Initialisation du controleur principal en fonction des paramêtres de l'url.*/public static function initialiser($admin = false) {self::verifierCreationInstance();self::gererSession();self::gererIdentification($admin);if (isset($_GET['m'])) {self::$parametres['m'] = $_GET['m'];} else {if(isset($_POST['m'])) {self::$parametres['m'] = $_POST['m'];}}$registre = Registre::getInstance();$registre->set('parametres', &self::$parametres);// Traiter les paramètre de methode selon une expression régulièreself::fusionnerSortie(self::traiterMethode(self::$parametres['m'])/*$module->getSortie()*/);}private static function traiterMethode($methode) {switch ($methode) {case 'annuaire_inscrits':$controleur = new AnnuaireControleur();$id = $_GET['id_annuaire'];if(isset($_GET['taille_page'])) {$taille_page = $_GET['taille_page'];} else {$taille_page = 50;}if(isset($_GET['numero_page'])) {$numero_page = $_GET['numero_page'];} else {$numero_page = 1;}$retour = $controleur->afficherFormulaireRecherche($id);$retour .= $controleur->chargerAnnuaireListeInscrits($id, $numero_page, $taille_page);break;case 'annuaire_formulaire_inscription':$controleur = new AnnuaireControleur();$id = $_GET['id_annuaire'];$retour = $controleur->afficherFormulaireInscription($id);break;case 'annuaire_ajout_inscription':$valeurs = $_POST;$controleur = new AnnuaireControleur();$retour = $controleur->ajouterInscriptionTemporaire($valeurs);break;case 'annuaire_inscription_confirmation':$identifiant = $_GET['id'];$controleur = new AnnuaireControleur();$retour = $controleur->ajouterNouvelleInscription($identifiant);break;case 'annuaire_fiche_utilisateur_consultation':$identifiant_annuaire = $_GET['id_annuaire'];$controleur = new AnnuaireControleur();$retour = $controleur->afficherFicheUtilisateur($identifiant_annuaire,$GLOBALS['id_utilisateur']);break;case 'annuaire_fiche_resume_consultation':$identifiant_annuaire = $_GET['id_annuaire'];$controleur = new AnnuaireControleur();$retour = $controleur->afficherFicheResumeUtilisateur($identifiant_annuaire,$GLOBALS['id_utilisateur']);break;case 'annuaire_fiche_gestion_consultation':$identifiant_annuaire = $_GET['id_annuaire'];$controleur = new AnnuaireControleur();$retour = $controleur->gererInscriptionExterne($identifiant_annuaire,$GLOBALS['id_utilisateur']);break;case 'annuaire_formulaire_modification_inscription':$controleur = new AnnuaireControleur();$id_annuaire = $_GET['id_annuaire'];$retour = $controleur->afficherFormulaireModificationInscription($id_annuaire, $GLOBALS['id_utilisateur']);break;case 'annuaire_modification_inscription':$controleur = new AnnuaireControleur();$valeurs = $_POST;$retour = $controleur->modifierInscription($_POST);break;case 'annuaire_afficher_formulaire_ajout_image':$identifiant_annuaire = $_GET['id_annuaire'];$controleur = new AnnuaireControleur();$id_champ_image = $_GET['id_champ_image'];$retour = $controleur->afficherFormulaireUploadImage($identifiant_annuaire,$GLOBALS['id_utilisateur'], $id_champ_image);break;case 'annuaire_ajouter_image':$identifiant_annuaire = $_GET['id_annuaire'];$GLOBALS['id_utilisateur'] = $_GET['id_utilisateur'];$infos_images = $_FILES;$controleur = new AnnuaireControleur();$retour = $controleur->ajouterImageUtilisateur($identifiant_annuaire,$GLOBALS['id_utilisateur'],$infos_images);break;case 'annuaire_suppression_inscription':$identifiant_annuaire = $_GET['id_annuaire'];$controleur = new AnnuaireControleur();$retour = $controleur->supprimerInscription($identifiant_annuaire,$GLOBALS['id_utilisateur']);break;case 'annuaire_afficher_formulaire_oubli_mdp':$identifiant_annuaire = $_GET['id_annuaire'];$controleur = new AnnuaireControleur();$retour = $controleur->afficherFormulaireOubliMotDePasse($identifiant_annuaire);break;case 'annuaire_oubli_mdp':$identifiant_annuaire = $_GET['id_annuaire'];$mail = $_POST['mail'];$controleur = new AnnuaireControleur();$retour = $controleur->reinitialiserMotDePasse($identifiant_annuaire, $mail);break;case 'annuaire_afficher_formulaire_recherche':$identifiant_annuaire = $_GET['id_annuaire'];$controleur = new AnnuaireControleur();$retour = $controleur->afficherFormulaireRecherche($identifiant_annuaire);break;case 'annuaire_recherche_inscrit':$identifiant_annuaire = $_GET['id_annuaire'];unset($_GET['id_annuaire']);if(isset($_GET['inclusive'])) {$exclusive = false;unset($_GET['inclusive']);} else {$exclusive = true;}$criteres = $_GET;$controleur = new AnnuaireControleur();$retour = $controleur->rechercherInscrit($identifiant_annuaire,$criteres, $exclusive);break;case 'annuaire_inscrits_carto':$identifiant_annuaire = $_GET['id_annuaire'];$criteres = $_GET;$controleur = new AnnuaireControleur();$retour = $controleur->rechercherInscritParlocalisation($identifiant_annuaire,$criteres);break;default:$controleur = new AnnuaireControleur();$retour = $controleur->index();break;case 'annuaire_afficher_carte':$identifiant_annuaire = $_GET['id_annuaire'];$continent = null;$pays = null;$departement = null;if(isset($_GET['continent'])) {$continent = $_GET['continent'];}if(isset($_GET['pays'])) {$pays = $_GET['pays'];}if(isset($_GET['departement'])) {$departement = $_GET['departement'];}$controleur = new CartoControleur();$retour = $controleur->cartographier($identifiant_annuaire, $continent, $pays, $departement);break;case 'annuaire_envoyer_message':$id_annuaire = $_GET['id_annuaire'];$contenu_message = $_GET['contenu_message'];$sujet_message = $_GET['sujet_message'];$destinataires = array_keys($_GET['destinataires']);$controleur = new MessageControleur();$retour = $controleur->envoyerMailDirectOuModere($id_annuaire ,Config::get('identification'), $destinataires, $sujet_message, $contenu_message);break;case 'inscription_lettre_actualite':$controleur = new AnnuaireControleur();$id_annuaire = $_GET['id_annuaire'];$retour = $controleur->inscriptionLettreActualite($id_annuaire, $GLOBALS['id_utilisateur']);if(isset($_GET['retour'])) {$retour = $controleur->gererInscriptionExterne($identifiant_annuaire,$GLOBALS['id_utilisateur']);}break;case 'desinscription_lettre_actualite':$controleur = new AnnuaireControleur();$id_annuaire = $_GET['id_annuaire'];$retour = $controleur->desinscriptionLettreActualite($id_annuaire, $GLOBALS['id_utilisateur']);if(isset($_GET['retour'])) {$retour = $controleur->gererInscriptionExterne($identifiant_annuaire,$GLOBALS['id_utilisateur']);}break;default:$controleur = new AnnuaireControleur();$retour = $controleur->afficherFicheUtilisateur(Config::get('annuaire_defaut'),$GLOBALS['id_utilisateur']);break;}return $retour;}private static function gererIdentification($admin) {$identification = Config::get('identification');$annuaire_controleur = new AnnuaireControleur();$annuaire_controleur->chargerModele('AnnuaireModele');$id = $annuaire_controleur->AnnuaireModele->obtenirIdParMail('1',$identification);//ajout des variables d'identificationRegistre::getInstance()->set('est_admin',$admin);Registre::getInstance()->set('identification_id',$id);Registre::getInstance()->set('identification_mail',$identification);if(isset($_GET['id_utilisateur'])) {$GLOBALS['id_utilisateur'] = $_GET['id_utilisateur'];} else if ($_POST['id_utilisateur']) {$GLOBALS['id_utilisateur'] = $_POST['id_utilisateur'];} else {$GLOBALS['id_utilisateur'] = $id;}}private static function gererSession() {if (Config::get('session_demarrage')) {// Attribution d'un nom à la sessionsession_name(Config::get('session_nom'));// Démarrage de la sessionsession_start();}}/*** Fusionne un tableau de sortie par défaut avec le tableau renvoyé par l'action du module.* @param array le tableau à fusionner*/private static function fusionnerSortie($sortie) {self::$parametres['sortie'] = array_merge(self::$parametres['sortie'], $sortie);}/*** Vérifie si l'instance de classe à été crée, si non la crée.*/private static function verifierCreationInstance() {if (empty(self::$instance)) {self::$instance = new Annuaire();}}/*** Retourne le titre du contenu de l'application.*/public static function getMetaTitre() {$sortie = self::$parametres['sortie']['titre'];if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}/*** Retourne la description du contenu de l'application.*/public static function getMetaDescription() {$sortie = self::$parametres['sortie']['description'];if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}/*** Retourne les mots-clés (tags) du contenu de l'application.*/public static function getMetaTags() {$sortie = self::$parametres['sortie']['tags'];if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}/*** Retourne le contenu du corps de l'application.*/public static function getContenuCorps() {Debug::printr($this->parametres['sortie']);$sortie = self::$parametres['sortie']['corps'];if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}/*** Retourne le contenu de la tête de l'application.*/public static function getContenuTete() {$sortie = self::$parametres['sortie']['tete'];if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}/*** Retourne le contenu du pied de l'application.*/public static function getContenuPied() {$sortie = self::$parametres['sortie']['pied'];if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}/*** Retourne les éléments de navigation de l'application.*/public static function getContenuNavigation() {$sortie = self::$parametres['sortie']['navigation'];if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}/*** Retourne les chronos pris dans l'appli*/public static function getChrono() {$sortie = '';if (Config::get('chronometrage')) {$chrono = Chronometre::afficherChrono();$sortie = mb_convert_encoding($chrono, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}/*** Retourne les messages d'exceptions et d'erreurs.*/public static function getExceptions() {$sortie = GestionnaireException::getExceptions();if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {$sortie = mb_convert_encoding($sortie, Config::get('sortie_encodage'), Config::get('appli_encodage'));}return $sortie;}}