diff --git a/controlled_access_terms.module b/controlled_access_terms.module index 930d150..74da4e0 100644 --- a/controlled_access_terms.module +++ b/controlled_access_terms.module @@ -70,3 +70,69 @@ function controlled_access_terms_jsonld_alter_normalized_array(EntityInterface $ } } } + +/** + * Change fields using the EDTF Widget to the new EDTF Field Type. + */ +function controlled_access_terms_update_8002() { + // Ensure the new EDTF plugins can be found. + \Drupal::service('plugin.manager.field.field_type')->clearCachedDefinitions(); + + // Find all the fields using the text_edtf widget via form configs. + $config_factory = \Drupal::configFactory(); + foreach ($config_factory->listAll('core.entity_form_display.') as $entity_form_display_config_name) { + $entity_form_display = $config_factory->getEditable($entity_form_display_config_name); + $fields = $entity_form_display->get('content'); + foreach ($fields as $field_name => $field_settings) { + if (isset($field_settings['type']) && $field_settings['type'] === 'text_edtf') { + + // Update this form setting. + $entity_form_display->set("content.$field_name.type", 'edtf_default'); + + // Update the field setting. + if (!$fields = \Drupal::entityManager()->getStorage('field_config')->loadByProperties(['field_name' => $field_name])) { + continue; + } + else { + foreach ($fields as $field) { + $new_field = $field->toArray(); + $new_field['field_type'] = 'edtf'; + $new_field = FieldConfig::create($new_field); + $new_field->original = $new_field; + $new_field->enforceIsNew(FALSE); + $new_field->save(); + } + } + + // Update the field storage setting. + if (!$field_storage_configs = \Drupal::entityManager()->getStorage('field_storage_config')->loadByProperties(['field_name' => $field_name])) { + continue; + } + else { + foreach ($field_storage_configs as $field_storage) { + $new_field_storage = $field_storage->toArray(); + $new_field_storage['type'] = 'edtf'; + $new_field_storage = FieldStorageConfig::create($new_field_storage); + $new_field_storage->original = $new_field_storage; + $new_field_storage->enforceIsNew(FALSE); + $new_field_storage->save(); + } + } + } + } + $entity_form_display->save(TRUE); + } + + // Find display configs. + foreach ($config_factory->listAll('core.entity_view_display.') as $entity_view_display_config_name) { + $entity_view_display = $config_factory->getEditable($entity_view_display_config_name); + $fields = $entity_view_display->get('content'); + foreach ($fields as $field_name => $field_settings) { + if (isset($field_settings['type']) && ($field_settings['type'] === 'text_edtf_human' || $field_settings['type'] === 'text_edtf_iso8601')) { + // Update this view setting. + $entity_view_display->set("content.$field_name.type", 'edtf_default'); + } + } + $entity_view_display->save(TRUE); + } +} diff --git a/modules/controlled_access_terms_default_configuration/config/install/field.storage.taxonomy_term.field_corp_dissolution_date.yml b/modules/controlled_access_terms_default_configuration/config/install/field.storage.taxonomy_term.field_corp_dissolution_date.yml deleted file mode 100644 index ad8129f..0000000 --- a/modules/controlled_access_terms_default_configuration/config/install/field.storage.taxonomy_term.field_corp_dissolution_date.yml +++ /dev/null @@ -1,20 +0,0 @@ -langcode: en -status: true -dependencies: - module: - - taxonomy -id: taxonomy_term.field_corp_dissolution_date -field_name: field_corp_dissolution_date -entity_type: taxonomy_term -type: edtf -settings: - max_length: 60 - is_ascii: false - case_sensitive: false -module: core -locked: false -cardinality: 1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false diff --git a/modules/controlled_access_terms_default_configuration/config/install/field.storage.taxonomy_term.field_corp_founding_date.yml b/modules/controlled_access_terms_default_configuration/config/install/field.storage.taxonomy_term.field_corp_founding_date.yml deleted file mode 100644 index 8f3a707..0000000 --- a/modules/controlled_access_terms_default_configuration/config/install/field.storage.taxonomy_term.field_corp_founding_date.yml +++ /dev/null @@ -1,20 +0,0 @@ -langcode: en -status: true -dependencies: - module: - - taxonomy -id: taxonomy_term.field_corp_founding_date -field_name: field_corp_founding_date -entity_type: taxonomy_term -type: edtf -settings: - max_length: 60 - is_ascii: false - case_sensitive: false -module: core -locked: false -cardinality: 1 -translatable: true -indexes: { } -persist_with_no_fields: false -custom_storage: false