function field_form_config_admin_import_form_alter

Same name in other branches
  1. 9 core/modules/field/field.module \field_form_config_admin_import_form_alter()
  2. 10 core/modules/field/field.module \field_form_config_admin_import_form_alter()

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 315

Code

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::messenger()->addWarning(\Drupal::translation()->formatPlural(count($field_storages), 'This synchronization will delete data from the field %fields.', 'This synchronization will delete data from the fields: %fields.', [
                '%fields' => implode(', ', $field_labels),
            ]));
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.