diff --git a/forms/Validator.php b/forms/Validator.php index f23df34bb..9f2b22b33 100644 --- a/forms/Validator.php +++ b/forms/Validator.php @@ -1,22 +1,22 @@ form = $form; + return $this; } - + /** - * @return array Errors (if any) + * Returns any errors there may be. + * + * @return null|array */ - public function validate(){ + public function validate() { $this->errors = null; + $this->php($this->form->getData()); + return $this->errors; } - + /** * Callback to register an error on a field (Called from implementations of {@link FormField::validate}) - * - * @param $fieldName name of the field - * @param $message error message to display - * @param $messageType optional parameter, gets loaded into the HTML class attribute in the rendered output. - * See {@link getErrors()} for details. + * + * @param string $fieldName name of the field + * @param string $message error message to display + * @param string $messageType optional parameter, gets loaded into the HTML class attribute in the rendered output. + * + * See {@link getErrors()} for details. */ - public function validationError($fieldName, $message, $messageType='') { + public function validationError($fieldName, $message, $messageType = '') { $this->errors[] = array( 'fieldName' => $fieldName, 'message' => $message, 'messageType' => $messageType, ); } - + /** * Returns all errors found by a previous call to {@link validate()}. + * * The array contains the following keys for each error: * - 'fieldName': the name of the FormField instance * - 'message': Validation message (optionally localized) * - 'messageType': Arbitrary type of the message which is rendered as a CSS class in the FormField template, * e.g. . Usually "bad|message|validation|required", which renders differently * if framework/css/Form.css is included. - * + * * @return array */ public function getErrors() { return $this->errors; } - + + /** + * @param string $fieldName + * @param array $data + */ public function requireField($fieldName, $data) { if(is_array($data[$fieldName]) && count($data[$fieldName])) { - foreach($data[$fieldName] as $componentkey => $componentVal){ - if(!strlen($componentVal)) { - $this->validationError($fieldName, "$fieldName $componentkey is required", "required"); + foreach($data[$fieldName] as $componentKey => $componentValue) { + if(!strlen($componentValue)) { + $this->validationError( + $fieldName, + sprintf('%s %s is required', $fieldName, $componentKey), + 'required' + ); } } - } else if(!strlen($data[$fieldName])) { - $this->validationError($fieldName, "$fieldName is required", "required"); + $this->validationError( + $fieldName, + sprintf('%s is required', $fieldName), + 'required' + ); } } - + /** * Returns true if the named field is "required". + * * Used by FormField to return a value for FormField::Required(), to do things like show *s on the form template. + * * By default, it always returns false. */ public function fieldIsRequired($fieldName) { return false; } - + + /** + * @param array $data + * + * @return mixed + */ abstract public function php($data); } -