/** * setMaxLength($value) * * Sets the maximum number of checkboxes that can be selected before the checkbox group will be valid (e.g. please select up to three options...). * @param int $value */ public function setMaxLength($value) { $value = JsonFormBuilder::forceNumber($value); if ($this->_minLength !== NULL && $this->_minLength > $value) { throw JsonFormBuilder::throwError('[Element: ' . $this->_id . '] Cannot set maximum length to "' . $value . '" when minimum length is "' . $this->_minLength . '"'); } else { $this->_maxLength = JsonFormBuilder::forceNumber($value); } }
public function refresh() { $type = $this->getType(); $validationMessage = $this->getValidationMessage(); $element = $this->getElement(); $value = $this->getValue(); if (empty($type) || empty($element)) { //if elements have not yet passed, don't bother setting validation messages. return; } switch ($type) { //form field match, password confirm etc case FormRuleType::fieldMatch: if ($value && is_object($value)) { if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' must match ' . $value->getLabel(); } } else { $this->_validationMessage = $element->getLabel() . ' does not match'; } break; //true false type validators //true false type validators case FormRuleType::email: if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' must be a valid email address'; } break; //true false type validators //true false type validators case FormRuleType::url: if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' must be a valid URL'; } break; case FormRuleType::numeric: if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' must be numeric'; } break; case FormRuleType::required: if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' es requerido'; } $element->isRequired(true); break; //value driven number type validators //value driven number type validators case FormRuleType::maximumLength: if ($value) { $value = JsonFormBuilder::forceNumber($value); if ($validationMessage === NULL) { if (is_a($element, 'JsonFormBuilder_elementCheckboxGroup')) { $this->_validationMessage = $element->getLabel() . ' must have less than ' . ($value + 1) . ' selected'; } else { $this->_validationMessage = $element->getLabel() . ' can only contain up to ' . $value . ' characters'; } } $element->setMaxLength($value); } break; case FormRuleType::maximumValue: if ($value) { $value = JsonFormBuilder::forceNumber($value); if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' must not be greater than ' . $value; } $element->setMaxValue($value); } break; case FormRuleType::minimumLength: if ($value) { $value = JsonFormBuilder::forceNumber($value); if ($validationMessage === NULL) { if (is_a($element, 'JsonFormBuilder_elementCheckboxGroup')) { $this->_validationMessage = $element->getLabel() . ' must have at least ' . $value . ' selected'; } else { $this->_validationMessage = $element->getLabel() . ' must be at least ' . $value . ' characters'; } } $element->setMinLength($value); } break; case FormRuleType::minimumValue: if ($value) { $value = JsonFormBuilder::forceNumber($value); if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' must not be less than ' . $value; } $element->setMinValue($value); } break; case FormRuleType::date: /* Supports any single character separator with any order of dd,mm and yyyy Example: yyyy-dd-mm dd$$mm$yyyy dd/yyyy/mm. Dates will be split and check if a real date is entered. */ if ($value) { $value = strtolower(trim($value)); if (empty($value) === true) { JsonFormBuilder::throwError('Date type field must have a value (date format) specified.'); } if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' must be a valid date (===dateformat===).'; } } break; case FormRuleType::file: if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' must be a valid file.'; } break; case FormRuleType::conditionShow: //is only used by jQuery break; case FormRuleType::custom: if ($validationMessage === NULL) { $this->_validationMessage = $element->getLabel() . ' is not valid.'; } break; default: JsonFormBuilder::throwError('Type "' . $type . '" not valid. Recommend using FormRule constant'); break; } }
public function setMaxFilesize($value) { $value = (int) round($value); $this->_maxFilesizeBytes = JsonFormBuilder::forceNumber($value); }
/** * setMinValue($value) * * Sets the minimum numeric value for a field. * This is generally done automatically via a FormRule. * @param int $value */ public function setMinValue($value) { $value = JsonFormBuilder::forceNumber($value); if ($this->_maxValue !== NULL && $this->_maxValue < $value) { JsonFormBuilder::throwError('[Element: ' . $this->_id . '] Cannot set minimum value to "' . $value . '" when maximum value is "' . $this->_maxValue . '"'); } else { $this->_minValue = JsonFormBuilder::forceNumber($value); } }