/** * Validates against ruleset. * @return bool */ public function validate($emptyOptional = FALSE) { $emptyOptional = $emptyOptional || $this->isOptional() && !$this->control->isFilled(); foreach ($this as $rule) { if (!$rule->branch && $emptyOptional && $rule->validator !== Form::FILLED) { continue; } $success = $this->validateRule($rule); if ($success && $rule->branch && !$rule->branch->validate($rule->validator === Form::BLANK ? FALSE : $emptyOptional)) { return FALSE; } elseif (!$success && !$rule->branch) { $rule->control->addError(Validator::formatMessage($rule, TRUE)); return FALSE; } } return TRUE; }
/** * Is control not filled? * @return bool */ public static function validateBlank(IControl $control) { return !$control->isFilled(); }
/** * Filled validator: is control filled? * @param Nette\Forms\IControl * @return bool */ public static function validateFilled(IControl $control) { return $control->isFilled(); }