From 9cd19b835da0b9786df44bcaf54bb13b10cf57ca Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Mon, 7 Sep 2026 12:26:43 +1000 Subject: [PATCH 1/2] Ignores taxonomy vocabulary config Ignores taxonomy vocabulary configuration during configuration imports --- src/TideCoreOperation.php | 17 +++++++++++++++++ tide_core.install | 11 +++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/TideCoreOperation.php b/src/TideCoreOperation.php index 0a2e9c70b..7ad70b16d 100644 --- a/src/TideCoreOperation.php +++ b/src/TideCoreOperation.php @@ -345,4 +345,21 @@ public function enableJsonLdSchemaDefaults() { $defaults->save(); } + /** + * Ignores taxonomy vocabulary configuration during configuration imports. + */ + public function ignoreTaxonomyVocabularyConfig() { + $config = \Drupal::configFactory()->getEditable('config_ignore.settings'); + $ignored_config_entities = (array) $config->get('ignored_config_entities'); + + if (!in_array('taxonomy.vocabulary.*', $ignored_config_entities, TRUE)) { + $ignored_config_entities[] = 'taxonomy.vocabulary.*'; + $config + ->set('ignored_config_entities', $ignored_config_entities) + ->save(); + } + + \Drupal::service('plugin.manager.config_filter')->clearCachedDefinitions(); + } + } diff --git a/tide_core.install b/tide_core.install index 9ad002c27..874e68ccb 100644 --- a/tide_core.install +++ b/tide_core.install @@ -73,6 +73,9 @@ function tide_core_install() { // Enable the JSON-LD engine schema defaults (WebPage + BreadcrumbList) on the // node metatag default. $tideCoreOperation->enableJsonLdSchemaDefaults(); + + // Ignore taxonomy vocabulary configuration during configuration imports. + $tideCoreOperation->ignoreTaxonomyVocabularyConfig(); } /** @@ -1717,3 +1720,11 @@ function tide_core_update_10047() { } } } + +/** + * Ignore taxonomy vocabulary configuration during configuration imports. + */ +function tide_core_update_10048() { + $tideCoreOperation = new TideCoreOperation(); + $tideCoreOperation->ignoreTaxonomyVocabularyConfig(); +} From 3ce5c6b0c436b3537578270b4768ceda18f2e43e Mon Sep 17 00:00:00 2001 From: Vincent Gao Date: Tue, 8 Sep 2026 07:40:38 +1000 Subject: [PATCH 2/2] Enforce taxonomy config ignore rule at runtime Use hook_config_ignore_settings_alter() to ensure importing config_ignore.settings cannot remove the taxonomy.vocabulary.* ignore rule. Remove the configuration helper and its install and update hooks. --- src/TideCoreOperation.php | 17 ----------------- tide_core.install | 11 ----------- tide_core.module | 9 +++++++++ 3 files changed, 9 insertions(+), 28 deletions(-) diff --git a/src/TideCoreOperation.php b/src/TideCoreOperation.php index 7ad70b16d..0a2e9c70b 100644 --- a/src/TideCoreOperation.php +++ b/src/TideCoreOperation.php @@ -345,21 +345,4 @@ public function enableJsonLdSchemaDefaults() { $defaults->save(); } - /** - * Ignores taxonomy vocabulary configuration during configuration imports. - */ - public function ignoreTaxonomyVocabularyConfig() { - $config = \Drupal::configFactory()->getEditable('config_ignore.settings'); - $ignored_config_entities = (array) $config->get('ignored_config_entities'); - - if (!in_array('taxonomy.vocabulary.*', $ignored_config_entities, TRUE)) { - $ignored_config_entities[] = 'taxonomy.vocabulary.*'; - $config - ->set('ignored_config_entities', $ignored_config_entities) - ->save(); - } - - \Drupal::service('plugin.manager.config_filter')->clearCachedDefinitions(); - } - } diff --git a/tide_core.install b/tide_core.install index 874e68ccb..9ad002c27 100644 --- a/tide_core.install +++ b/tide_core.install @@ -73,9 +73,6 @@ function tide_core_install() { // Enable the JSON-LD engine schema defaults (WebPage + BreadcrumbList) on the // node metatag default. $tideCoreOperation->enableJsonLdSchemaDefaults(); - - // Ignore taxonomy vocabulary configuration during configuration imports. - $tideCoreOperation->ignoreTaxonomyVocabularyConfig(); } /** @@ -1720,11 +1717,3 @@ function tide_core_update_10047() { } } } - -/** - * Ignore taxonomy vocabulary configuration during configuration imports. - */ -function tide_core_update_10048() { - $tideCoreOperation = new TideCoreOperation(); - $tideCoreOperation->ignoreTaxonomyVocabularyConfig(); -} diff --git a/tide_core.module b/tide_core.module index 3cc331d7f..23ee6ee4a 100644 --- a/tide_core.module +++ b/tide_core.module @@ -1021,3 +1021,12 @@ function tide_core_schema_metatag_property_type_plugins_alter(array &$definition $definitions['breadcrumb_list']['provider'] = 'tide_core'; } } + +/** + * Implements hook_config_ignore_settings_alter(). + */ +function tide_core_config_ignore_settings_alter(array &$ignored) { + if (!in_array('taxonomy.vocabulary.*', $ignored, TRUE)) { + $ignored[] = 'taxonomy.vocabulary.*'; + } +}