public function __invoke(Form $form)
 {
     $form->setAttribute('class', self::DEFAULT_FORM_CLASS);
     foreach ($form->getElements() as $element) {
         /*
          * controls how far the form indents into
          * the page using Twitter:Bootstrap CSS
          *
          */
         $defLabelAttributes = array('class' => self::DEFAULT_LABEL_CLASS);
         $element->setLabelAttributes($defLabelAttributes);
         $element->setAttribute('class', self::DEFAULT_INPUT_CLASS);
         /*
          * set the id attribute of all inputs to be equal to their names
          *
          * makes life simple when trying to make the view
          * dynamic
          */
         $element->setAttribute('id', $element->getName());
     }
     /*
      * the submit button is a little different, it uses
      * a button class to proper rendering
      *
      */
     $form->get('submit')->setAttribute('class', self::DEFAULT_SUBMIT_BUTTON_CLASS);
     return $form;
 }
Example #2
0
 public function getHTML()
 {
     $this->checkForGetHTMLZendDependencies();
     $html = null;
     $renderer = new PhpRenderer();
     $formHelperConfig = new \Zend\Form\View\HelperConfig();
     $formHelperConfig->configureServiceManager($renderer->getHelperPluginManager());
     $formRenderer = new \Zend\Form\View\Helper\Form();
     $html .= $formRenderer->openTag($this->form);
     $formRow = new \Zend\Form\View\Helper\FormRow();
     $formRow->setView($renderer);
     foreach ($this->form->getElements() as $key => $element) {
         $html .= '<div id="' . $key . '" class="element">';
         $html .= $formRow->render($element);
         $html .= '</div>' . PHP_EOL;
     }
     $html .= $formRenderer->closeTag();
     return $html;
 }
 protected function getPreparedFormData(Form $form)
 {
     $formData = $form->getData();
     foreach ($form->getElements() as $element) {
         if ($element instanceof File) {
             if ($formData[$element->getName()]['size'] == 0) {
                 unset($formData[$element->getName()]);
             } else {
                 $formData[$element->getName()] = $formData[$element->getName()]['tmp_name'];
             }
         }
     }
     unset($formData['save']);
     return $formData;
 }
Example #4
0
 /**
  * Ajusta os elementos especiais do formulário,
  * como por exemplo os campos de tipo select, que
  * deverão listar todos os registros de uma entidade
  * por padrão.
  * 
  * @param \Zend\Form\Form $form
  */
 public function adjustOfSpecialElements(Form $form)
 {
     foreach ($form->getElements() as $element) {
         if ($element instanceof Select && $this->elementMustBePopulated($element)) {
             // Obtém os registros de listagens padrões, a partir da entidade definida para o campo.
             $results = $this->getListValuesToSelectElement($element);
             $listValues = array($element->getEmptyOption() => self::STR_NENHUM_REGISTRO);
             $element->setEmptyOption(null);
             foreach ($results as $result) {
                 $title = !empty($result['title']) ? $result['title'] : $result['nome'];
                 $listValues[$result['id']] = $title;
             }
             $form->get($element->getAttribute('name'))->setValueOptions($listValues);
         }
     }
 }
Example #5
0
 /**
  * @param \Zend\Form\Form $form
  * @return bool|string
  */
 private function parseFormMessage($form)
 {
     if (is_array($form->getMessages())) {
         $errorMessage = '';
         foreach ($form->getMessages() as $title => $values) {
             $formElement = $form->getElements();
             $errorMessage .= $formElement[$title]->getLabel() . PHP_EOL;
             if (is_array($values)) {
                 foreach ($values as $value) {
                     $errorMessage .= '<li>' . $value . '</li>';
                 }
             } else {
                 $errorMessage .= $values;
             }
         }
         return $errorMessage;
     } elseif (is_string($form->getMessages())) {
         return $form->getMessages();
     } else {
         return false;
     }
 }
Example #6
0
 /**
  * @return array|\Traversable|Element[]
  */
 public function getElements()
 {
     return parent::getElements();
 }
Example #7
0
 /**
  * Resetting the values of the form passed. Unfortunately there is  no other way
  * in ZF2 to achieve this.
  *
  * @param Form $form Zend form to be reset
  *
  * @return void
  */
 protected function resetForm(Form $form)
 {
     $resetTypes = ['text', 'radio', 'email', 'textarea'];
     /**
      * Form element
      *
      * @var Element $element
      */
     foreach ($form->getElements() as $element) {
         if (in_array($element->getAttribute('type'), $resetTypes)) {
             $element->setValue('');
         }
     }
 }