5 * Post update functions for Field module.
8 use Drupal\Core\Entity\Entity\EntityFormDisplay;
9 use Drupal\field\Entity\FieldStorageConfig;
10 use Drupal\field\Entity\FieldConfig;
14 * Re-save all field storage config objects to add 'custom_storage' property.
16 function field_post_update_save_custom_storage_property() {
17 foreach (FieldStorageConfig::loadMultiple() as $field_storage_config) {
18 $field_storage_config->save();
21 return t('All field storage configuration objects re-saved.');
25 * Fixes the 'handler' setting for entity reference fields.
27 function field_post_update_entity_reference_handler_setting() {
28 foreach (FieldConfig::loadMultiple() as $field_config) {
29 $field_type_manager = \Drupal::service('plugin.manager.field.field_type');
30 $item_class = 'Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem';
31 $class = $field_type_manager->getPluginClass($field_config->getType());
32 if ($class === $item_class || is_subclass_of($class, $item_class)) {
33 // field_field_config_presave() will fix the 'handler' setting on save.
34 $field_config->save();
38 return t('Selection handler for entity reference fields have been adjusted.');
42 * Adds the 'size' setting for email widgets.
44 function field_post_update_email_widget_size_setting() {
45 foreach (EntityFormDisplay::loadMultiple() as $entity_form_display) {
47 foreach ($entity_form_display->getComponents() as $name => $options) {
48 if (isset($options['type']) && $options['type'] === 'email_default') {
49 $options['settings']['size'] = '60';
50 $entity_form_display->setComponent($name, $options);
56 $entity_form_display->save();
60 return t('The new size setting for email widgets has been added.');