save(); } return t('All field storage configuration objects re-saved.'); } /** * Fixes the 'handler' setting for entity reference fields. */ function field_post_update_entity_reference_handler_setting() { foreach (FieldConfig::loadMultiple() as $field_config) { $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); $item_class = 'Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem'; $class = $field_type_manager->getPluginClass($field_config->getType()); if ($class === $item_class || is_subclass_of($class, $item_class)) { // field_field_config_presave() will fix the 'handler' setting on save. $field_config->save(); } } return t('Selection handler for entity reference fields have been adjusted.'); } /** * Adds the 'size' setting for email widgets. */ function field_post_update_email_widget_size_setting() { foreach (EntityFormDisplay::loadMultiple() as $entity_form_display) { $changed = FALSE; foreach ($entity_form_display->getComponents() as $name => $options) { if (isset($options['type']) && $options['type'] === 'email_default') { $options['settings']['size'] = '60'; $entity_form_display->setComponent($name, $options); $changed = TRUE; } } if ($changed) { $entity_form_display->save(); } } return t('The new size setting for email widgets has been added.'); }