Subversion Repositories Applications.annuaire

Rev

Rev 63 | 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 Controleur {

        private $applications = null;
        private $repertoire_applications = null;

        public function ApplicationExterneControleur() {

                $this->__construct();

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

                        $application_str = Config::get('applications_externes');
                        $this->applications = explode(';;',$application_str);
                } else {
                        $this->applications = array();
                }

                if(Config::get('repertoire_applications_externes') != null) {
                        $this->repertoire_applications = Config::get('repertoire_applications_externes');
                } else {
                        $this->repertoire_applications = '';
                }
        }

        /**
         * Parcourt le repertoire racine des application et cherche un fichier 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, $mail) {

                $d = dir($this->repertoire_applications);

                $msg = '';

                // parcours du répertoire des appli
                while (false !== ($repertoire = $d->read())) {
                        if ($repertoire != '.' || $repertoire != '..') {
                                // on recherche un fichier de la forme nom_appli_inscription.inc.php
                                if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.inscription.inc.php')) {
                                        include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.inscription.inc.php' ;
                                }
                        }
                        if ($msg != '') $res .= $msg;
                }

                if($msg != '') {
                        $msg = 'Attention certaines erreurs se son produites lors de l\'inscription '.$msg;
                        trigger_error($msg, E_USER_WARNING);
                }

                $d->close();

                return true;
        }


        /**
         * Parcourt le repertoire racine des application et cherche un fichier 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, $mail) {
                $d = dir($this->repertoire_applications);

                $msg = '';

                while (false !== ($repertoire = $d->read())) {
                        if ($repertoire != '.' || $repertoire != '..') {
                                if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.modification.inc.php')) {
                                        include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.modification.inc.php' ;
                                }
                        }
                        if ($msg != '') $res .= $msg;
                }

                if($msg != '') {
                        $msg = 'Attention certaines erreurs se sont produites lors de la modification de l\'inscription '.$msg;
                        trigger_error($msg, E_USER_WARNING);
                }

                $d->close();
        }

        /**
         * Parcourt le repertoire racine des application et cherche un fichier 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, $mail) {

                $d = dir($this->repertoire_applications);

                $msg = '';

                while (false !== ($repertoire = $d->read())) {
                        if ($repertoire != '.' || $repertoire != '..') {
                                if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.desinscription.inc.php')) {
                                        include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.desinscription.inc.php' ;
                                }
                        }
                        if ($msg != '') $res .= $msg;
                }

                if($msg != '') {
                        $msg = 'Attention certaines erreurs se sont produites lors de la desinscription '.$msg;
                        trigger_error($msg, E_USER_WARNING);
                }

                $d->close();
        }

        /**
         * 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 obtenirResume($id_utilisateur, $mail) {

                $d = dir($this->repertoire_applications);

                $resumes = array();

                while (false !== ($repertoire = $d->read())) {
                        if ($repertoire != '.' || $repertoire != '..') {
                                if (file_exists($this->repertoire_applications.$repertoire.DS.$repertoire.'.resume.inc.php')) {
                                        include_once $this->repertoire_applications.$repertoire.DS.$repertoire.'.resume.inc.php' ;

                                        if(class_exists($repertoire.'Resume')) {

                                                $classe = $repertoire.'Resume';
                                                $resume_appli = new $classe();
                                                $resumes[$repertoire] = $resume_appli->obtenirResume($id_utilisateur, $mail);
                                        }
                                }
                        }
                }
                $d->close();

                return $resumes;
        }
}


?>