diff --git a/default_content.services.yml b/default_content.services.yml index b2fd96e..b3064b9 100644 --- a/default_content.services.yml +++ b/default_content.services.yml @@ -2,3 +2,7 @@ services: default_content.manager: class: Drupal\default_content\DefaultContentManager arguments: ['@serializer', '@plugin.manager.rest', '@current_user', '@entity_type.manager', '@entity.repository', '@rest.link_manager', '@event_dispatcher', '@module_handler', '@info_parser'] + default_content.config_subscriber: + class: Drupal\default_content\Config\DefaultContentConfigSubscriber + arguments: ['@default_content.manager'] + tags: [{ name: event_subscriber }] diff --git a/src/Config/DefaultContentConfigSubscriber.php b/src/Config/DefaultContentConfigSubscriber.php new file mode 100644 index 0000000..f0d396e --- /dev/null +++ b/src/Config/DefaultContentConfigSubscriber.php @@ -0,0 +1,52 @@ +defaultContentManager = $default_content_manager; + } + + /** + * Creates default content after config synchronization. + * + * @param \Drupal\Core\Config\ConfigImporterEvent $event + * The config importer event. + */ + public function onConfigImport(ConfigImporterEvent $event) { + $modules = $event->getConfigImporter()->getExtensionChangelist('module', 'install'); + foreach ($modules as $module) { + $this->defaultContentManager->importContent($module); + } + } + + /** + * {@inheritdoc} + */ + public static function getSubscribedEvents() { + return [ConfigEvents::IMPORT => 'onConfigImport']; + } + +}