/** * 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'); }
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; }
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); }