Subversion Repositories Applications.framework

Rev

Rev 236 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * classe Controleur, pour l'application d'administration des administrateurs
 *
 * PHP Version 5
 *
 * @package   Framework
 * @category  Class
 * @author      aurelien <aurelien@tela-botanica.org>
 * @copyright 2009 Tela-Botanica
 * @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: AdminAdministrateur.php 236 2010-11-23 12:31:08Z jpm $$
 * @link          /doc/framework/
 *
 */
class AdminAdministrateur extends Controleur {

        /**
         * Fonction d'affichage par défaut, elle appelle la liste des administrateurs
         */
        public function index() {
                $this->charger_admin();
        }

        /**
         * Charge la liste des administrateurs et l'envoie à la vue
         * @param array un tableau contenant les erreurs à afficher s'il y en a
         * @return string la vue correspondante
         */
        public function chargerAdmin($erreurs = array()) {
                $this->chargerModele('ListeAdmin');
                $data['url'] = new Url(Config::get('url_base'));
                $data['erreurs'] = $erreurs;
                $data['admin'] = $this->ListeAdmin->chargerAdmin();
                $html = $this->getVue('liste_admin', $data);

                return $html;
        }

        /**
         * Charge les détails d'un administrateur demandé et l'envoi à la
         * vue qui permet de les modifier
         * @id string l'id de l'administrateur à modifier
         * @return string la vue correspondante
         */
        public function modifAdmin($id) {
                $this->chargerModele('ListeAdmin');
                $data['admin'] = $this->ListeAdmin->loadDetailsAdmin($id);
                $html = $this->getVue('modif_admin',$data);

                return $html;
        }

        /**
         * Fonction appelée lors de la validation du formulaire de modification
         * des détails d'un administrateurs. Elle modifie les détails dans la base
         * de données. S'il y a une erreur et rappelle la formulaire et notifie l'erreur,
         * sinon elle charge la liste des administrateurs
         * @param string l'identifiant de l'administrateur
         * @param string le nom
         * @param string le prénom
         * @param string le mail
         * @param string le mot de passe
         * @param string la confirmation du mot de passe
         * @return string la vue correspondante
         */
        public function modifAdminVa($id, $nom, $prenom, $mail, $lang, $pass, $pass_conf) {
                $this->chargerModele('ListeAdmin') ;
                $res = $this->ListeAdmin->modifDetailsAdmin($id, $nom, $prenom, $mail, $lang, $pass, $pass_conf);

                if (count($res) == 0) {
                        return $this->chargerAdmin();
                } else {
                        $admin['ga_id_administrateur'] = $id;
                        $admin['ga_nom'] = $nom;
                        $admin['ga_prenom'] = $prenom;
                        $admin['ga_mail']  = $mail;
                        $admin['ga_ce_i18n'] = $lang;
                        $data['admin'] = $admin;
                        $data['erreurs'] = $res;
                        $html = $this->getVue('modif_admin', $data);
                        return $html;
                }
        }

        /**
         * Supprime un administrateur dans la base de données,
         * renvoie la liste des administrateurs, en affichant des erreurs
         * s'il y en a.
         * @return string la vue contenant la liste des administrateurs
         *
         */
        public function supprAdmin($id) {
                $this->chargerModele('ListeAdmin');
                $res = $this->ListeAdmin->suppAdmin($id);
                if ($res == '') {
                        return $this->chargerAdmin();
                } else {
                        $erreurs['supp'] = $res;
                        return $this->chargerAdmin($erreurs);
                }
        }

        /**
         * Appelle la vue contenant le formulaire d'ajout d'un administrateur
         * @return string la vue contenant le formulaire d'ajout
         */
        function ajoutAdmin() {
                $admin['ga_id_administrateur'] = '';
                $admin['ga_nom'] = '';
                $admin['ga_prenom'] = '';
                $admin['ga_mail']  = '';
                $admin['ga_ce_i18n'] = '';
                $data['admin'] = $admin;
                $data['url'] = new Url(Config::get('url_base'));
                $html = $this->getVue('ajout_admin', $data);

                return $html;
        }

        /**
         * Fonction appelée lors de la validation du formulaire d'ajout d'un administrateur.
         * Elle ajoute celui-ci les dans la base de données
         * S'il y a une erreur et rappelle la formulaire et notifie l'erreur,
         * sinon elle charge la liste des administrateurs
         * @param string le nom
         * @param string le prénom
         * @param string le mail
         * @param string le mot de passe
         * @param string la confirmation du mot de passe
         * @return string la vue correspondante
         */
        public function ajoutAdminVa($nom, $prenom, $mail, $lang, $pass, $pass_conf) {
                if (empty($nom) || empty($prenom) || empty($mail) || empty($pass) || empty($pass_conf)) {
                        $data['url'] = new Url(Config::get('url_base'));
                        $data['erreurs'] = array('champs' => 'Tous les champs sont obligatoires');
                        $admin['ga_nom'] = $nom;
                        $admin['ga_prenom'] = $prenom;
                        $admin['ga_mail']  = $mail;
                        $admin['ga_ce_i18n'] = $lang;
                        $data['admin'] = $admin;
                        $html = $this->getVue('ajout_admin', $data);

                        return $html;
                } else {
                        $this->chargerModele('ListeAdmin');
                        $res = $this->ListeAdmin->ajoutAdmin($nom, $prenom, $mail, $lang, $pass, $pass_conf);
                        if (count($res) == 0) {
                                return $this->chargerAdmin();
                        } else {
                                $admin['ga_nom'] = $nom;
                                $admin['ga_prenom'] = $prenom;
                                $admin['ga_mail']  = $mail;
                                $admin['ga_ce_i18n'] = $lang;
                                $data['url'] = new Url(Config::get('url_base'));
                                $data['admin'] = $admin;
                                $data['erreurs'] = $res;
                                $html = $this->getVue('ajout_admin', $data);
        
                                return $html;
                        }
                }
        }

         /** Apelle le formulaire d'identification (dans le cas où l'utilisateur n'est pas identifié)
          * @return string la vue permettant de s'identifier
         */
        public function demanderIdent() {
                $html = $this->getVue('ident_admin', null);
                return $html;
        }

        /**
         * Renvoie la tête de page de l'application
         * @return string la tete de page de l'application
         */
        public function adminTete() {
                $tete = '<h1>Gestion des administrateurs de Papyrus</h1>';
                return $tete;
        }

        /**
         * Renvoie le pied de page de l'application
         * @return string le pied de page de l'application
         */
        public function adminPied() {
                $pied = '';
                return $pied;
        }
}
?>