Loading core/modules/content_translation/migrations/d6_menu_links_localized.yml 0 → 100644 +69 −0 Original line number Diff line number Diff line id: d6_menu_links_localized label: Menu links localized migration_tags: - Drupal 6 - Content - Multilingual source: plugin: menu_link constants: bundle: menu_link_content process: skip_not_localized: plugin: skip_on_empty source: is_localized method: row id: mlid title: link_title description: description langcode: language menu_name: - plugin: migration_lookup # The menu migration is in the system module. migration: d6_menu source: menu_name - plugin: skip_on_empty method: row - plugin: static_map map: management: admin bypass: true 'link/uri': plugin: link_uri source: link_path 'link/options': plugin: link_options source: options route: plugin: route source: - link_path - options route_name: '@route/route_name' route_parameters: '@route/route_parameters' url: '@route/url' options: '@route/options' external: external weight: weight expanded: expanded enabled: enabled parent: plugin: menu_link_parent source: - plid - '@menu_name' - parent_link_path changed: updated destination: plugin: entity:menu_link_content no_stub: true translations: true destination_module: content_translation migration_dependencies: required: - language - d6_language_content_menu_settings - d6_menu_links core/modules/menu_link_content/migrations/d6_menu_links.yml +8 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,14 @@ migration_tags: source: plugin: menu_link process: skip_localized: - plugin: callback callable: is_null source: is_localized - plugin: skip_on_empty method: row id: mlid title: link_title description: description Loading core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php +14 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,20 @@ public function prepareRow(Row $row) { $row->setSourceProperty('skip_translation', FALSE); } } // In Drupal 6 the language for the menu is in the options array. Set // property 'is_localized' so that the process pipeline can determine if // the menu link is localize or not. $row->setSourceProperty('is_localized', NULL); $default_language = $this->variableGet('language_default', (object) ['language' => 'und']); $default_language = $default_language->language; $options = unserialize($row->getSourceProperty('options')); if (isset($options['langcode'])) { if ($options['langcode'] != $default_language) { $row->setSourceProperty('language', $options['langcode']); $row->setSourceProperty('is_localized', 'localized'); } } $row->setSourceProperty('options', unserialize($row->getSourceProperty('options'))); $row->setSourceProperty('enabled', !$row->getSourceProperty('hidden')); $description = $row->getSourceProperty('options/attributes/title'); Loading core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkLocalizedTest.php 0 → 100644 +59 −0 Original line number Diff line number Diff line <?php namespace Drupal\Tests\menu_link_content\Kernel\Migrate\d6; use Drupal\Tests\menu_link_content\Kernel\Migrate\MigrateMenuLinkTestTrait; use Drupal\Tests\node\Kernel\Migrate\d6\MigrateNodeTestBase; use Drupal\Tests\user\Traits\UserCreationTrait; /** * Tests Menu link localized translation migration. * * @group migrate_drupal_6 */ class MigrateMenuLinkLocalizedTest extends MigrateNodeTestBase { use MigrateMenuLinkTestTrait; use UserCreationTrait; /** * {@inheritdoc} */ protected static $modules = [ 'content_translation', 'language', 'link', 'menu_link_content', 'menu_ui', ]; /** * {@inheritdoc} */ protected function setUp(): void { parent::setUp(); $this->setUpCurrentUser(); $this->installEntitySchema('menu_link_content'); $this->executeMigrations([ 'language', 'd6_language_content_menu_settings', 'd6_menu', 'd6_menu_links', 'd6_menu_links_localized', ]); } /** * Tests migration of menu link localized translations. */ public function testMenuLinkLocalized() { // A localized menu link. $this->assertEntity('463', 'fr', 'fr - Test 1', 'secondary-links', 'fr - Test menu link 1', TRUE, FALSE, [ 'attributes' => ['title' => 'fr - Test menu link 1'], 'langcode' => 'fr', 'alter' => TRUE, ], 'internal:/user/login', -49, 0); } } core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTest.php +0 −3 Original line number Diff line number Diff line Loading @@ -98,9 +98,6 @@ public function testMenuLinks() { $this->assertEntity('460', 'Le Vrai McCoy', 'primary-links', NULL, TRUE, FALSE, ['attributes' => ['title' => ''], 'alter' => TRUE], 'entity:node/10', 0); $this->assertEntity('461', 'Abantu zulu', 'primary-links', NULL, TRUE, FALSE, ['attributes' => ['title' => ''], 'alter' => TRUE], 'entity:node/12', 0); $this->assertEntity('462', 'The Zulu People', 'primary-links', NULL, TRUE, FALSE, ['attributes' => ['title' => ''], 'alter' => TRUE], 'entity:node/12', 0); // Test the migration of menu links translation. $this->assertEntity('463', 'fr - Test 1', 'secondary-links', 'fr - Test menu link 1', TRUE, FALSE, ['attributes' => ['title' => 'fr - Test menu link 1'], 'langcode' => 'fr', 'alter' => TRUE], 'internal:/user/login', -49); } } Loading
core/modules/content_translation/migrations/d6_menu_links_localized.yml 0 → 100644 +69 −0 Original line number Diff line number Diff line id: d6_menu_links_localized label: Menu links localized migration_tags: - Drupal 6 - Content - Multilingual source: plugin: menu_link constants: bundle: menu_link_content process: skip_not_localized: plugin: skip_on_empty source: is_localized method: row id: mlid title: link_title description: description langcode: language menu_name: - plugin: migration_lookup # The menu migration is in the system module. migration: d6_menu source: menu_name - plugin: skip_on_empty method: row - plugin: static_map map: management: admin bypass: true 'link/uri': plugin: link_uri source: link_path 'link/options': plugin: link_options source: options route: plugin: route source: - link_path - options route_name: '@route/route_name' route_parameters: '@route/route_parameters' url: '@route/url' options: '@route/options' external: external weight: weight expanded: expanded enabled: enabled parent: plugin: menu_link_parent source: - plid - '@menu_name' - parent_link_path changed: updated destination: plugin: entity:menu_link_content no_stub: true translations: true destination_module: content_translation migration_dependencies: required: - language - d6_language_content_menu_settings - d6_menu_links
core/modules/menu_link_content/migrations/d6_menu_links.yml +8 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,14 @@ migration_tags: source: plugin: menu_link process: skip_localized: - plugin: callback callable: is_null source: is_localized - plugin: skip_on_empty method: row id: mlid title: link_title description: description Loading
core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php +14 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,20 @@ public function prepareRow(Row $row) { $row->setSourceProperty('skip_translation', FALSE); } } // In Drupal 6 the language for the menu is in the options array. Set // property 'is_localized' so that the process pipeline can determine if // the menu link is localize or not. $row->setSourceProperty('is_localized', NULL); $default_language = $this->variableGet('language_default', (object) ['language' => 'und']); $default_language = $default_language->language; $options = unserialize($row->getSourceProperty('options')); if (isset($options['langcode'])) { if ($options['langcode'] != $default_language) { $row->setSourceProperty('language', $options['langcode']); $row->setSourceProperty('is_localized', 'localized'); } } $row->setSourceProperty('options', unserialize($row->getSourceProperty('options'))); $row->setSourceProperty('enabled', !$row->getSourceProperty('hidden')); $description = $row->getSourceProperty('options/attributes/title'); Loading
core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkLocalizedTest.php 0 → 100644 +59 −0 Original line number Diff line number Diff line <?php namespace Drupal\Tests\menu_link_content\Kernel\Migrate\d6; use Drupal\Tests\menu_link_content\Kernel\Migrate\MigrateMenuLinkTestTrait; use Drupal\Tests\node\Kernel\Migrate\d6\MigrateNodeTestBase; use Drupal\Tests\user\Traits\UserCreationTrait; /** * Tests Menu link localized translation migration. * * @group migrate_drupal_6 */ class MigrateMenuLinkLocalizedTest extends MigrateNodeTestBase { use MigrateMenuLinkTestTrait; use UserCreationTrait; /** * {@inheritdoc} */ protected static $modules = [ 'content_translation', 'language', 'link', 'menu_link_content', 'menu_ui', ]; /** * {@inheritdoc} */ protected function setUp(): void { parent::setUp(); $this->setUpCurrentUser(); $this->installEntitySchema('menu_link_content'); $this->executeMigrations([ 'language', 'd6_language_content_menu_settings', 'd6_menu', 'd6_menu_links', 'd6_menu_links_localized', ]); } /** * Tests migration of menu link localized translations. */ public function testMenuLinkLocalized() { // A localized menu link. $this->assertEntity('463', 'fr', 'fr - Test 1', 'secondary-links', 'fr - Test menu link 1', TRUE, FALSE, [ 'attributes' => ['title' => 'fr - Test menu link 1'], 'langcode' => 'fr', 'alter' => TRUE, ], 'internal:/user/login', -49, 0); } }
core/modules/menu_link_content/tests/src/Kernel/Migrate/d6/MigrateMenuLinkTest.php +0 −3 Original line number Diff line number Diff line Loading @@ -98,9 +98,6 @@ public function testMenuLinks() { $this->assertEntity('460', 'Le Vrai McCoy', 'primary-links', NULL, TRUE, FALSE, ['attributes' => ['title' => ''], 'alter' => TRUE], 'entity:node/10', 0); $this->assertEntity('461', 'Abantu zulu', 'primary-links', NULL, TRUE, FALSE, ['attributes' => ['title' => ''], 'alter' => TRUE], 'entity:node/12', 0); $this->assertEntity('462', 'The Zulu People', 'primary-links', NULL, TRUE, FALSE, ['attributes' => ['title' => ''], 'alter' => TRUE], 'entity:node/12', 0); // Test the migration of menu links translation. $this->assertEntity('463', 'fr - Test 1', 'secondary-links', 'fr - Test menu link 1', TRUE, FALSE, ['attributes' => ['title' => 'fr - Test menu link 1'], 'langcode' => 'fr', 'alter' => TRUE], 'internal:/user/login', -49); } }