diff --git a/core/modules/content_translation/src/ContentTranslationUpdatesManager.php b/core/modules/content_translation/src/ContentTranslationUpdatesManager.php index 8b34797..ebcb986 100644 --- a/core/modules/content_translation/src/ContentTranslationUpdatesManager.php +++ b/core/modules/content_translation/src/ContentTranslationUpdatesManager.php @@ -2,10 +2,14 @@ namespace Drupal\content_translation; +use Drupal\Component\Utility\NestedArray; use Drupal\Core\Config\ConfigEvents; use Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface; use Drupal\Core\Entity\EntityManagerInterface; use Drupal\Core\Entity\EntityTypeInterface; +use Drupal\migrate\Event\MigrateEvents; +use Drupal\migrate\Event\MigrateImportEvent; +use Drupal\migrate\Plugin\migrate\destination\Entity as EntityDestination; use Symfony\Component\EventDispatcher\EventSubscriberInterface; /** @@ -75,10 +79,26 @@ public function onConfigImporterImport() { } /** + * Listener for migration imports. + */ + public function onMigrateImport(MigrateImportEvent $event) { + $migration = $event->getMigration(); + $configuration = $migration->getDestinationConfiguration(); + $entity_types = NestedArray::getValue($configuration, ['content_translation_update_definitions']); + if ($entity_types) { + $entity_types = array_intersect_key($this->entityManager->getDefinitions(), array_flip($entity_types)); + $this->updateDefinitions($entity_types); + } + } + + /** * {@inheritdoc} */ public static function getSubscribedEvents() { $events[ConfigEvents::IMPORT][] = ['onConfigImporterImport', 60]; + if (class_exists('\Drupal\migrate\Event\MigrateEvents')) { + $events[MigrateEvents::POST_IMPORT][] = ['onMigrateImport']; + } return $events; } diff --git a/core/modules/language/migration_templates/d6_language_content_settings.yml b/core/modules/language/migration_templates/d6_language_content_settings.yml index e5dc750..3bf9078 100644 --- a/core/modules/language/migration_templates/d6_language_content_settings.yml +++ b/core/modules/language/migration_templates/d6_language_content_settings.yml @@ -1,5 +1,6 @@ id: d6_language_content_settings label: Drupal 6 language content settings + migration_tags: - Drupal 6 source: @@ -39,6 +40,8 @@ process: 2: true destination: plugin: entity:language_content_settings + content_translation_update_definitions: + - node migration_dependencies: required: - d6_node_type diff --git a/core/modules/language/migration_templates/d7_language_content_settings.yml b/core/modules/language/migration_templates/d7_language_content_settings.yml index cbe935a..09437fa 100644 --- a/core/modules/language/migration_templates/d7_language_content_settings.yml +++ b/core/modules/language/migration_templates/d7_language_content_settings.yml @@ -39,6 +39,8 @@ process: 2: true destination: plugin: entity:language_content_settings + content_translation_update_definitions: + - node migration_dependencies: required: - d7_node_type diff --git a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php index f4f63ae..fdcb26e 100644 --- a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php +++ b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php @@ -266,6 +266,14 @@ class MigrateUpgradeForm extends ConfirmFormBase { 'source_module' => 'image', 'destination_module' => 'image', ], + 'd6_language_content_settings' => [ + 'source_module' => 'locale', + 'destination_module' => 'language', + ], + 'd7_language_content_settings' => [ + 'source_module' => 'locale', + 'destination_module' => 'language', + ], 'd7_language_negotiation_settings' => [ 'source_module' => 'locale', 'destination_module' => 'language', diff --git a/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php index bbd5e97..c852375 100644 --- a/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php +++ b/core/modules/migrate_drupal_ui/src/Tests/d6/MigrateUpgrade6Test.php @@ -47,6 +47,7 @@ protected function getEntityCounts() { 'file' => 7, 'filter_format' => 7, 'image_style' => 5, + 'language_content_settings' => 2, 'migration' => 105, 'node' => 9, 'node_type' => 11,