/**
  * Sets the autocomplete attribute of given form to "off".
  *
  * The plugin will not modify the form if it already has
  * an autocomplete attribute.
  *
  * @param Zend_Form $form
  */
 public function enhance(Zend_Form $form)
 {
     if ($form->getAttrib('autocomplete') !== null) {
         // Autocomplete attribute is already set for
         // this form instance.
         return;
     }
     $form->setAttrib('autocomplete', 'off');
 }
Beispiel #2
0
 public function testCanSetObjectStateByPassingConfigObjectToConstructor()
 {
     $config = new Zend_Config($this->getOptions());
     $form = new Zend_Form($config);
     $this->assertEquals('foo', $form->getName());
     $this->assertEquals('someform', $form->getAttrib('class'));
     $this->assertEquals('/foo/bar', $form->getAction());
     $this->assertEquals('put', $form->getMethod());
 }
 /**
  * Generates the Javascript markup needed for jQuery Validate
  * using the parameters of the Zend_Form object
  * @param Zend_Form $form The Zend Form to use
  * @param array $otherOptions A array with additional options if needed
  * @return string
  */
 public function formJQueryValidate(Zend_Form $form, array $otherOptions = array())
 {
     $id = $form->getAttrib('id');
     if (!$id) {
         $id = uniqid('zfForm');
     }
     $fields = array();
     $messages = array();
     foreach ($form->getElements() as $elemName => $element) {
         $options = array();
         $elemMessages = array();
         if ($element->getIgnore() == true) {
             continue;
         }
         if ($element->isRequired()) {
             $options['required'] = true;
             $elemMessages['required'] = 'Este elemento es necesario';
         }
         $validators = $element->getValidators();
         foreach ($validators as $validator) {
             $validatorMessages = $validator->getMessageTemplates();
             switch (true) {
                 case $validator instanceof Zend_Validate_NotEmpty:
                     $options['required'] = true;
                     $elemMessages['required'] = $this->toJQueryValidateFormat($validatorMessages['isEmpty']);
                     break;
                 case $validator instanceof Zend_Validate_EmailAddress:
                     $options['email'] = true;
                     $elemMessages['email'] = $this->toJQueryValidateFormat($validatorMessages['emailAddressInvalidFormat']);
                     break;
                 case $validator instanceof Zend_Validate_StringLength:
                     $min = $validator->getMin();
                     $max = $validator->getMax();
                     if ($min) {
                         $options['minlength'] = $min;
                         $elemMessages['minlength'] = $this->toJQueryValidateFormat($validatorMessages['stringLengthTooShort']);
                     }
                     if ($max) {
                         $options['maxlength'] = $max;
                         $elemMessages['maxlength'] = $this->toJQueryValidateFormat($validatorMessages['stringLengthTooLong']);
                     }
                     break;
                 case $validator instanceof Zend_Validate_Identical:
                     $token = $validator->getToken();
                     if ($token) {
                         $options['equalTo'] = '#' . $token;
                         $elemMessages['equalTo'] = $this->toJQueryValidateFormat($validatorMessages['notSame']);
                     }
                     break;
                 case $validator instanceof Zend_Validate_Date:
                     $options['mxdate'] = true;
                     $elemMessages['equalTo'] = $this->toJQueryValidateFormat($validatorMessages['dateInvalidDate']);
                     break;
             }
         }
         $fields[$elemName] = $options;
         $messages[$elemName] = $elemMessages;
     }
     $validateOptions = json_encode(array_merge($otherOptions, array('rules' => $fields, 'messages' => $messages)));
     $js = "\$('#{$id}').validate({$validateOptions});";
     return $js;
 }
Beispiel #4
0
 public function testCanRemoveSingleAttrib()
 {
     $this->testCanAddAndRetrieveSingleAttribs();
     $this->assertTrue($this->form->removeAttrib('foo'));
     $this->assertNull($this->form->getAttrib('foo'));
 }
 /**
  * Adds a captcha element to the given form if the for attribute
  * "data-captcha" equals true or "yes".
  *
  * The "data-captcha" attribute is removed after processing to
  * ensure that it is not rendered by the form.
  *
  * @param Zend_Form $form
  */
 public function enhance(Zend_Form $form)
 {
     $activate = $form->getAttrib('data-captcha');
     if ($activate === null) {
         // Form does not define instructions regarding captcha usage.
         return;
     }
     // Remove the attribute to ensure that the instruction is not rendered.
     $form->removeAttrib('data-captcha');
     if ($activate !== 'yes') {
         return;
     }
     $this->addCaptcha($form);
 }