You are here

function better_formats_form_field_ui_edit_form_submit in Better Formats 7

Submit handler for field instance edit form.

Copied and slightly modifed from field_ui_field_edit_form_submit().

See also

field_ui_field_edit_form_submit()

1 string reference to 'better_formats_form_field_ui_edit_form_submit'
better_formats_form_field_ui_field_edit_form_alter in ./better_formats.module
Implements hook_form_FORM_ID_alter().

File

./better_formats.module, line 338
Enhances Drupal's core text format settings.

Code

function better_formats_form_field_ui_edit_form_submit($form, &$form_state) {
  $instance = $form_state['values']['instance'];
  $field = $form_state['values']['field'];

  // Only act on fields that have text processing enabled.
  if ($instance['settings']['text_processing'] == 1) {

    // Update any field settings that have changed.
    $field_source = field_info_field($instance['field_name']);
    $field = array_merge($field_source, $field);
    field_update_field($field);

    // Handle the default value.
    if (isset($form['instance']['default_value_widget'])) {
      $element = $form['instance']['default_value_widget'];

      // Extract field values.
      $items = array();
      field_default_extract_form_values(NULL, NULL, $field, $instance, LANGUAGE_NONE, $items, $element, $form_state);

      // Commenting out the below line to not remove emtpy fields.

      //field_default_submit(NULL, NULL, $field, $instance, LANGUAGE_NONE, $items, $element, $form_state);
      $instance['default_value'] = $items ? $items : NULL;
    }

    // Retrieve the stored instance settings to merge with the incoming values.
    $instance_source = field_read_instance($instance['entity_type'], $instance['field_name'], $instance['bundle']);
    $instance = array_merge($instance_source, $instance);
    field_update_instance($instance);
  }

  // Messaging and redirect removed as this is added in the default handler.
}