Subversion Repositories Applications.annuaire

Rev

Rev 311 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 *
 * PHP version 5
 *
 * @category PHP
 * @package Framework
 * @author Aurelien PERONNET <aurelien@tela-botanica.org>
 * @copyright Tela-Botanica 2009
 * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
 * @license   http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
 * @version   SVN: $$Id$$
 * @link /doc/framework/
 */

include_once('initialisation.php');

// on récupère les variables d'identification
$identification = Config::get('identification');
$annuaire_controleur = new AnnuaireControleur();
if($identification) {
        $id = $annuaire_controleur->obtenirIdParMail('1', $identification);
} else {
        $id = false;
}

Registre::getInstance()->set('est_admin',false);
Registre::getInstance()->set('identification_id',$id);
Registre::getInstance()->set('identification_mail',$identification);

// identification
// TODO : faire mieux (un wrapper pour gérer différents types d'objets)
if(isset($_GET['id_utilisateur'])) {
        $GLOBALS['id_utilisateur'] = $_GET['id_utilisateur'];
} else if (isset($_POST['id_utilisateur'])) {
        $GLOBALS['id_utilisateur'] = $_POST['id_utilisateur'];
} else {
        $GLOBALS['id_utilisateur'] = $id;
}


/**
 * Fonction d'affichage de Papyrus, pour le corps de page
 */
function afficherContenuCorps() {

        // TODO : rendre cette partie modulable.
        if(isset($_GET['id_annuaire'])) {
                $id_annuaire = $_GET['id_annuaire'];
        } else {
                $_GET['id_annuaire'] = Config::get('annuaire_defaut');
        }
        
        $methode = '';

        if (isset($_GET['m'])) {
                $methode = $_GET['m'];
                //unset($_GET['m']);
        } else {
                if (isset($_POST['m'])) {
                        $methode = $_POST['m'];
                        //unset($_POST['m']);
                } else {
                                // Gestion des paramêtres définis dans Papyrus
                        if (isset($GLOBALS['_GEN_commun']['info_application']->m)) {
                                
                                if($methode != 'annuaire_afficher_formulaire_oubli_mdp' && $methode != 'annuaire_oubli_mdp') {
                                               $methode = $GLOBALS['_GEN_commun']['info_application']->m;
                                }
                        }

                        // Gestion des paramêtres définis dans Papyrus
                        if (isset($GLOBALS['_GEN_commun']['info_application']->id_annuaire)) {
                                                $_GET['id_annuaire'] = $GLOBALS['_GEN_commun']['info_application']->id_annuaire;
                        }
                }
        }

        $identification = Config::get('identification');

        if(!$identification) {

                switch ($methode) {
                        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->ajouterNouvelleInscriptionEtIdentifier($identifiant);
                                break;
                                
                        case 'f_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_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_inscrits_carto':
                                $identifiant_annuaire = $_GET['id_annuaire'];
                                $criteres = $_GET;
                                $controleur = new AnnuaireControleur();
                                $retour = $controleur->rechercherInscritParlocalisation($identifiant_annuaire,$criteres);
                        break;

                        default :
                                $id = $_GET['id_annuaire'];
                                $controleur = new IdentificationControleur();
                                $retour = $controleur->afficherFormulaireIdentification($id);
                        break;
                }

                if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
                        $retour = mb_convert_encoding($retour, Config::get('sortie_encodage'),Config::get('appli_encodage'));
                }

                return $retour;
        }


        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_afficher_page':
                        $id_annuaire = $_GET['id_annuaire'];
                        $page = $_GET['page'];
                        
                        $controleur = new AnnuaireControleur();
                        $retour = $controleur->afficherPage($id_annuaire, $GLOBALS['id_utilisateur'], $page);
                        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,Registre::getInstance()->get('identification_id'));
                        break;


                case 'annuaire_formulaire_modification_inscription':
                        $controleur = new AnnuaireControleur();
                        $id_annuaire = $_GET['id_annuaire'];
                        $retour = $controleur->afficherFormulaireModificationInscription($id_annuaire, Registre::getInstance()->get('identification_id'));
                        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();
                        $retour = $controleur->afficherFormulaireUploadImage($identifiant_annuaire,Registre::getInstance()->get('identification_id'), $_GET);
                        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,Registre::getInstance()->get('identification_id'),$infos_images);
                        break;


                case 'annuaire_suppression_inscription':
                        $identifiant_annuaire = $_GET['id_annuaire'];
                        $id_utilisateur = $_GET['id_utilisateur'];
                        $controleur = new AnnuaireControleur();
                        $retour = $controleur->supprimerInscription($identifiant_annuaire,Registre::getInstance()->get('identification_id'));
                        break;

                case 'annuaire_formulaire_suppression_inscription':
                        $identifiant_annuaire = $_GET['id_annuaire'];
                        $id_utilisateur = $_GET['id_utilisateur'];
                        $controleur = new AnnuaireControleur();
                        $retour = $controleur->afficherFormulaireSuppressionInscription($identifiant_annuaire,Registre::getInstance()->get('identification_id'));
                        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_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_inscrits_carto':
                        $identifiant_annuaire = $_GET['id_annuaire'];
                        $criteres = $_GET;
                        $controleur = new AnnuaireControleur();
                        $retour = $controleur->rechercherInscritParlocalisation($identifiant_annuaire,$criteres);
                break;

                case 'annuaire_envoyer_message':
                
                        $controleur = new MessageControleur();
                        
                        $id_annuaire = $_POST['id_annuaire'];
                        $contenu_message = $_POST['contenu_message'];
                        $sujet_message = $_POST['sujet_message'];
                        $destinataires = array_keys($_POST['destinataires']);
                        $criteres = unserialize(urldecode($_POST['criteres']));
                        
                        if(isset($_POST['envoyer_tous'])) {
                                $retour = $controleur->envoyerMailParRequete($id_annuaire,Config::get('identification'), $criteres, $sujet_message, $contenu_message);
                        } else {
                                $retour = $controleur->envoyerMailDirectOuModere($id_annuaire ,Config::get('identification'), $destinataires, $sujet_message, $contenu_message);
                        }               
                break;
                
                // Fonctions de modération des messages
                case 'message_moderation_confirmation':
                        if(isset($_GET['id'])) {
                                $id_message = $_GET['id'];
                        }
                        $controleur = new MessageControleur();
                        $retour = $controleur->envoyerMailModere($id_message);
                break;

                case 'message_moderation_suppression':
                        if(isset($_GET['id'])) {
                                $id_message = $_GET['id'];
                        }
                        $controleur = new MessageControleur();
                        $retour = $controleur->supprimerMailModere($id_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($id_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($id_annuaire,$GLOBALS['id_utilisateur']);
                        }
                break;

                default:
                        $controleur = new AnnuaireControleur();
                        $retour = $controleur->afficherFicheUtilisateur(Config::get('annuaire_defaut'),$GLOBALS['id_utilisateur']);
                break;
        }

        if (Config::get('sortie_encodage') != Config::get('appli_encodage')) {
                $retour = mb_convert_encoding($retour, Config::get('sortie_encodage'),Config::get('appli_encodage'));
        }

        return $retour;
}

function afficherContenuTete() {

        // c'est très moche, il ne faudrait pas faire comme ceci
        if(function_exists('GEN_stockerStyleExterne')) {
                GEN_stockerStyleExterne('annuaire_papyrus',Config::get('base_url_styles').'squelettes/css/annuaire_complexe.css');
                GEN_stockerStyleExterne('annuaire_papyrus_simple',Config::get('base_url_styles').'squelettes/css/annuaire.css');
        }
        return "";
}

function afficherContenuPied() {
        return '';
}

function afficherContenuNavigation() {
        return '';
}

function afficherContenuMenu() {

        // TODO : rendre cette partie modulable.
        if(isset($_GET['id_annuaire'])) {
                $id_annuaire = $_GET['id_annuaire'];
        } else {
                $id_annuaire = Config::get('annuaire_defaut');
        }

        $identification = Config::get('identification');

        if($identification) {
                $controleur = new NavigationControleur();
                $menu = $controleur->afficherContenuMenu($id_annuaire,false);   
        } else {
                $menu = '';
        }
        
        return '';

        return $menu;
}

?>