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;
}