You are here

function options_element_form_field_ui_field_edit_form_alter in Options Element 7

Implements hook_form_FORM_ID_alter().

File

./options_element.module, line 203
Defines an "options" form element type for entering select list options.

Code

function options_element_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
  $field = $form['#field'];
  if (in_array($field['type'], _options_element_supported_field_types())) {

    // Use options_element default widget instead of field widget.
    $form['instance']['default_value_widget']['#access'] = FALSE;

    // Language is hardcoded to 'und' in field_ui_default_value_widget().
    $default_field_value = $form['instance']['default_value_widget'][$field['field_name']][LANGUAGE_NONE]['#default_value'];

    // Overwrite 'allowed_values' element.
    $element_overwrite = array(
      '#options' => $field['settings']['allowed_values'],
      '#multiple' => !($form['field']['cardinality']['#default_value'] == 1),
      '#default_value' => $default_field_value,
    );
    _options_element_add_allowed_values_element($form, $element_overwrite);

    // Add proper default value inside validate callback.
    $form['#validate'][] = 'options_element_field_instance_settings_validate';
  }
}