Esempio n. 1
0
 /** {@inheritdoc} */
 public function init()
 {
     parent::init();
     $config = $this->getOption('config');
     $mergeCustomFields = new Element\Checkbox('mergeCustomFields');
     $mergeCustomFields->setLabel('Merge user supplied information');
     $mergeCustomFields->setChecked($config->defaultMergeCustomFields);
     $this->add($mergeCustomFields);
     $mergeGroups = new Element\Checkbox('mergeGroups');
     $mergeGroups->setLabel('Merge manual group assignments');
     $mergeGroups->setChecked($config->defaultMergeGroups);
     $this->add($mergeGroups);
     $mergePackages = new Element\Checkbox('mergePackages');
     $mergePackages->setLabel('Merge missing package assignments');
     $mergePackages->setChecked($config->defaultMergePackages);
     $this->add($mergePackages);
     $submit = new \Library\Form\Element\Submit('submit');
     $submit->setLabel('Merge selected clients');
     $this->add($submit);
     // Checkboxes for "clients[]" are generated manually, without
     // \Zend\Form\Element. Define an input filter to have them processed.
     $arrayCount = new \Zend\Validator\Callback();
     $arrayCount->setCallback(array($this, 'validateArrayCount'))->setMessage('At least 2 different clients have to be selected', \Zend\Validator\Callback::INVALID_VALUE);
     $inputFilter = new \Zend\InputFilter\InputFilter();
     $inputFilter->add(array('name' => 'clients', 'required' => true, 'continue_if_empty' => true, 'filters' => array(array($this, 'clientsFilter')), 'validators' => array($arrayCount, new \Zend\Validator\Explode(array('validator' => new \Zend\Validator\Digits()))), 'error_message' => $arrayCount->getDefaultTranslator()->translate($arrayCount->getMessageTemplates()[\Zend\Validator\Callback::INVALID_VALUE])));
     $this->setInputFilter($inputFilter);
 }