Formulaire: étape 3, Rajout de la vue +traductions
authorSébastien CHAZALLET <s.chazallet@gmail.com>
Thu, 15 Nov 2012 12:27:02 +0000 (13:27 +0100)
committerSébastien CHAZALLET <s.chazallet@gmail.com>
Thu, 15 Nov 2012 12:35:44 +0000 (13:35 +0100)
module/Galerie/language/fr_FR.mo
module/Galerie/language/fr_FR.po
module/Galerie/src/Galerie/Controller/IndexController.php
module/Galerie/view/galerie/index/edit.phtml

index 79e8e23..55d9d8e 100644 (file)
Binary files a/module/Galerie/language/fr_FR.mo and b/module/Galerie/language/fr_FR.mo differ
index 254681f..f789788 100644 (file)
@@ -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 <s.chazallet@gmail.com>\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"
index 15455a3..78aa858 100644 (file)
@@ -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,
         ));
     } 
 
index 0a1c84a..4e5f7d2 100644 (file)
@@ -1,3 +1,14 @@
-<p>vue <em>back-office</em> d&rsquo;une <strong>galerie</strong>&nbsp;: edit</p>
-<form action="/galeries/editer/<?php echo $id; ?>" method="GET"><input type="submit" value="GET" /></form>
-<form action="/galeries/editer/<?php echo $id; ?>" method="POST"><input type="submit" value="POST" /></form>
+<?php if ($is_new): ?>
+<h1><?php echo $this->translate('Galerie_add_title', 'galerie'); ?></h1>
+<?php else: ?>
+<h1><?php echo $this->translate('Galerie_edit_title', 'galerie'); ?></h1>
+<?php endif; ?>
+
+<?php
+echo $this->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);
+?>