Chris@0: save(); Chris@0: } Chris@0: Chris@0: return t('All field storage configuration objects re-saved.'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Fixes the 'handler' setting for entity reference fields. Chris@0: */ Chris@0: function field_post_update_entity_reference_handler_setting() { Chris@0: foreach (FieldConfig::loadMultiple() as $field_config) { Chris@0: $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); Chris@0: $item_class = 'Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem'; Chris@0: $class = $field_type_manager->getPluginClass($field_config->getType()); Chris@0: if ($class === $item_class || is_subclass_of($class, $item_class)) { Chris@0: // field_field_config_presave() will fix the 'handler' setting on save. Chris@0: $field_config->save(); Chris@0: } Chris@0: } Chris@0: Chris@0: return t('Selection handler for entity reference fields have been adjusted.'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Adds the 'size' setting for email widgets. Chris@0: */ Chris@0: function field_post_update_email_widget_size_setting() { Chris@0: foreach (EntityFormDisplay::loadMultiple() as $entity_form_display) { Chris@0: $changed = FALSE; Chris@0: foreach ($entity_form_display->getComponents() as $name => $options) { Chris@0: if (isset($options['type']) && $options['type'] === 'email_default') { Chris@0: $options['settings']['size'] = '60'; Chris@0: $entity_form_display->setComponent($name, $options); Chris@0: $changed = TRUE; Chris@0: } Chris@0: } Chris@0: Chris@0: if ($changed) { Chris@0: $entity_form_display->save(); Chris@0: } Chris@0: } Chris@0: Chris@0: return t('The new size setting for email widgets has been added.'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Remove the stale 'handler_submit' setting for entity_reference fields. Chris@0: */ Chris@0: function field_post_update_remove_handler_submit_setting() { Chris@0: $config = \Drupal::configFactory(); Chris@0: /** @var \Drupal\Core\Field\FieldTypePluginManager $field_type_manager */ Chris@0: $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); Chris@0: Chris@0: // Iterate on all field configs. Chris@0: foreach ($config->listAll('field.field.') as $field_id) { Chris@0: $field = $config->getEditable($field_id); Chris@0: $class = $field_type_manager->getPluginClass($field->get('field_type')); Chris@0: Chris@0: // Deal only with entity reference fields and descendants. Chris@0: if ($class === EntityReferenceItem::class || is_subclass_of($class, EntityReferenceItem::class)) { Chris@0: if ($field->get('settings.handler_submit')) { Chris@0: // Remove 'handler_settings' from settings. Chris@0: $field->clear('settings.handler_submit')->save(); Chris@0: } Chris@0: } Chris@0: } Chris@0: }