/** * Returns the HTML representation of the element * * The method changes the element's name to foo[bar][] if it was foo[bar] * originally. If it is not done, then one of the click coordinates will be * lost, see {@link http://bugs.php.net/bug.php?id=745} * * @return string */ public function __toString() { if (false === strpos($this->attributes['name'], '[') || '[]' == substr($this->attributes['name'], -2)) { return parent::__toString(); } else { $this->attributes['name'] .= '[]'; $html = parent::__toString(); $this->attributes['name'] = substr($this->attributes['name'], 0, -2); return $html; } }
/** * Performs the server-side validation * * Before the Rules added to the element kick in, the element checks the * error code added to the $_FILES array by PHP. If the code isn't * UPLOAD_ERR_OK or UPLOAD_ERR_NO_FILE then a built-in error message will be * displayed and no further validation will take place. * * @return boolean Whether the element is valid */ protected function validate() { if (strlen($this->error)) { return false; } if (isset($this->value['error']) && !in_array($this->value['error'], array(UPLOAD_ERR_OK, UPLOAD_ERR_NO_FILE))) { $errorMessage = $this->messageProvider instanceof HTML_QuickForm2_MessageProvider ? $this->messageProvider->get(array('file', $this->value['error']), $this->language) : call_user_func($this->messageProvider, array('file', $this->value['error']), $this->language); if (UPLOAD_ERR_INI_SIZE == $this->value['error']) { $iniSize = ini_get('upload_max_filesize'); $size = intval($iniSize); switch (strtoupper(substr($iniSize, -1))) { case 'G': $size *= 1024; case 'M': $size *= 1024; case 'K': $size *= 1024; } } elseif (UPLOAD_ERR_FORM_SIZE == $this->value['error']) { foreach ($this->getDataSources() as $ds) { if ($ds instanceof HTML_QuickForm2_DataSource_Submit) { $size = intval($ds->getValue('MAX_FILE_SIZE')); break; } } } $this->error = isset($size) ? sprintf($errorMessage, $size) : $errorMessage; return false; } return parent::validate(); }
public function __construct($name = null, $attributes = null, array $data = array()) { parent::__construct($name, $attributes, $data); $this->attributes['type'] = 'concrete'; }
public function render(HTML_QuickForm2_Renderer $renderer) { $renderer->getJavascriptBuilder()->addElementJavascript($this->getJs()); return parent::render($renderer); }
public function __toString() { if (0 == strlen($this->data['content'])) { $label = ''; } elseif ($this->frozen) { $label = $this->data['content']; } else { $label = '<label for="' . htmlspecialchars($this->getId(), ENT_QUOTES, self::getOption('charset')) . '">' . $this->data['content'] . '</label>'; } return parent::__toString() . $label; }
function setValue($value) { if (is_array($value)) { if ($value['u'] == 'lifetime') { $this->period = Am_Period::getLifetime(); } else { if ($value['c'] && $value['u']) { $this->period = new Am_Period($value['c'], $value['u']); } else { $this->period = new Am_Period(); } } } else { $this->period = new Am_Period($value); } $value = $this->period->__toString(); parent::setValue($value); }
/** * Performs the server-side validation. * Checks captcha validation first, continues with * defined rules if captcha is valid * * @return boolean Whether the element is valid */ protected function validate() { // Alternative: use custom rule to get error messages if (!$this->verifyCaptcha()) { $this->setError($this->data['captchaSolutionWrong']); return false; } return parent::validate(); }
/** * Disallows setting an error message on hidden elements * * @param string|null $error * * @return HTML_QuickForm2_Element_InputHidden * @throws HTML_QuickForm2_InvalidArgumentException if $error is not empty */ public function setError($error = null) { if (strlen($error)) { throw new HTML_QuickForm2_InvalidArgumentException("Hidden elements cannot have validation errors"); } return parent::setError($error); }