From: Sébastien CHAZALLET Date: Thu, 15 Nov 2012 12:27:02 +0000 (+0100) Subject: Formulaire: étape 3, Rajout de la vue +traductions X-Git-Url: http://git.inspyration.org/?p=zf2.biz%2Fgalerie.git;a=commitdiff_plain;h=34c823d7546c4d016383e848e8971e3491479ddb Formulaire: étape 3, Rajout de la vue +traductions --- diff --git a/module/Galerie/language/fr_FR.mo b/module/Galerie/language/fr_FR.mo index 79e8e23..55d9d8e 100644 Binary files a/module/Galerie/language/fr_FR.mo and b/module/Galerie/language/fr_FR.mo differ diff --git a/module/Galerie/language/fr_FR.po b/module/Galerie/language/fr_FR.po index 254681f..f789788 100644 --- a/module/Galerie/language/fr_FR.po +++ b/module/Galerie/language/fr_FR.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Projet galerie, Module galerie\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-07 23:56+0100\n" -"PO-Revision-Date: 2012-11-07 23:56+0100\n" +"POT-Creation-Date: 2012-11-15 11:19+0100\n" +"PO-Revision-Date: 2012-11-15 11:19+0100\n" "Last-Translator: Sébastien CHAZALLET \n" "Language-Team: \n" "Language: \n" @@ -55,5 +55,13 @@ msgstr "Éditer" msgid "Galerie_index_table_lien_del" msgstr "Supprimer" +#: /var/git/zf2biz/galerie/module/Galerie/view/galerie/index/edit.phtml:2 +msgid "Galerie_add_title" +msgstr "Ajouter une galerie" + +#: /var/git/zf2biz/galerie/module/Galerie/view/galerie/index/edit.phtml:4 +msgid "Galerie_edit_title" +msgstr "Modifier une galerie" + #~ msgid "index" #~ msgstr "Page d'accueil galerie/back-office" diff --git a/module/Galerie/src/Galerie/Controller/IndexController.php b/module/Galerie/src/Galerie/Controller/IndexController.php index 15455a3..78aa858 100644 --- a/module/Galerie/src/Galerie/Controller/IndexController.php +++ b/module/Galerie/src/Galerie/Controller/IndexController.php @@ -5,6 +5,9 @@ namespace Galerie\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; +use Galerie\Model\Galerie; +use Galerie\Form\GalerieForm; + class IndexController extends AbstractActionController { @@ -39,27 +42,71 @@ class IndexController extends AbstractActionController } public function editAction() - { + { + // Création du formulaire + $form = new GalerieForm; + // Récupération de l'objet de travail $id = $this->params()->fromRoute('id', null); - $galerie = $this->_getGalerieTable()->any($id); + if (!$id) { + $galerie = null; + } else { + $galerie = $this->_getGalerieTable()->any(array('id' => $id)); + } + + // Sommes-nous en ajout ou en édition ? + if (!$galerie) { + // Nous sommes en ajout + $form->get('submit')->setValue('Ajouter'); + // Il faut créer un nouveau objet Galerie + $galerie = new Galerie; + // Garder cette information pour la vue + $is_new = true; + } else { + // Nous sommes en modification + $form->get('submit')->setValue('Modifier'); + // Il faut préremplir le formulaire avec les données actuelles + $form->bind($galerie); + // Garder cette information pour la vue + $is_new = false; + } // Récupération de l'objet requête $request = $this->getRequest(); if ($request->isPost()) { - // Validation des données + // Mise en place pour la validation du formulaire + $form->setInputFilter($galerie->getInputFilter()); + $form->setData($request->getPost()); - if (true) {//TODO: Si les données sont valides + // Validation des données + if ($form->isValid()) { // Sauvegarde des données - // $this->_getGalerieTable()->save(?TODO?); + $galerie = $form->getData(); + if ($is_new) { + // Si l'objet n'est pas nouveau, les autres paramètres restent inchangés + // Si l'objet est nouveau, il faut renseigner l'id de l'utilisateur courant + $galerie->id_user = 1; //TODO: Mettre ici le user connecté + } + $this->_getGalerieTable()->save($galerie); // Redirection return $this->redirect()->toRoute('galerie'); } } + + // On prépare l'affichage du formulaire + if ($is_new) { + $form->setAttribute('action', $this->url()->fromRoute('galerie/add')); + } else { + $form->setAttribute('action', $this->url()->fromRoute('galerie/edit', array('id' => $id))); + } + $form->prepare(); + + // On passe la main à la vue return new ViewModel(array( 'id' => $id, - 'galerie' => $galerie, + 'form' => $form, + 'is_new' => $is_new, )); } diff --git a/module/Galerie/view/galerie/index/edit.phtml b/module/Galerie/view/galerie/index/edit.phtml index 0a1c84a..4e5f7d2 100644 --- a/module/Galerie/view/galerie/index/edit.phtml +++ b/module/Galerie/view/galerie/index/edit.phtml @@ -1,3 +1,14 @@ -

vue back-office d’une galerie : edit

-
-
+ +

translate('Galerie_add_title', 'galerie'); ?>

+ +

translate('Galerie_edit_title', 'galerie'); ?>

+ + +form()->openTag($form); +echo $this->formHidden($form->get('id')); +echo $this->formRow($form->get('name')); +echo $this->formRow($form->get('description')); +echo $this->formSubmit($form->get('submit')); +echo $this->form()->closeTag($form); +?>