eZ\Publish\Core\FieldType\ISBN\Type::validate PHP Method

validate() public method

Does not use validators.
public validate ( eZ\Publish\API\Repository\Values\ContentType\FieldDefinition $fieldDefinition, eZ\Publish\SPI\FieldType\Value $fieldValue ) : eZ\Publish\SPI\FieldType\ValidationError[]
$fieldDefinition eZ\Publish\API\Repository\Values\ContentType\FieldDefinition The field definition of the field
$fieldValue eZ\Publish\SPI\FieldType\Value The field value for which an action is performed
return eZ\Publish\SPI\FieldType\ValidationError[]
    public function validate(FieldDefinition $fieldDefinition, SPIValue $fieldValue)
    {
        $validationErrors = array();
        if ($this->isEmptyValue($fieldValue)) {
            return $validationErrors;
        }
        $fieldSettings = $fieldDefinition->getFieldSettings();
        $isbnTestNumber = preg_replace("/[\\s|\\-]/", '', trim($fieldValue->isbn));
        // Check if value and settings are inline
        if ((!isset($fieldSettings['isISBN13']) || $fieldSettings['isISBN13'] === false) && strlen($isbnTestNumber) !== 10) {
            $validationErrors[] = new ValidationError('ISBN-10 must be 10 character length', null, array(), 'isbn');
        } elseif (strlen($isbnTestNumber) === 10) {
            // ISBN-10 check
            if (!$this->validateISBNChecksum($isbnTestNumber)) {
                $validationErrors[] = new ValidationError('ISBN value must be in a valid ISBN-10 format', null, array(), 'isbn');
            }
        } else {
            // ISBN-13 check
            if (!$this->validateISBN13Checksum($isbnTestNumber, $error)) {
                $validationErrors[] = new ValidationError($error, null, array(), 'isbn');
            }
        }
        return $validationErrors;
    }