diff --git a/core/modules/content_translation/migration_templates/d6_block_translation.yml b/core/modules/content_translation/migration_templates/d6_block_translation.yml index a6ebf3888d..7ba6a4b392 100644 --- a/core/modules/content_translation/migration_templates/d6_block_translation.yml +++ b/core/modules/content_translation/migration_templates/d6_block_translation.yml @@ -11,11 +11,15 @@ process: property: constants/dest_label translation: title id: - plugin: migration - migration: d6_block - source: - - module - - delta + - + plugin: migration_lookup + migration: d6_block + source: + - module + - delta + - + plugin: skip_on_empty + method: row plugin: - plugin: static_map diff --git a/core/modules/content_translation/src/Plugin/migrate/source/d6/BlockTranslation.php b/core/modules/content_translation/src/Plugin/migrate/source/d6/BlockTranslation.php index f37d89191a..9da34d1242 100644 --- a/core/modules/content_translation/src/Plugin/migrate/source/d6/BlockTranslation.php +++ b/core/modules/content_translation/src/Plugin/migrate/source/d6/BlockTranslation.php @@ -18,12 +18,15 @@ class BlockTranslation extends Block { * {@inheritdoc} */ public function query() { - $query = parent::query() + // Let the parent set the block table to use but do not use the parent query. + // Instead build a query so can use a left join to the selected block table. + parent::query(); + $query = $this->select('i18n_blocks', 'i18n') ->fields('i18n', ['ibid', 'module', 'delta', 'type', 'language']) - ->fields('b', ['bid', 'theme', 'title']); + ->fields('b', ['bid', 'module', 'delta', 'theme', 'title']); $query->addField('b', 'module', 'block_module'); $query->addField('b', 'delta', 'block_delta'); - $query->innerJoin('i18n_blocks', 'i18n', ('b.module = i18n.module AND b.delta = i18n.delta')); + $query->leftJoin($this->blockTable, 'b', ('b.module = i18n.module AND b.delta = i18n.delta')); return $query; } diff --git a/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php b/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php index d2da500dca..2612d928a8 100644 --- a/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php +++ b/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php @@ -53,7 +53,7 @@ protected function setUp() { * Tests the migration of block title translation. */ public function testBlockContentTranslation() { - $config = \Drupal::service('language_manager')->getLanguageConfigOverride('zu', 'block.block.user_1'); + $config = $this->container->get('language_manager')->getLanguageConfigOverride('zu', 'block.block.user_1'); $this->assertSame('zu - Test Title 02', $config->get('settings.label')); }