diff -u b/core/modules/migrate_drupal/migrate_drupal.module b/core/modules/migrate_drupal/migrate_drupal.module --- b/core/modules/migrate_drupal/migrate_drupal.module +++ b/core/modules/migrate_drupal/migrate_drupal.module @@ -98,7 +98,7 @@ if (_isMultilingualSource($definitions)) { foreach ($definitions as &$definition) { if (!preg_match('/d([67])_(node|node_translation|node_revision)($|:.*)/', $definition['id'])) { - $properties = ['destination', 'process', 'migration_dependencies']; + $properties = ['destination', 'migration_dependencies']; foreach ($properties as $property) { if (isset($definition[$property])) { array_walk_recursive($definition[$property], function (&$value) { @@ -110,49 +110,93 @@ } } } + // Pipeline does not extract the migration_lookup return value. if (preg_match('/d6_term_node($|:.*)/', $definition['id'])) { + $tmp = $definition['process']['nid'][0]['migration']; + $definitions['process']['nid'][0]['migration'] = _insert_migration($tmp); $definition['process']['nid'][2] = [ 'plugin' => 'node_master_node_lookup', ]; } + // Pipeline does not extract the migration_lookup return value. if (preg_match('/d6_term_node_revision($|:.*)/', $definition['id'])) { + $tmp = $definition['process']['vid'][0]['migration']; + $definition['process']['vid'][0]['migration'] = _insert_migration($tmp); $definition['process']['nid'][2] = [ 'plugin' => 'node_master_node_revision_lookup', ]; } + // Pipeline does not extract the migration_lookup return value. if (preg_match('/d6_term_node_translation($|:.*)/', $definition['id'])) { + $tmp = $definition['process']['dest_nid'][0]['migration']; + $definition['process']['dest_nid'][0]['migration'] = _insert_migration($tmp); $definition['process']['dest_nid'][2] = [ 'plugin' => 'node_master_node_translation_lookup', ]; } } + // Pipeline does not extract the migration_lookup return value. if (isset($definitions['d6_comment'])) { + $tmp = $definitions['d6_comment']['process']['entity_id'][0]['migration']; + $definitions['d6_comment']['process']['entity_id'][0]['migration'] = _insert_migration($tmp); $definitions['d6_comment']['process']['entity_id'][2] = [ 'plugin' => 'node_master_node_lookup', ]; } + // Pipeline does not extract the migration_lookup return value. if (isset($definitions['d6_url_alias'])) { + $tmp = $definitions['d6_url_alias']['process']['node_translation'][2]['migration']; + $definitions['d6_url_alias']['process']['node_translation'][2]['migration'] = _insert_migration($tmp); $definitions['d6_url_alias']['process']['node_translation'][3] = [ 'plugin' => 'node_master_node_translation_lookup', ]; } + // Pipeline does not extract the migration_lookup return value. if (isset($definitions['d7_comment'])) { + $tmp = $definitions['d7_comment']['process']['entity_id'][0]['migration']; + $definitions['d7_comment']['process']['entity_id'][0]['migration'] = _insert_migration($tmp); $definitions['d7_comment']['process']['entity_id'][2] = [ 'plugin' => 'node_master_node_lookup', ]; } + // Pipeline does not extract the migration_lookup return value. if (isset($definitions['d7_url_alias'])) { + $tmp = $definitions['d7_url_alias']['process']['node_translation'][2]['migration']; + $definitions['d7_url_alias']['process']['node_translation'][2]['migration'] = _insert_migration($tmp); $definitions['d7_url_alias']['process']['node_translation'][3] = [ 'plugin' => 'node_master_node_translation_lookup', ]; } + // Pipeline does not extract the migration_lookup return value. if (isset($definitions['statistics_node_counter'])) { + $tmp = $definitions['statistics_node_counter']['process']['nid'][0]['migration']; + $definitions['statistics_node_counter']['process']['nid'][0]['migration'] = _insert_migration($tmp); $definitions['statistics_node_counter']['process']['nid'][2] = [ 'plugin' => 'node_master_node_lookup', ]; } + // Pipeline extracts the first item of the migration_lookup return value. + if (isset($definitions['node_translation_menu_links'])) { + $tmp = $definitions['node_translation_menu_links']['process']['new_nid'][4]['migration']; + $definitions['node_translation_menu_links']['process']['new_nid'][4]['migration'] = _insert_migration($tmp); + } + } +} + +/** + * Add dN_node_master to the migrations array of a migration_lookup plugin. + */ +function _insert_migration($migrations) { + if (!is_array($migrations)) { + $migrations = [$migrations]; + } + $new_migration_list = []; + foreach ($migrations as $migration) { + $tmp = substr($migration, 0, 2) . '_node_master'; + array_unshift($new_migration_list, $tmp, $migration); } + return array_unique($new_migration_list); } /** diff -u b/core/modules/migrate_drupal/tests/fixtures/drupal6_noI18n.php b/core/modules/migrate_drupal/tests/fixtures/drupal6.php --- b/core/modules/migrate_drupal/tests/fixtures/drupal6_noI18n.php +++ b/core/modules/migrate_drupal/tests/fixtures/drupal6.php @@ -47331,7 +47331,7 @@ 'name' => 'i18n', 'type' => 'module', 'owner' => '', - 'status' => '0', + 'status' => '1', 'throttle' => '0', 'bootstrap' => '1', 'schema_version' => '9', diff -u b/core/modules/migrate_drupal/tests/fixtures/drupal7_noI18n.php b/core/modules/migrate_drupal/tests/fixtures/drupal7.php --- b/core/modules/migrate_drupal/tests/fixtures/drupal7_noI18n.php +++ b/core/modules/migrate_drupal/tests/fixtures/drupal7.php @@ -19163,16 +19163,8 @@ 'i18n_status' => '0', )) ->values(array( - 'lid' => '85', - 'translation' => 'fr - VocabLocalized', - 'language' => 'fr', - 'plid' => '0', - 'plural' => '0', - 'i18n_status' => '0', -)) -->values(array( - 'lid' => '86', - 'translation' => 'fr - Vocabulary localize option', + 'lid' => '87', + 'translation' => 'fr - VocabFixed', 'language' => 'fr', 'plid' => '0', 'plural' => '0', @@ -19180,7 +19172,7 @@ )) ->values(array( 'lid' => '89', - 'translation' => 'fr - VocabFixed', + 'translation' => 'fr - VocabLocalized', 'language' => 'fr', 'plid' => '0', 'plural' => '0', @@ -19188,39 +19180,7 @@ )) ->values(array( 'lid' => '90', - 'translation' => 'fr - Vocabulary fixed option', - 'language' => 'fr', - 'plid' => '0', - 'plural' => '0', - 'i18n_status' => '0', -)) -->values(array( - 'lid' => '91', - 'translation' => 'fr - Jupiter Station', - 'language' => 'fr', - 'plid' => '0', - 'plural' => '0', - 'i18n_status' => '0', -)) -->values(array( - 'lid' => '92', - 'translation' => 'fr - Holographic research.', - 'language' => 'fr', - 'plid' => '0', - 'plural' => '0', - 'i18n_status' => '0', -)) -->values(array( - 'lid' => '93', - 'translation' => 'fr - DS9', - 'language' => 'fr', - 'plid' => '0', - 'plural' => '0', - 'i18n_status' => '0', -)) -->values(array( - 'lid' => '94', - 'translation' => 'Terok Nor', + 'translation' => 'fr - Vocabulary localize option', 'language' => 'fr', 'plid' => '0', 'plural' => '0', @@ -19240,7 +19200,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', - 'i18n_status' => '0', + 'i18n_status' => '1', )) ->values(array( 'lid' => '163', @@ -19256,7 +19216,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', - 'i18n_status' => '0', + 'i18n_status' => '1', )) ->values(array( 'lid' => '684', @@ -19264,7 +19224,7 @@ 'language' => 'fr', 'plid' => '0', 'plural' => '0', - 'i18n_status' => '0', + 'i18n_status' => '1', )) ->values(array( 'lid' => '761', @@ -19355,23 +19315,23 @@ 'i18n_status' => '0', )) ->values(array( - 'lid' => '687', - 'translation' => 'is - Off', + 'lid' => '89', + 'translation' => 'is - VocabLocalized', 'language' => 'is', 'plid' => '0', 'plural' => '0', 'i18n_status' => '0', )) ->values(array( - 'lid' => '688', - 'translation' => 'is - 1', + 'lid' => '90', + 'translation' => 'is - Vocabulary localize option', 'language' => 'is', 'plid' => '0', 'plural' => '0', 'i18n_status' => '0', )) ->values(array( - 'lid' => '87', + 'lid' => '91', 'translation' => 'is - VocabTranslate', 'language' => 'is', 'plid' => '0', @@ -19379,7 +19339,7 @@ 'i18n_status' => '0', )) ->values(array( - 'lid' => '88', + 'lid' => '92', 'translation' => 'is - Vocabulary translate option', 'language' => 'is', 'plid' => '0', @@ -19387,48 +19347,56 @@ 'i18n_status' => '0', )) ->values(array( - 'lid' => '93', - 'translation' => 'is - DS9', + 'lid' => '95', + 'translation' => 'is - Some helpful text.', 'language' => 'is', 'plid' => '0', 'plural' => '0', 'i18n_status' => '0', )) ->values(array( - 'lid' => '94', - 'translation' => 'is - Terok Nor', + 'lid' => '96', + 'translation' => 'is - Email', 'language' => 'is', 'plid' => '0', 'plural' => '0', 'i18n_status' => '0', )) ->values(array( - 'lid' => '95', - 'translation' => 'is - Some helpful text.', + 'lid' => '97', + 'translation' => 'is - The email help text.', 'language' => 'is', 'plid' => '0', 'plural' => '0', 'i18n_status' => '0', )) ->values(array( - 'lid' => '96', - 'translation' => 'is - Email', + 'lid' => '128', + 'translation' => 'is - Term Reference', 'language' => 'is', 'plid' => '0', 'plural' => '0', 'i18n_status' => '0', )) ->values(array( - 'lid' => '97', - 'translation' => 'is - The email help text.', + 'lid' => '687', + 'translation' => 'is - Off', 'language' => 'is', 'plid' => '0', 'plural' => '0', 'i18n_status' => '0', )) ->values(array( - 'lid' => '128', - 'translation' => 'is - Term Reference', + 'lid' => '688', + 'translation' => 'is - 1', + 'language' => 'is', + 'plid' => '0', + 'plural' => '0', + 'i18n_status' => '0', +)) +->values(array( + 'lid' => '758', + 'translation' => 'is field - vocab_localize', 'language' => 'is', 'plid' => '0', 'plural' => '0', @@ -53148,7 +53116,7 @@ 'name' => 'i18n', 'type' => 'module', 'owner' => '', - 'status' => '0', + 'status' => '1', 'bootstrap' => '1', 'schema_version' => '7001', 'weight' => '10',