/**
  * Setup per-element properties like labels, and classes
  */
 protected function setupSingleElement(Zend_Form_Element $elm)
 {
     // determine if this element has an error. (Will be used below)
     $elmHasError = count($elm->getMessages()) > 0;
     // set element values from the language pack
     $elm->setLabel($this->lang->get('form.label.' . $elm->getName()));
     // display info about required length if validator exists
     if ($elm->getValidator('StringLength')) {
         $elm->setDescription(sprintf($this->lang->get('form.description.' . $elm->getName()), $elm->getValidator('StringLength')->getMin(), $elm->getValidator('StringLength')->getMax()));
     } else {
         $elm->setDescription($this->lang->get('form.description.' . $elm->getName()));
     }
     // Duplicating type attr to classname in case we need to support IE6
     // and want to be able to directly target the element without using
     // input[type=text]
     $zendType = $elm->getType();
     $className = strtolower(substr($zendType, strrpos($zendType, '_') + 1));
     $elm->setAttrib('class', $className);
     // wrap this stuff up in a html div with class 'element'
     $elm->addDecorator('HtmlTag', array('tag' => 'div', 'class' => 'element'));
     // determine if element has error and use that to determine prefix char.
     // 1. There seems to be no way to add html to the reqPrefix
     // 2. There seems to be no way to add a custom classname to the div tag
     if ($elm->getName() != 'submit') {
         $reqChar = $elmHasError ? '! ' : '* ';
         $elm->addDecorator('Label', array('placement' => 'prepend', 'tag' => 'div', 'requiredPrefix' => $reqChar));
     }
     // use custom error decorator that attempts to replace default error
     // messages by the ones supplied by My_LanguagaPack
     $errorDecorator = new My_Decorator_Errors();
     $errorDecorator->setLanguagePack($this->lang);
     $elm->addDecorator($errorDecorator);
     // wrap everything so far in a li tag, give it class error if elm has error
     // ATT: using array to create alias for allready used HtmlTag decorator
     $liClass = $elmHasError ? 'error' : '';
     $elm->addDecorator(array('outerLi' => 'HtmlTag'), array('tag' => 'li', 'class' => $liClass));
 }
Пример #2
0
 /**
  * @see ZF-2862
  */
 public function testBreakChainOnFailureFlagsForExistingValidatorsRemainSetWhenNotEmptyValidatorAutoInserted()
 {
     $this->_checkZf2794();
     $username = new Zend_Form_Element('username');
     $username->addValidator('stringLength', true, array(5, 20))->addValidator('regex', true, array('/^[a-zA-Z0-9_]*$/'))->addFilter('StringToLower')->setRequired(true);
     $form = new Zend_Form(array('elements' => array($username)));
     $form->isValid(array('username' => '#'));
     $validator = $username->getValidator('stringLength');
     $this->assertTrue($validator->zfBreakChainOnFailure);
     $validator = $username->getValidator('regex');
     $this->assertTrue($validator->zfBreakChainOnFailure);
 }
Пример #3
0
 /**
  * @see ZF-6822
  */
 public function testValidatorByUsingStringNotation()
 {
     $this->_checkZf2794();
     $username = new Zend_Form_Element('username');
     $username->addValidator('stringLength', true, array(5, 20))->addValidator('regex', true, '/^[a-zA-Z0-9_]*$/')->addFilter('StringToLower')->setRequired(true);
     $form = new Zend_Form(array('elements' => array($username)));
     $form->isValid(array('username' => '#'));
     $validator = $username->getValidator('stringLength');
     $this->assertTrue($validator->zfBreakChainOnFailure);
     $validator = $username->getValidator('regex');
     $this->assertTrue($validator->zfBreakChainOnFailure);
 }
Пример #4
0
 /**
  * Fügt angepasste Nachrichten für Validierungen hinzu.
  * @param Zend_Form_Element $element
  */
 protected function applyCustomMessages($element)
 {
     if ($element->isRequired()) {
         // wenn Validator 'notEmpty' bereits gesetzt ist; nicht modifizieren
         if (!$element->getValidator('notEmpty') && $element->autoInsertNotEmptyValidator()) {
             $notEmptyValidator = new Zend_Validate_NotEmpty();
             $notEmptyValidator->setMessage('admin_validate_error_notempty');
             $element->addValidator($notEmptyValidator);
         }
     }
 }