diff --git a/core/modules/node/config/schema/node.schema.yml b/core/modules/node/config/schema/node.schema.yml index 428ffc7..5b470cf 100644 --- a/core/modules/node/config/schema/node.schema.yml +++ b/core/modules/node/config/schema/node.schema.yml @@ -28,11 +28,11 @@ node.type.*: type: text label: 'Explanation or submission guidelines' settings: - type: mapping + type: sequence label: 'Settings' - mapping: - node: - type: node.settings.node + sequence: + - type: node.settings.[%key] + label: 'Module settings' node.settings.node: type: mapping diff --git a/core/modules/node/node.module b/core/modules/node/node.module index fefd6d5..b46a15b 100644 --- a/core/modules/node/node.module +++ b/core/modules/node/node.module @@ -1536,22 +1536,6 @@ function node_modules_installed($modules) { * Implements hook_modules_uninstalled(). */ function node_modules_uninstalled($modules) { - // Remove module-specific settings from all node types. - $config_names = \Drupal::configFactory()->listAll('node.type.'); - foreach ($config_names as $config_name) { - $config = \Drupal::config($config_name); - $changed = FALSE; - foreach ($modules as $module) { - if ($config->get('settings.' . $module)) { - $config->clear('settings.' . $module); - $changed = TRUE; - } - } - if ($changed) { - $config->save(); - } - } - // Check whether any of the disabled modules implemented hook_node_grants(), // in which case the node access table needs to be rebuilt. foreach ($modules as $module) { diff --git a/core/modules/node/src/Entity/NodeType.php b/core/modules/node/src/Entity/NodeType.php index 5f28ee9..8a021bf 100644 --- a/core/modules/node/src/Entity/NodeType.php +++ b/core/modules/node/src/Entity/NodeType.php @@ -192,4 +192,15 @@ public static function preCreate(EntityStorageInterface $storage, array &$values ), $values['settings']['node']); } + /** + * {@inheritdoc} + */ + public function calculateDependencies() { + parent::calculateDependencies(); + foreach ($this->settings as $module => $settings) { + $this->addDependency('module', $module); + } + return $this->dependencies; + } + }