field_form_config_admin_import_form_alter

field_form_config_admin_import_form_alter(&$form, FormStateInterface $form_state)

Implements hook_form_FORM_ID_alter().

Adds a warning if field data will be permanently removed by the configuration synchronization.

See also

\Drupal\field\ConfigImporterFieldPurger

File

core/modules/field/field.module, line 326
Attach custom data fields to Drupal entities.

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function field_form_config_admin_import_form_alter(&$form, FormStateInterface $form_state) {
  // Only display the message when there is a storage comparer available and the
  // form is not submitted.
  $user_input = $form_state->getUserInput();
  $storage_comparer = $form_state->get('storage_comparer');
  if ($storage_comparer && empty($user_input)) {
    $field_storages = ConfigImporterFieldPurger::getFieldStoragesToPurge(
    $storage_comparer->getSourceStorage()->read('core.extension'),
    $storage_comparer->getChangelist('delete')
    );
    if ($field_storages) {
      foreach ($field_storages as $field) {
        $field_labels[] = $field->label();
      }
      drupal_set_message(\Drupal::translation()->formatPlural(
      count($field_storages),
      'This synchronization will delete data from the field %fields.',
      'This synchronization will delete data from the fields: %fields.',
      array('%fields' => implode(', ', $field_labels))
      ), 'warning');
    }
  }
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.