eZ\Publish\Core\FieldType\RelationList\Type::validateFieldSettings PHP Method

validateFieldSettings() public method

See also: eZ\Publish\Core\FieldType\FieldType::validateFieldSettings()
public validateFieldSettings ( mixed $fieldSettings ) : eZ\Publish\SPI\FieldType\ValidationError[]
$fieldSettings mixed
return eZ\Publish\SPI\FieldType\ValidationError[]
    public function validateFieldSettings($fieldSettings)
    {
        $validationErrors = array();
        foreach ($fieldSettings as $name => $value) {
            if (!isset($this->settingsSchema[$name])) {
                $validationErrors[] = new ValidationError("Setting '%setting%' is unknown", null, array('%setting%' => $name), "[{$name}]");
                continue;
            }
            switch ($name) {
                case 'selectionMethod':
                    if ($value !== self::SELECTION_BROWSE && $value !== self::SELECTION_DROPDOWN) {
                        $validationErrors[] = new ValidationError("Setting '%setting%' must be either %selection_browse% or %selection_dropdown%", null, array('%setting%' => $name, '%selection_browse%' => self::SELECTION_BROWSE, '%selection_dropdown%' => self::SELECTION_DROPDOWN), "[{$name}]");
                    }
                    break;
                case 'selectionDefaultLocation':
                    if (!is_int($value) && !is_string($value) && $value !== null) {
                        $validationErrors[] = new ValidationError("Setting '%setting%' value must be of either null, string or integer", null, array('%setting%' => $name), "[{$name}]");
                    }
                    break;
                case 'selectionContentTypes':
                    if (!is_array($value)) {
                        $validationErrors[] = new ValidationError("Setting '%setting%' value must be of array type", null, array('%setting%' => $name), "[{$name}]");
                    }
                    break;
            }
        }
        return $validationErrors;
    }