Validates the 'add new field' row.
array $form: An associative array containing the structure of the form.
array $form_state: A reference to a keyed array containing the current state of the form.
Drupal\field_ui\FieldOverview::validateForm()
protected function validateAddNew(array $form, array &$form_state) {
$field = $form_state['values']['fields']['_add_new_field'];
// Validate if any information was provided in the 'add new field' row.
if (array_filter(array(
$field['label'],
$field['field_name'],
$field['type'],
$field['widget_type'],
))) {
// Missing label.
if (!$field['label']) {
form_set_error('fields][_add_new_field][label', t('Add new field: you need to provide a label.'));
}
// Missing field name.
if (!$field['field_name']) {
form_set_error('fields][_add_new_field][field_name', t('Add new field: you need to provide a field name.'));
}
else {
$field_name = $field['field_name'];
// Add the 'field_' prefix.
$field_name = 'field_' . $field_name;
form_set_value($form['fields']['_add_new_field']['field_name'], $field_name, $form_state);
}
// Missing field type.
if (!$field['type']) {
form_set_error('fields][_add_new_field][type', t('Add new field: you need to select a field type.'));
}
// Missing widget type.
if (!$field['widget_type']) {
form_set_error('fields][_add_new_field][widget_type', t('Add new field: you need to select a widget.'));
}
elseif ($field['type']) {
$widget_types = $this->widgetManager
->getOptions($field['type']);
if (!isset($widget_types[$field['widget_type']])) {
form_set_error('fields][_add_new_field][widget_type', t('Add new field: invalid widget.'));
}
}
}
}