function _field_ui_field_overview_form_validate_add_new

Validates the 'add new field' row of field_ui_field_overview_form().

See also

field_ui_field_overview_form_validate()

1 call to _field_ui_field_overview_form_validate_add_new()
field_ui_field_overview_form_validate in drupal/modules/field_ui/field_ui.admin.inc
Form validation handler for field_ui_field_overview_form().

File

drupal/modules/field_ui/field_ui.admin.inc, line 671
Administrative interface for custom field type creation.

Code

function _field_ui_field_overview_form_validate_add_new($form, &$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 = field_ui_widget_type_options($field['type']);
      if (!isset($widget_types[$field['widget_type']])) {
        form_set_error('fields][_add_new_field][widget_type', t('Add new field: invalid widget.'));
      }
    }
  }
}