Formulaire : création de manière générique
authorSébastien CHAZALLET <s.chazallet@gmail.com>
Fri, 16 Nov 2012 12:32:06 +0000 (13:32 +0100)
committerSébastien CHAZALLET <s.chazallet@gmail.com>
Fri, 16 Nov 2012 12:32:06 +0000 (13:32 +0100)
data/jeu_essai.db
module/Galerie/src/Galerie/Form/GalerieForm.php
module/Galerie/src/Galerie/Form/galerie.form.config.php [new file with mode: 0644]
module/Galerie/src/Galerie/Model/Galerie.php
module/Galerie/src/Galerie/Model/galerie.defaultinputfilter.config.php [new file with mode: 0644]

index 90fe975..eb497b3 100644 (file)
Binary files a/data/jeu_essai.db and b/data/jeu_essai.db differ
index 4e3749b..a5fbcea 100644 (file)
 
 namespace Galerie\Form;
 
-use Zend\Form\Form;
+use Custom\Form\AbstractForm;
 
-use Zend\I18n\Translator\TranslatorAwareInterface;
-use Zend\I18n\Translator\Translator;
 
-
-class GalerieForm extends Form implements TranslatorAwareInterface
+class GalerieForm extends AbstractForm
 {
 
-    private $_translator;
-    private $_textDomain = 'galerie';
-    private $_translator_enabled = true; 
-
-
     public function initialize()
     {
-        $this->setAttribute('method', 'post');
-        $this->add(array(
-            'name' => 'id',
-            'attributes' => array(
-                'type' => 'hidden',
-            ),
-        ));
-        $this->add(array(
-            'name' => 'name',
-            'attributes' => array(
-                'type' => 'text',
-            ),
-            'options' => array(
-                'label' => $this->translate('Galerie_form_label_name'),
-            )
-        ));
-        $this->add(array(
-            'name' => 'description',
-            'attributes' => array(
-                'type' => 'text',
-            ),
-            'options' => array(
-                'label' => $this->translate('Galerie_form_label_description'),
-            )
-        ));
-        $this->add(array(
-            'name' => 'submit',
-            'attributes' => array(
-                'type' => 'submit',
+        $elements = include __DIR__ . '/galerie.form.config.php';
+        $this->addElements($elements);
+        /* Méthode alternative
+        $this->setMethod('post');
+        $this->addElement('id', 'hidden');
+        $this->addElement(
+            'name',
+            'text',
+            $this->translate('Galerie_form_label_name')
+        );
+        $this->addElement(
+            'description',
+            'text',
+            $this->translate('Galerie_form_label_description')
+        );
+        $this->addElement(
+            'submit',
+            'submit',
+            null,
+            array(
                 'value' => 'Valider',
                 'id' => 'submit_galerie_form',
-            ),
-        ));
-    }
-
-
-
-
-    public function translate($k)
-    {
-        if ($this->_translator && $this->_translator_enabled) {
-            return $this->_translator->translate($k, $this->_textDomain);
-        }
-        return $k . '(Non traduit)';
-    }
-
-
-    public function setTranslator(Translator $translator = null, $textDomain = null)
-    {
-        $this->_translator = $translator;
-       $this->_textDomain = $textDomain;
-    }
-
-    public function getTranslator()
-    {
-        return $this->_translator;
-    }
-
-    public function hasTranslator()
-    {
-        return $this->_translator !== null;
-    }
-
-    public function setTranslatorEnabled($enabled = true)
-    {
-        $this->_translator_enabled = $enabed;
-    }
-
-    public function isTranslatorEnabled()
-    {
-        return $this->_translator_enabled;
-    }
-
-    public function setTranslatorTextDomain($textDomain = 'default')
-    {
-       $this->_textDomain = $textDomain;
-    }
-
-    public function getTranslatorTextDomain()
-    {
-        return $this->_textDomain;
+            )
+        );*/
     }
 
 }
diff --git a/module/Galerie/src/Galerie/Form/galerie.form.config.php b/module/Galerie/src/Galerie/Form/galerie.form.config.php
new file mode 100644 (file)
index 0000000..bb2c8c7
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+return array(
+    array(
+        'name' => 'id',
+        'attributes' => array(
+            'type' => 'hidden',
+        ),
+    ),
+    array(
+        'name' => 'name',
+        'attributes' => array(
+            'type' => 'text',
+        ),
+        'options' => array(
+            'label' => $this->translate('Galerie_form_label_name'),
+        ),
+    ),
+    array(
+        'name' => 'description',
+        'attributes' => array(
+            'type' => 'text',
+        ),
+        'options' => array(
+            'label' => $this->translate('Galerie_form_label_description'),
+        ),
+    ),
+    array(
+        'name' => 'submit',
+        'attributes' => array(
+            'type' => 'submit',
+            'value' => 'Valider',
+            'id' => 'submit_galerie_form',
+        ),
+    ),
+);
index 6b46e20..acb3e7b 100644 (file)
@@ -2,14 +2,9 @@
 
 namespace Galerie\Model;
 
-use Zend\InputFilter\Factory as InputFactory;
-use Zend\InputFilter\InputFilter;
-use Zend\InputFilter\InputFilterInterface;
-use Zend\InputFilter\InputFilterAwareInterface;
-
 use Custom\Model\Entity;
 
-class Galerie extends Entity implements InputFilterAwareInterface
+class Galerie extends Entity
 {
     public $id;
     public $id_user;
@@ -18,8 +13,6 @@ class Galerie extends Entity implements InputFilterAwareInterface
     public $created;
     public $updated;
 
-    protected $inputFilter;
-
 
     protected $columns = array(
         'id',
@@ -40,63 +33,10 @@ class Galerie extends Entity implements InputFilterAwareInterface
         'id',
     );
 
-    public function getArrayCopy()
-    {
-        return $this->toArray();
-    }
-
-    public function setInputFilter(InputFilterInterface $inputfilter)
-    {
-        throw new \Exception("This entity does not allow to set Input Filter");
-    }
 
-    public function getInputFilter()
+    public function getDefaultInputFilterArrays()
     {
-        if (!$this->inputFilter) {
-            $inputFilter = new InputFilter;
-            $factory = new InputFactory;
-
-            $inputFilter->add($factory->createInput(array(
-                'name' => 'id',
-                'required' => true,
-                'filters' => array(
-                    array('name' => 'Int'),
-                ),
-            )));
-
-            $inputFilter->add($factory->createInput(array(
-                'name' => 'name',
-                'required' => true,
-                'filters' => array(
-                    array('name' => 'StripTags'),
-                    array('name' => 'StringTrim'),
-                ),
-                'validators' => array(
-                    array(
-                        'name' => 'StringLength',
-                        'options' => array(
-                            'encoding' => 'UTF-8',
-                            'min' => 1,
-                            'max' => 32,
-                        ),
-                    ),
-                ),
-            )));
-
-            $inputFilter->add($factory->createInput(array(
-                'name' => 'description',
-                'required' => true,
-                'filters' => array(
-                    array('name' => 'StripTags'),
-                    array('name' => 'StringTrim'),
-                ),
-            )));
-
-            $this->inputFilter = $inputFilter;
-        }
-
-        return $this->inputFilter;
-
+        return include __DIR__ . '/galerie.defaultinputfilter.config.php';
     }
 
 }
diff --git a/module/Galerie/src/Galerie/Model/galerie.defaultinputfilter.config.php b/module/Galerie/src/Galerie/Model/galerie.defaultinputfilter.config.php
new file mode 100644 (file)
index 0000000..923a577
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+return array(
+            array(
+                'name' => 'id',
+                'required' => true,
+                'filters' => array(
+                    array('name' => 'Int'),
+                ),
+            ),
+            array(
+                'name' => 'name',
+                'required' => true,
+                'filters' => array(
+                    array('name' => 'StripTags'),
+                    array('name' => 'StringTrim'),
+                ),
+                'validators' => array(
+                    array(
+                        'name' => 'StringLength',
+                        'options' => array(
+                            'encoding' => 'UTF-8',
+                            'min' => 1,
+                            'max' => 32,
+                        ),
+                    ),
+                ),
+            ),
+            array(
+                'name' => 'description',
+                'required' => true,
+                'filters' => array(
+                    array('name' => 'StripTags'),
+                    array('name' => 'StringTrim'),
+                ),
+            )
+        );