Advertisement
Eddz

Untitled

Sep 4th, 2013
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.19 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Fcm\Form;
  4.  
  5. use Zend\Form\Form;
  6. use Zend\Form\Element;
  7. use Zend\InputFilter\InputFilterProviderInterface;
  8. use Zend\ServiceManager\ServiceManager;
  9.  
  10. class ClientAdd extends Form implements InputFilterProviderInterface
  11. {
  12.  
  13.     protected $repository;
  14.  
  15.     public function __construct($repository)
  16.     {
  17.         $this->repository = $repository;
  18.  
  19.         parent::__construct();
  20.         $this->setName('add-client');
  21.         $this->setAttribute('action', '/clients/add');
  22.         $this->setAttribute('method', 'post');
  23.  
  24.  
  25.         //Fieldset One
  26.         $this->add(array(
  27.             'name' => 'fsOne',
  28.             'type' => 'Zend\Form\Fieldset',
  29.             'options' => array(
  30.                 'legend' => 'Client informations',
  31.             ),
  32.             'elements' => array(
  33.                 // Name
  34.                 array(
  35.                     'spec' => array(
  36.                         'name' => 'name',
  37.                         'type' => 'Zend\Form\Element\Text',
  38.                         'attributes' => array(
  39.                         ),
  40.                         'options' => array(
  41.                             'label' => 'Client name',
  42.                         ),
  43.                     ),
  44.                 ),
  45.                 // Website
  46.                 array(
  47.                     'spec' => array(
  48.                         'name' => 'website',
  49.                         'type' => 'Zend\Form\Element\Text',
  50.                         'attributes' => array(
  51.                         ),
  52.                         'options' => array(
  53.                             'label' => 'Website',
  54.                             'prependText' => 'http://',
  55.                         ),
  56.                     ),
  57.                 ),
  58.                 // Contact
  59.                 array(
  60.                     'spec' => array(
  61.                         'name' => 'contact',
  62.                         'type' => 'Zend\Form\Element\Text',
  63.                         'attributes' => array(
  64.                         ),
  65.                         'options' => array(
  66.                             'label' => 'Contact client',
  67.                         ),
  68.                     ),
  69.                 ),
  70.                 // Email
  71.                 array(
  72.                     'spec' => array(
  73.                         'name' => 'email',
  74.                         'type' => 'Zend\Form\Element\Email',
  75.                         'attributes' => array(
  76.                             'required' => 'required'
  77.                         ),
  78.                         'options' => array(
  79.                             'label' => 'Email',
  80.                         ),
  81.                     ),
  82.                 ),
  83.                 // Phone
  84.                 array(
  85.                     'spec' => array(
  86.                         'name' => 'phone',
  87.                         'type' => 'Zend\Form\Element\Text',
  88.                         'attributes' => array(
  89.                         ),
  90.                         'options' => array(
  91.                             'label' => 'Phone number',
  92.                         ),
  93.                     ),
  94.                 ),
  95.                 // Comment
  96.                 array(
  97.                     'spec' => array(
  98.                         'name' => 'comment',
  99.                         'type' => 'Zend\Form\Element\Textarea',
  100.                         'attributes' => array(
  101.                         ),
  102.                         'options' => array(
  103.                             'label' => 'Comment',
  104.                         ),
  105.                     ),
  106.                 ),
  107.             ),
  108.         ));
  109.  
  110.         //Csrf
  111.         $this->add(new Element\Csrf('csrf'));
  112.  
  113.         //Submit button
  114.         $this->add(array(
  115.             'name' => 'submitBtn',
  116.             'type' => 'Zend\Form\Element\Submit',
  117.             'attributes' => array(
  118.                 'value' => 'Add client',
  119.             ),
  120.             'options' => array(
  121.                 'primary' => true,
  122.             ),
  123.         ));
  124.  
  125.         //Reset button
  126.         $this->add(array(
  127.             'name' => 'resetBtn',
  128.             'attributes' => array(
  129.                 'type' => 'reset',
  130.                 'value' => 'Reset',
  131.             ),
  132.         ));
  133.     }
  134.  
  135.     public function getInputFilterSpecification()
  136.     {
  137. //        die(var_dump($this->repository->checkIfEmailExists("test@test.com"))); // !!! WORKS
  138.         return array(
  139.             'elements' => array(
  140.                 // Name
  141.                 array(
  142.                     'spec' => array(
  143.                         'name' => 'email',
  144.                         'validators' => array(
  145.                             array(
  146.                                 'name' => 'DoctrineModule\Validator\NoObjectExists',
  147.                                 'options' => array(
  148.                                     'object_repository' => $this->repository,
  149.                                     'fields' => 'email',
  150.                                 ),
  151.                                 'messages' => array(
  152.                                     'objectFound' => 'Sorry guy, a user with this email already exists !'
  153.                                 )
  154.                             )
  155.                         )
  156.                     ),
  157.                 ),
  158.             )
  159.         );
  160.     }
  161.  
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement