111 lines
3.1 KiB
PHP
111 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* FileMaker API for PHP
|
|
*
|
|
* @package FileMaker
|
|
*
|
|
* Copyright © 2005-2007, FileMaker, Inc. All rights reserved.
|
|
* NOTE: Use of this source code is subject to the terms of the FileMaker
|
|
* Software License which accompanies the code. Your use of this source code
|
|
* signifies your agreement to such license terms and conditions. Except as
|
|
* expressly granted in the Software License, no other copyright, patent, or
|
|
* other intellectual property license or right is granted, either expressly or
|
|
* by implication, by FileMaker.
|
|
*/
|
|
|
|
/**#@+
|
|
* @ignore Include parent class.
|
|
*/
|
|
require_once dirname(__FILE__) . '/../Error.php';
|
|
/**#@-*/
|
|
|
|
/**
|
|
* Extension of the FileMaker_Error class that adds information about
|
|
* pre-validation errors.
|
|
*
|
|
* @package FileMaker
|
|
*/
|
|
class FileMaker_Error_Validation extends FileMaker_Error
|
|
{
|
|
/**
|
|
* Error array.
|
|
*
|
|
* @var array
|
|
* @access private
|
|
*/
|
|
var $_errors = array();
|
|
|
|
/**
|
|
* Adds an error.
|
|
*
|
|
* @param FileMaker_Field $field Field object that failed pre-validation.
|
|
* @param integer $rule Pre-validation rule that failed specified as one
|
|
* of the FILEMAKER_RULE_* constants.
|
|
* @param string $value Value that failed pre-validation.
|
|
*/
|
|
function addError($field, $rule, $value)
|
|
{
|
|
$this->_errors[] = array($field, $rule, $value);
|
|
}
|
|
|
|
/**
|
|
* Indicates whether the error is a detailed pre-validation error
|
|
* or a FileMaker Web Publishing Engine error.
|
|
*
|
|
* @return boolean TRUE, to indicate that this is a pre-validation
|
|
* error object.
|
|
*/
|
|
function isValidationError()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Returns the number of pre-validation rules that failed.
|
|
*
|
|
* @return integer Number of failures.
|
|
*/
|
|
function numErrors()
|
|
{
|
|
return count($this->_errors);
|
|
}
|
|
|
|
/**
|
|
* Returns an array of arrays describing the pre-validation errors that
|
|
* occurred.
|
|
*
|
|
* Each entry in the outer array represents a pre-validation failure.
|
|
* Each failure is represented by a three-element array with the
|
|
* following members:
|
|
*
|
|
* - 0 => The field object for the field that failed pre-validation.
|
|
* - 1 => The pre-validation rule that failed specified as a
|
|
* FILEMAKER_RULE_* constant.
|
|
* - 2 => The value entered for the field that failed pre-validation.
|
|
*
|
|
* Multiple pre-validation rules can fail on a single field. If you set the
|
|
* optional $fieldName parameter, then failures for only the specified
|
|
* field are returned.
|
|
*
|
|
* @param string $fieldName Name of the field to get errors for.
|
|
*
|
|
* @return array Pre-validation error details.
|
|
*/
|
|
function getErrors($fieldName = null)
|
|
{
|
|
if ($fieldName === null) {
|
|
return $this->_errors;
|
|
}
|
|
|
|
$errors = array();
|
|
foreach ($this->_errors as $error) {
|
|
if ($error[0]->getName() == $fieldName) {
|
|
$errors[] = $error;
|
|
}
|
|
}
|
|
|
|
return $errors;
|
|
}
|
|
|
|
}
|