Rev 73 | Rev 102 | 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();
// Ajout de la catégorie par défaut
$aso_admin_categ['ProjetCategorie'] = $ProjetCategorie;
// Récupération des infos sur les categories existantes
$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;
}
}
// Modification des titres, légendes et bouton
$aso_admin_categ['form_legend'] = 'Ajouter une categorie';
$aso_admin_categ['form_bouton_value'] = 'Ajouter';
$aso_admin_categ['form_bouton_id'] = 'btn_categorie_ajouter';
$aso_admin_categ['form_url'] = 'index.php?action=admin-categorie_valider-ajouter';
//echo '<pre>'.print_r($aso_admin_categ, true).'</pre>';
$this->getRegistre()->ajouterDonnee('admin_categorie', $aso_admin_categ);
}
public function executerEditer()
{
// Ajout du statut d'utilisateur
if (isset($_POST['btn_categorie_modifier'])) {
// Récupération des données de la categorie à modifier
$ProjetCategorie = new ProjetCategorie();
$ProjetCategorie->consulter(ProjetCategorie::GPC_ID, $_POST['casu_id'], true);
$aso_admin_categ['ProjetCategorie'] = $ProjetCategorie;
// Modification des titres, légendes et bouton
$aso_admin_categ['form_legend'] = 'Modifier une categorie';
$aso_admin_categ['form_bouton_value'] = 'Modifier';
$aso_admin_categ['form_bouton_id'] = 'btn_categorie_modifier';
$aso_admin_categ['form_url'] = 'index.php?action=admin-categorie_valider-modifier';
$this->getRegistre()->ajouterDonnee('admin_categorie', $aso_admin_categ);
} else if (isset($_POST['btn_categorie_supprimer'])) {
// Action suivante
$this->setSuivant('ValiderSupprimer');
}
}
public function executerValiderModifier()
{
if (isset($_POST['btn_categorie_annuler'])) {
// Action suivante
$this->setSuivant('__defaut__');
} else if (isset($_POST['btn_categorie_modifier'])) {
$ProjetCategorie = new ProjetCategorie();
$ProjetCategorie->setIdCategorie($_POST['caaj_id_categorie']);
$ProjetCategorie->setLibelle($_POST['caaj_libelle']);
$ProjetCategorie->setAbreviation($_POST['caaj_abreviation']);
$ProjetCategorie->modifier();
}
}
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->setAbreviation($_POST['caaj_abreviation']);
$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__');
}
}
?>