Subversion Repositories Applications.annuaire

Rev

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

<?php
/**
* PHP Version 5
*
* @category  PHP
* @package   annuaire
* @author    aurelien <aurelien@tela-botanica.org>
* @copyright 2010 Tela-Botanica
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version   SVN: <svn_id>
* @link      /doc/annuaire/
*/

/**
 * Controleur chargé de la propagation et le rassemblement d'informations extérieures
 * lors dce la consultation et modification des fiches utilisateurs
 */
Class ApplicationExterneControleur extends AppControleur {

        private $applications_resume = null;
        private $applications_gestion = null;
        private $mode_reponse = 'json';

        public function ApplicationExterneControleur() {

                $this->__construct();

                // on charge les variables de classes à partir du fichier de configuration
                if(Config::get('url_services_applications_inscription') != null) {

                        $application_str = Config::get('url_services_applications_inscription');
                        $this->applications_inscription = explode('##',$application_str);
                } else {
                        $this->applications_inscription = array();
                }

                // on charge les variables de classes à partir du fichier de configuration
                if(Config::get('url_services_applications_resume') != null) {

                        $application_str = Config::get('url_services_applications_resume');
                        $this->applications_resume = explode('##',$application_str);
                } else {
                        $this->applications_resume = array();
                }

                // on charge les variables de classes à partir du fichier de configuration
                if(Config::get('url_services_applications_gestion') != null) {

                        $application_str = Config::get('url_services_applications_gestion');
                        $this->applications_gestion = explode('##',$application_str);
                } else {
                        $this->applications_gestion = array();
                }
        }

        /**
         * parcourt la liste des applications et appelle une adresse spécifique pour l'inscription
         * et l'inclut, le cas échéant.
         * @param l'identifiant de l'utilisateur
         * @param le mail de l'utilisateur
         */
        public function ajouterInscription($id_utilisateur, $params) {

                if(count($this->applications_inscription) > 0) {
                        foreach($this->applications_inscription as $application) {

                                $inscription = @file_get_contents($application.'Inscription/'.$this->fabriquerRequete($id_utilisateur, $params));
                                $inscription = json_decode($inscription);

                                if($inscription && $inscription == "OK") {

                                } else {
                                        //echo 'Erreur d\'inscription à l\'application '.$application;
                                }
                        }
                }

                return true;
        }


        /**
         * parcourt la liste des applications et appelle une adresse spécifique pour la modification
         * et l'inclut, le cas échéant.
         * @param l'identifiant de l'utilisateur
         * @param le mail de l'utilisateur
         */
        public function modifierInscription($id_utilisateur,$params) {

                if(count($this->applications_inscription) > 0) {
                        foreach($this->applications_inscription as $application) {

                                $modification = @file_get_contents($application.'Modification/'.$this->fabriquerRequete($id_utilisateur, $params));
                                $modification = json_decode($modification);
                                if($modification && $modification == "OK") {

                                } else {
                                        //echo 'Erreur de modification  l\'application '.$application.'<br />'.$modification;
                                }
                        }
                }

                return true;
        }

        /**
         * parcourt la liste des applications et appelle une adresse spécifique pour la suppression
         * et l'inclut, le cas échéant.
         * @param l'identifiant de l'utilisateur
         * @param le mail de l'utilisateur
         */
        public function supprimerInscription($id_utilisateur, $params) {

                if(count($this->applications_inscription) > 0) {
                        foreach($this->applications_inscription as $application) {

                                $suppression = @file_get_contents($application.'Suppression/'.$this->fabriquerRequete($id_utilisateur, $params));
                                $suppression = json_decode($suppression);

                                if($suppression && $suppression == "OK") {

                                } else {
                                        //echo 'Erreur de desinscription à l\'application '.$application;
                                }
                        }
                }

                return true;
        }

        /**
         * Parcourt le repertoire racine des applications et appelle un web service contenant la méthode
         * Resume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
         * de profil
         * @param l'identifiant de l'utilisateur
         * @param le mail de l'utilisateur
         * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
         * inclus dans la fiche profil
         */
        public function obtenirResume($id_utilisateur, $mail) {

                $resumes = array();

                if(count($this->applications_resume) > 0) {
                        foreach($this->applications_resume as $application) {

                                $resume = @file_get_contents($application.'Resume'.DS.$id_utilisateur.DS.$mail);


                                if($resume) {
                                        $resume = json_decode($resume, true);
                                        $resumes[] = $resume;
                                } else {
                                        $resume = array('elements' => array(), 'titre' => '');
                                }
                        }
                }

                return $resumes;
        }

         /** Parcourt le repertoire racine des applications et cherche un fichier spécifique contenant la méthode
         * obtenirResume qui renvoie les informations associées à l'utilisateur qui seront affichées dans la fiche
         * de profil
         * @param l'identifiant de l'utilisateur
         * @param le mail de l'utilisateur
         * @return array un tableau associatif dont les clés sont les noms des applis et les valeurs sont le html qui sera
         * inclus dans la fiche profil
         */
        public function gererInscription($id_utilisateur, $mail) {

                $gestions = array();

                if(count($this->applications_gestion) > 0) {
                        foreach($this->applications_gestion as $application) {

                                $gestion = file_get_contents($application.'Gestion'.DS.$id_utilisateur.DS.$mail);

                                if($gestion) {
                                        $gestion = json_decode($gestion, true);
                                        $gestions[] = $gestion;
                                } else {
                                        $gestion = array('elements' => array(), 'titre' => '');
                                }
                        }
                }

                return $gestions;
        }

        private function fabriquerRequete($id, $params) {

                $requete = '?';

                foreach($params as $cle => $param) {
                        $requete .= '&'.$cle.'='.$param;
                }

                return $requete;
        }
}


?>