Advertisement
RalfEggert

UserFilter

Aug 27th, 2012
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.08 KB | None | 0 0
  1. <?php
  2. namespace User\Entity;
  3.  
  4. use Zend\InputFilter\Factory as InputFactory;
  5. use Zend\InputFilter\InputFilter;
  6. use Zend\InputFilter\InputFilterInterface;
  7. use Zend\Db\Adapter\Adapter;
  8. use Zend\Validator\Db\AbstractDb;
  9.  
  10. class UserFilter extends InputFilter
  11. {
  12.     /**
  13.      * @var Adapter
  14.      */
  15.     protected $adapter = null;
  16.    
  17.     /**
  18.      * Constructor
  19.      *
  20.      * @param Adapter $adapter database adapter
  21.      */
  22.     public function __construct(Adapter $adapter)
  23.     {
  24.         // set database adapter
  25.         $this->adapter = $adapter;
  26.        
  27.         // add elements
  28.         $this->add($this->getFactory()->createInput(array(
  29.             'name'     => 'id',
  30.             'required' => true,
  31.             'filters'  => array(
  32.                 array('name' => 'Int'),
  33.             ),
  34.         )));
  35.  
  36.         $this->add($this->getFactory()->createInput(array(
  37.             'name'     => 'cdate',
  38.             'required' => false,
  39.             'filters'  => array(),
  40.             'validators' => array(
  41.                 array(
  42.                     'name'    => 'Date',
  43.                     'options' => array(),
  44.                 ),
  45.             ),
  46.         )));
  47.  
  48.         $this->add($this->getFactory()->createInput(array(
  49.             'name'     => 'udate',
  50.             'required' => false,
  51.             'filters'  => array(),
  52.             'validators' => array(
  53.                 array(
  54.                     'name'    => 'Date',
  55.                     'options' => array(),
  56.                 ),
  57.             ),
  58.         )));
  59.  
  60.         $this->add($this->getFactory()->createInput(array(
  61.             'name'     => 'adate',
  62.             'required' => false,
  63.             'filters'  => array(),
  64.             'validators' => array(
  65.                 array(
  66.                     'name'    => 'Date',
  67.                     'options' => array(),
  68.                 ),
  69.             ),
  70.         )));
  71.        
  72.         $this->add($this->getFactory()->createInput(array(
  73.             'name'     => 'status',
  74.             'required' => true,
  75.             'filters'  => array(),
  76.             'validators' => array(
  77.                 array(
  78.                     'name'    => 'InArray',
  79.                     'options' => array(
  80.                         'haystack' => array('new', 'approved', 'blocked'),
  81.                     ),
  82.                 ),
  83.             ),
  84.         )));
  85.  
  86.         $this->add($this->getFactory()->createInput(array(
  87.             'name'     => 'group',
  88.             'required' => true,
  89.             'filters'  => array(),
  90.             'validators' => array(
  91.                 array(
  92.                     'name'    => 'InArray',
  93.                     'options' => array(
  94.                         'haystack' => array('guest', 'tourist', 'agency', 'admin'),
  95.                     ),
  96.                 ),
  97.             ),
  98.         )));
  99.  
  100.         $this->add($this->getFactory()->createInput(array(
  101.             'name'     => 'nickname',
  102.             'required' => true,
  103.             'filters'  => array(
  104.                 array('name' => 'StripTags'),
  105.                 array('name' => 'StringTrim'),
  106.             ),
  107.             'validators' => array(
  108.                 'stringLength' => array(
  109.                     'name'    => 'StringLength',
  110.                     'options' => array(
  111.                         'encoding' => 'UTF-8',
  112.                         'min'      => 1,
  113.                         'max'      => 32,
  114.                     ),
  115.                 ),
  116.                 'dbNoRecordExists' => array(
  117.                     'name'    => 'Db\NoRecordExists',
  118.                     'options' => array(
  119.                         'table'     => 'users',
  120.                         'field'     => 'nickname',
  121.                         'adapter'   => $this->adapter,
  122.                     ),
  123.                 ),
  124.             ),
  125.         )));
  126.  
  127.         $this->add($this->getFactory()->createInput(array(
  128.             'name'     => 'password',
  129.             'required' => true,
  130.             'filters'  => array(
  131.                 array('name' => 'StripTags'),
  132.                 array('name' => 'StringTrim'),
  133.             ),
  134.             'validators' => array(
  135.                 array(
  136.                     'name'    => 'StringLength',
  137.                     'options' => array(
  138.                         'encoding' => 'UTF-8',
  139.                         'min'      => 1,
  140.                         'max'      => 128,
  141.                     ),
  142.                 ),
  143.             ),
  144.         )));
  145.  
  146.         $this->add($this->getFactory()->createInput(array(
  147.             'name'     => 'email',
  148.             'required' => true,
  149.             'filters'  => array(
  150.                 array('name' => 'StripTags'),
  151.                 array('name' => 'StringTrim'),
  152.             ),
  153.             'validators' => array(
  154.                 array(
  155.                     'name'    => 'EmailAddress',
  156.                     'options' => array(
  157.                     ),
  158.                 ),
  159.                 array(
  160.                     'name'    => 'Db\NoRecordExists',
  161.                     'options' => array(
  162.                         'table'     => 'users',
  163.                         'field'     => 'email',
  164.                         'adapter'   => $this->adapter,
  165.                     ),
  166.                 ),
  167.             ),
  168.         )));
  169.  
  170.         $this->add($this->getFactory()->createInput(array(
  171.             'name'     => 'activation',
  172.             'required' => false,
  173.             'filters'  => array(
  174.                 array('name' => 'StripTags'),
  175.                 array('name' => 'StringTrim'),
  176.             ),
  177.             'validators' => array(
  178.                 array(
  179.                     'name'    => 'StringLength',
  180.                     'options' => array(
  181.                         'encoding' => 'UTF-8',
  182.                         'min'      => 32,
  183.                         'max'      => 32,
  184.                     ),
  185.                 ),
  186.             ),
  187.         )));
  188.  
  189.         $this->add($this->getFactory()->createInput(array(
  190.             'name'     => 'firstname',
  191.             'required' => false,
  192.             'filters'  => array(
  193.                 array('name' => 'StripTags'),
  194.                 array('name' => 'StringTrim'),
  195.             ),
  196.             'validators' => array(
  197.                 array(
  198.                     'name'    => 'StringLength',
  199.                     'options' => array(
  200.                         'encoding' => 'UTF-8',
  201.                         'min'      => 1,
  202.                         'max'      => 64,
  203.                     ),
  204.                 ),
  205.             ),
  206.         )));
  207.  
  208.         $this->add($this->getFactory()->createInput(array(
  209.             'name'     => 'lastname',
  210.             'required' => false,
  211.             'filters'  => array(
  212.                 array('name' => 'StripTags'),
  213.                 array('name' => 'StringTrim'),
  214.             ),
  215.             'validators' => array(
  216.                 array(
  217.                     'name'    => 'StringLength',
  218.                     'options' => array(
  219.                         'encoding' => 'UTF-8',
  220.                         'min'      => 1,
  221.                         'max'      => 64,
  222.                     ),
  223.                 ),
  224.             ),
  225.         )));
  226.     }
  227. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement