Subversion Repositories Applications.gtt

Rev

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

<?php
class GttCtrlActionAdminCategorie extends aControlleurAction {

        public function __construct(Registre $Registre)
        {
                $Registre->ajouterEspace('AdminCategorie', 'admin_categorie');
                $Registre->ajouterSquelette('admin_categorie', 'admin_categorie.tpl.html');
                $Registre->setTitre('Administrer les catégories des projets');
        }

        public function executer()
    {
        $aso_admin_categ = array();

                // Récupération des catégories
                $ProjetCategorie = new ProjetCategorie();
        $tab_pc = $ProjetCategorie->consulter(ProjetCategorie::GPC_TOUS);
        foreach ($tab_pc as $pc) {
                if ($pc->getIdCategorie() != 0) {
                        $aso_categ['id'] = $pc->getIdCategorie();
                        $aso_categ['libelle'] = $pc->getLibelle();
                        $aso_admin_categ['categories'][] = $aso_categ;
                }
        }

        //echo '<pre>'.print_r($aso_admin_categ, true).'</pre>';
                $this->getRegistre()->ajouterDonnee('admin_categorie', $aso_admin_categ);
    }

    public function executerValiderAjouter()
    {
                // Ajout de la catégorie
                $ProjetCategorie = new ProjetCategorie();
                $bool_existe = $ProjetCategorie->consulter(ProjetCategorie::GPC_LIBELLE, array($_POST['caaj_libelle']));
                if ($bool_existe == false) {
                        $ProjetCategorieMax = $ProjetCategorie->consulter(ProjetCategorie::GPC_ID_MAX);
                        $id_max = $ProjetCategorieMax->getIdCategorie();
                        $ProjetCategorie->setIdCategorie(++$id_max);
                        $ProjetCategorie->setLibelle($_POST['caaj_libelle']);
                $ProjetCategorie->ajouter();
                } else {
                        $aso_admin_categ['message'] = 'Cette catégorie existe déjà !';
                        $this->getRegistre()->ajouterDonnee('admin_categorie', $aso_admin_categ);
                }

                // Action suivante
        $this->setSuivant('__defaut__');
    }

    public function executerValiderSupprimer()
    {
                // Suppression de la catégorie
                $ProjetCategorie = new ProjetCategorie();
                $ProjetCategorie->setIdCategorie($_POST['casu_id']);
        $ProjetCategorie->supprimer();

                // Mise à jour des projets appartenant à la catégorie
                $Projet = new Projet();
                $tab_p = $Projet->consulter(Projet::GP_CE_CATEGORIE, $_POST['casu_id']);
                if ($tab_p != false) {
                        if ($tab_p && count($tab_p) == 1) {
                                $tab_p = array($tab_p);
                        }
                        foreach ($tab_p as $p) {
                        $Ancien = clone $p;
                        $p->setCeCategorie(0);
                        $p->modifier($Ancien);
                }
                }

                // Action suivante
        $this->setSuivant('__defaut__');
    }
}
?>