You are here

function _ds_field_ui_core_fields in Display Suite 8.3

Same name and namespace in other branches
  1. 8.4 includes/field_ui.inc \_ds_field_ui_core_fields()
  2. 8.2 includes/field_ui.inc \_ds_field_ui_core_fields()
  3. 7.2 includes/ds.field_ui.inc \_ds_field_ui_core_fields()

Alter the core field on the Field UI form.

Parameters

array $form: A collection of form properties.

\Drupal\Core\Form\FormStateInterface $form_state: A collection of form_state properties.

1 call to _ds_field_ui_core_fields()
ds_field_ui_fields_layouts in includes/field_ui.inc
Adds the Display Suite fields and layouts to the form.

File

includes/field_ui.inc, line 1405
Field UI functions for Display Suite.

Code

function _ds_field_ui_core_fields(array &$form, FormStateInterface $form_state) {
  $entity_type = $form['#entity_type'];
  $bundle = $form['#bundle'];

  /* @var \Drupal\Core\Entity\EntityFormInterface $entity_form */
  $entity_form = $form_state
    ->getFormObject();

  /* @var EntityViewDisplay $entity_display */
  $entity_display = $entity_form
    ->getEntity();

  // Gather type information.
  $instances = \Drupal::service('entity_field.manager')
    ->getFieldDefinitions($entity_type, $bundle);
  $table =& $form['fields'];

  // Get all persisted values for fields and plugin settings.
  $form_state_plugin_settings = $form_state
    ->get('plugin_settings');

  // Field rows.
  foreach ($instances as $key => $instance) {
    if ($instance instanceof FieldConfigInterface) {
      $settings = $entity_display
        ->getComponent($key);
      if (empty($settings)) {
        continue;
      }
      if (isset($form_state_plugin_settings[$key])) {
        $settings = array_merge($settings, $form_state_plugin_settings[$key]);
      }

      // Import field settings and merge with Field API settings.
      if (!isset($form_state_plugin_settings[$key])) {
        $form_state_plugin_settings[$key] = isset($settings['third_party_settings']['ds']) ? $settings['third_party_settings']['ds'] : [];
      }
      if ($form_state
        ->get('plugin_settings_edit') == $key) {
        $table[$key]['plugin']['settings_edit_form']['actions']['save_settings']['#validate'] = [
          'ds_field_ui_fields_validate',
        ];
        $table[$key]['plugin']['settings_edit_form']['actions']['cancel_settings']['#validate'] = [
          'ds_field_ui_fields_validate',
        ];
      }
      else {
        if (!empty($table[$key]['settings_summary'])) {
          ds_field_row_form_format_summary_construct($table, $key, $form_state);
        }
      }
    }
  }

  // Set updated plugin settings.
  $form_state
    ->set('plugin_settings', $form_state_plugin_settings);
}