/** * Method to test if two values are not equal. To use this rule, the form * XML needs a validate attribute of equals and a field attribute * that is equal to the field to test against. * * @param SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object. * @param mixed $value The form field value to validate. * @param string $group The field name group control value. This acts as as an array container for the field. * For example if the field has name="foo" and the group value is set to "bar" then the * full field name would end up being "bar[foo]". * @param JRegistry $input An optional JRegistry object with the entire data set to validate against the entire form. * @param JForm $form The form object for which the field is being tested. * * @return boolean True if the value is valid, false otherwise. * * @throws InvalidArgumentException * @throws UnexpectedValueException */ public function test(SimpleXMLElement $element, $value, $group = null, JRegistry $input = null, JForm $form = null) { // If signed integer. if (isset($element['signed']) && RHelperString::toBool($element['signed'])) { $pattern = '/^[+\\-]\\d+$/'; } else { $pattern = '/^\\d+$/'; } return 1 === preg_match($pattern, $value); }
/** * Get the field options as a js string. * * @return string The options. */ public function getOptions() { // Prepare the params. $template = $this->element['template'] ? $this->element['template'] : 'dropdown'; $minuteStep = isset($this->element['minute_step']) && !empty($this->element['minute_step']) ? (int) $this->element['minute_step'] : 15; $secondStep = isset($this->element['second_step']) && !empty($this->element['second_step']) ? (int) $this->element['second_step'] : 15; $showSeconds = RHelperString::toBool($this->element['seconds']) ? 'true' : 'false'; $showMeridian = RHelperString::toBool($this->element['meridian']) ? 'true' : 'false'; $showInputs = RHelperString::toBool($this->element['inputs']) ? 'true' : 'false'; $disableFocus = RHelperString::toBool($this->element['disable_focus']) ? 'true' : 'false'; $modalBackdrop = RHelperString::toBool($this->element['backdrop']) ? 'true' : 'false'; // If we don't have a value. if (empty($this->value)) { $defaultTime = $this->element['default'] ? $this->element['default'] : 'current'; } else { $defaultTime = 'value'; } $options = new JRegistry(); $options->loadArray(array('template' => $template, 'minuteStep' => $minuteStep, 'showSeconds' => $showSeconds, 'secondStep' => $secondStep, 'defaultTime' => $defaultTime, 'showMeridian' => $showMeridian, 'showInputs' => $showInputs, 'disableFocus' => $disableFocus, 'modalBackdrop' => $modalBackdrop)); return $options->toString(); }