diff --git a/farm_agrikern.install b/farm_agrikern.install index 1c8ad94..004ef40 100644 --- a/farm_agrikern.install +++ b/farm_agrikern.install @@ -2,21 +2,39 @@ * Updates allowed taxonomy types. */ function farm_agrikern_update_1(&$sandbox) { - // Updates field storage config for field_custom_radio_buttons. - // @see https://www.drupal.org/node/2012896 - // @see https://www.drupal.org/docs/8/api/update-api/updating-entities-and-fields-in-drupal-8#example-updating-a-field-from-an-obsolete-type-to-a-new-type - $old_config = FieldStorageConfig::loadByName('asset', 'crop_field'); - $new_config = $old_config->createDuplicate(); - $new_config->original = $new_config; - $new_config->enforceIsNew(FALSE); - $new_config - ->setSetting('target_bundle', 'plant_type') - ->save(); - $old_config = FieldStorageConfig::loadByName('log', 'work_field'); + + $config_ids = [ + 'taxonomy.vocabulary.chemical', + 'taxonomy.vocabulary.work_type', + ]; + + foreach ($config_ids as $config_id) { + // Check if the configuration already exists. + $existing_config = \Drupal::config($config_id); + if ($existing_config->isNew()) { + // Load the YAML file from the module's config/install directory. + $config_storage = \Drupal::service('config.storage'); + $data = $config_storage->read($config_id); + + if ($data) { + // Import the configuration. + $config_importer = \Drupal::service('config.installer'); + $config_importer->create($config_id, $data); + \Drupal::messenger()->addMessage("Configuration '{$config_id}' imported."); + } + else { + \Drupal::messenger()->addMessage("Configuration file for '{$config_id}' not found.", 'error'); + } + } + else { + \Drupal::messenger()->addMessage("Configuration '{$config_id}' already exists.", 'warning'); + } + } +} +} \ No newline at end of file