Exemplo n.º 1
0
 protected function hasFormErrors(Form $form)
 {
     foreach ($form->getMessages() as $message) {
         if (count($message) > 0) {
             return true;
         }
     }
     return false;
 }
Exemplo n.º 2
0
 public function testSettingValidateAllFlagAfterPartialValidationForcesFullValidation()
 {
     $this->populateForm();
     $this->form->setValidationGroup('foo');
     $validSet = array('foo' => 'abcde');
     $this->form->setData($validSet);
     $this->form->setValidationGroup(Form::VALIDATE_ALL);
     $this->assertFalse($this->form->isValid());
     $messages = $this->form->getMessages();
     $this->assertArrayHasKey('foobar', $messages, var_export($messages, 1));
 }
Exemplo n.º 3
0
 /**
  * Pega as mensagens do formulario e as dispoe
  * em forma de lista ul,li
  * @param \Zend\Form\Form $form
  * @return string HTML
  */
 public function formErros($form)
 {
     $msg = "";
     $arrayMessage = $form->getMessages();
     foreach ($arrayMessage as $elemName => $messages) {
         foreach ($messages as $message) {
             $label = "";
             $elemName = $form->get($elemName);
             if ($elemName != null) {
                 $label = $elemName->getLabel();
             }
             $msg .= "<ul><li>" . $label . " " . $message . "</li></ul>";
         }
     }
     return $msg;
 }
 /**
  * Process form
  * 
  * @return Response|null
  */
 public function processForm()
 {
     $request = $this->getRequest();
     $this->form->setData($request->getPost());
     $fm = $this->flashMessenger();
     if (!$this->form->isValid()) {
         $fm->addErrorMessage('The form was not valid. ' . var_export($this->form->getMessages(), true), 'error');
         return;
     }
     try {
         $object = $this->saveObject();
     } catch (\Exception $exception) {
     }
     if (isset($exception)) {
         $fm->addErrorMessage('The object was not saved. ' . $exception->getMessage());
         return;
     } else {
         $fm->addSuccessMessage('The object has been successfully saved!');
     }
     return $this->redirectTo($object);
 }
Exemplo n.º 5
0
 public function formAction()
 {
     // Build a name element.
     $name = new Element('name');
     $name->setLabel('Your name');
     $name->setAttributes(array('type' => 'text'));
     // Build a submit button element.
     $send = new Element('send');
     $send->setLabel('Send');
     $send->setAttributes(array('type' => 'submit', 'value' => 'Send'));
     // Build a checkbox element.
     $check = new Checkbox('check');
     $check->setLabel('Checkbox example');
     // Build a multi-checkbox element.
     $multicheck = new MultiCheckbox('multicheck');
     $multicheck->setLabel('Multi checkbox example');
     $multicheck->setOptions(array('value_options' => array('One' => 'one', 'Two' => 'two')));
     // Assemble the form.
     $form = new Form('contact');
     $form->add($name);
     $form->add($check);
     $form->add($multicheck);
     $form->add($send);
     // Get the request if any.
     $request = $this->getRequest();
     $data = $request->getPost();
     $form->setData($data);
     // Validate the form
     if ($form->isValid()) {
         $validatedData = $form->getData();
         $success = 'Form submit was successful';
     } else {
         $success = 'Form submit failed';
         $messages = $form->getMessages();
     }
     // Set the method attribute for the form
     $form->setAttribute('method', 'post');
     return new ViewModel(array('form' => $form, 'success' => $success, 'messages' => $messages, 'data' => $data));
 }
Exemplo n.º 6
0
 public function saveAction(Params $params, Request $request, Response $response, Form $form, Finder $finderService, Update $updateService, Form $form, View $view)
 {
     if ($request->getMethod() !== Request::METHOD_PUT) {
         return $view;
     }
     $id = $params('id');
     $entity = $finderService->find(['T4webTranslate' => ['Words' => ['Id' => (int) $id]]]);
     if (!$entity) {
         $response->setStatusCode(Response::STATUS_CODE_404);
         $view->setErrors(['message' => 'bad params']);
         return $view;
     }
     $data = Json::decode($request->getContent(), Json::TYPE_ARRAY);
     $form->setData($data);
     if (!$form->isValid()) {
         $response->setStatusCode(Response::STATUS_CODE_404);
         $view->setErrors($form->getMessages());
         return $view;
     }
     $entity->populate($data);
     $result = $updateService->update($id, $entity->extract());
     $view->setVariables($result->extract());
     return $view;
 }
Exemplo n.º 7
0
 /**
  * Retorna classe (css) para elementos que tem mensagem (erro)
  * 
  * @param string $element
  * @param string $ifYes
  * @return string
  */
 public function hasMessage($element, $ifYes = 'alert-danger')
 {
     return (bool) parent::getMessages($element) ? $ifYes : '';
 }
Exemplo n.º 8
0
 public function testOnlyElementsWithErrorsInMessages()
 {
     $fieldset = new TestAsset\FieldsetWithInputFilter('set');
     $fieldset->add(new Element('foo'));
     $fieldset->add(new Element('bar'));
     $form = new Form();
     $form->add($fieldset);
     $form->setInputFilter(new InputFilter());
     $form->setData(array());
     $form->isValid();
     $messages = $form->getMessages();
     $this->assertArrayHasKey('foo', $messages['set']);
     $this->assertArrayNotHasKey('bar', $messages['set']);
 }
Exemplo n.º 9
0
 /**
  * @group ZF-11831
  */
 public function testElementsOfSubFormReceiveCorrectDefaultTranslator()
 {
     $isEmptyKey = \Zend\Validator\NotEmpty::IS_EMPTY;
     // Global default translator
     $trDefault = new Translator(array('adapter' => 'arrayAdapter', 'content' => array($isEmptyKey => 'Default'), 'locale' => 'en'));
     Registry::set('Zend_Translate', $trDefault);
     // Translator to use for elements
     $trElement = new Translator(array('adapter' => 'arrayAdapter', 'content' => array($isEmptyKey => 'Element'), 'locale' => 'en'));
     \Zend\Validator\AbstractValidator::setDefaultTranslator($trElement);
     // Change the form's translator
     $form = new Form();
     $form->addElement(new \Zend\Form\Element\Text('foo', array('required' => true, 'validators' => array('NotEmpty'))));
     // Create a subform with it's own validator
     $sf1 = new SubForm();
     $sf1->addElement(new \Zend\Form\Element\Text('foosub', array('required' => true, 'validators' => array('NotEmpty'))));
     $form->addSubForm($sf1, 'Test1');
     $form->isValid(array());
     $messages = $form->getMessages();
     $this->assertEquals('Element', @$messages['foo'][$isEmptyKey], 'Form element received wrong validator');
     $this->assertEquals('Element', @$messages['Test1']['foosub'][$isEmptyKey], 'SubForm element received wrong validator');
 }
Exemplo n.º 10
0
 public function testCanGetMessagesOfNestedFormsWithMultiLevelElementsBelongingToArrays()
 {
     $form = new Form();
     $form->setElementsBelongTo('foo[bar]');
     $form->addElement('text', 'firstName')->getElement('firstName')->setRequired(false);
     $form->addElement('text', 'lastName')->getElement('lastName')->setRequired(true);
     $subForm = new \Zend\Form\SubForm();
     $subForm->setElementsBelongTo('baz');
     $subForm->addElement('text', 'email')->getElement('email')->setRequired(true)->addValidator('NotEmpty');
     $subSubForm = new \Zend\Form\SubForm();
     $subSubForm->setElementsBelongTo('bat[quux]');
     $subSubForm->addElement('checkbox', 'home')->getElement('home')->setRequired(true)->addValidator('InArray', false, array(array('1')));
     $subForm->addSubForm($subSubForm, 'subSub');
     $form->addSubForm($subForm, 'sub')->addElement('submit', 'save', array('value' => 'submit'));
     $data = array('foo' => array('bar' => array('lastName' => 'Cow')));
     $form->sub->subSub->home->addValidator('StringLength', false, array(4, 6));
     $data['foo']['bar']['baz'] = array('bat' => array('quux' => array('home' => 'ab')));
     $form->isValidPartial($data);
     $messages = $form->getMessages();
     $this->assertFalse(empty($messages));
     $this->assertTrue(isset($messages['foo']['bar']['baz']['bat']['quux']['home']), var_export($messages, 1));
     $this->assertTrue(isset($messages['foo']['bar']['baz']['bat']['quux']['home']['notInArray']), var_export($messages, 1));
 }
 /**
  * Hydrate an array of data onto an entity using a form
  *
  * @param AbstractEntity $entity
  * @param array $values
  * @param Form $form
  * @return AbstractEntity
  */
 private function hydrate(AbstractEntity $entity, array $values, Form $form)
 {
     $form->setObject($entity);
     if ($form->getBaseFieldset()) {
         $form->getBaseFieldset()->setObject($entity);
     }
     $form->setData($values);
     if (!$form->isValid()) {
         return $this->setErrorMessages($form->getMessages());
     }
     $result = $form->getData();
     if (!$result instanceof AbstractEntity) {
         throw new RuntimeException('Unable to retrieve entity from Form');
     }
     return $result;
 }
Exemplo n.º 12
0
 /**
  * Check if the form is valid and return a response object if invalid
  * @param \Zend\Form\Form $form
  * @return bool|\Zend\Stdlib\ResponseInterface
  */
 private function handleErrors(\Zend\Form\Form $form)
 {
     $request = $this->getRequest();
     $form->setData($request->getPost()->toArray());
     if (!$form->isValid()) {
         return $this->jsonResponse(array('success' => false, 'errors' => $form->getMessages()));
     }
     return false;
 }
Exemplo n.º 13
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;
     }
 }
Exemplo n.º 14
0
 public function testValidateData()
 {
     $myFieldset = new Fieldset();
     $myFieldset->add(array('name' => 'email', 'type' => 'Email'));
     $myForm = new Form();
     $myForm->add(array('name' => 'collection', 'type' => 'Collection', 'options' => array('target_element' => $myFieldset)));
     $data = array('collection' => array(array('email' => '*****@*****.**'), array('email' => '*****@*****.**'), array('email' => '*****@*****.**')));
     $myForm->setData($data);
     $this->assertTrue($myForm->isValid());
     $this->assertEmpty($myForm->getMessages());
 }
Exemplo n.º 15
0
 /**
  * @param $tag
  * @param  Form   $form
  * @param  Params $params
  * @return bool
  */
 public function updateIteration($tag, Form $form, Params $params)
 {
     $valid = true;
     $this->getEventManager()->trigger(self::EVENT_FORM_DATA . $tag, $this, array('form' => $form, 'data' => $params));
     if (!$this->call($this->getFormValidators(), $tag, array($params, $form), function (Params $params, Form $form) {
         return $form->isValid();
     })) {
         $valid = false;
         $this->errorMessages[$tag] = $this->normalizeMessages($form->getMessages());
     }
     return $valid;
 }
Exemplo n.º 16
0
 /**
  *
  * @param Form $form
  * @param string $type
  */
 private function queueFormValidationMessages(Form $form, $type = 'error')
 {
     /*
     		/*
     * add authentication service messages to flash messenger plugin
     */
     foreach ($form->getMessages() as $message) {
         $this->queueMessage($message, $type);
     }
 }