diff --git a/core/modules/block/migration_templates/d6_block.yml b/core/modules/block/migration_templates/d6_block.yml index 6ab2a4cc36c..8be753974d0 100644 --- a/core/modules/block/migration_templates/d6_block.yml +++ b/core/modules/block/migration_templates/d6_block.yml @@ -74,7 +74,6 @@ process: help: help header: header footer: footer - label: title weight: weight settings: plugin: block_settings @@ -82,6 +81,7 @@ process: - '@plugin' - delta - settings + - title visibility: plugin: block_visibility source: diff --git a/core/modules/block/migration_templates/d7_block.yml b/core/modules/block/migration_templates/d7_block.yml index 628bf71583b..32e8f5d2a72 100755 --- a/core/modules/block/migration_templates/d7_block.yml +++ b/core/modules/block/migration_templates/d7_block.yml @@ -75,7 +75,6 @@ process: help: help header: header footer: footer - label: title weight: weight settings: plugin: block_settings @@ -83,6 +82,7 @@ process: - '@plugin' - delta - settings + - title visibility: plugin: block_visibility source: diff --git a/core/modules/block/src/Plugin/migrate/process/BlockSettings.php b/core/modules/block/src/Plugin/migrate/process/BlockSettings.php index ac36054dadb..818ef490fc0 100644 --- a/core/modules/block/src/Plugin/migrate/process/BlockSettings.php +++ b/core/modules/block/src/Plugin/migrate/process/BlockSettings.php @@ -7,6 +7,7 @@ namespace Drupal\block\Plugin\migrate\process; +use Drupal\block\BlockInterface; use Drupal\migrate\MigrateExecutableInterface; use Drupal\migrate\ProcessPluginBase; use Drupal\migrate\Row; @@ -24,8 +25,15 @@ class BlockSettings extends ProcessPluginBase { * Set the block configuration. */ public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) { - list($plugin, $delta, $old_settings) = $value; + list($plugin, $delta, $old_settings, $title) = $value; $settings = array(); + $settings['label'] = $title; + if ($title) { + $settings['label_display'] = BlockInterface::BLOCK_LABEL_VISIBLE; + } + else { + $settings['label_display'] = '0'; + } switch ($plugin) { case 'aggregator_feed_block': list(, $id) = explode('-', $delta); diff --git a/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php b/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php index b5d4fa51955..874723f6a01 100644 --- a/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php +++ b/core/modules/block/src/Tests/Migrate/d6/MigrateBlockTest.php @@ -69,14 +69,22 @@ class MigrateBlockTest extends MigrateDrupal6TestBase { * The theme. * @param string $weight * The block weight. + * @param string $label + * The block label. + * @param string $label_display + * The block label display setting. */ - public function assertEntity($id, $visibility, $region, $theme, $weight) { + public function assertEntity($id, $visibility, $region, $theme, $weight, $label, $label_display) { $block = Block::load($id); $this->assertTrue($block instanceof Block); $this->assertIdentical($visibility, $block->getVisibility()); $this->assertIdentical($region, $block->getRegion()); $this->assertIdentical($theme, $block->getTheme()); $this->assertIdentical($weight, $block->getWeight()); + + $config = $this->config('block.block.' . $id); + $this->assertIdentical($label, $config->get('settings.label')); + $this->assertIdentical($label_display, $config->get('settings.label_display')); } /** @@ -91,10 +99,10 @@ class MigrateBlockTest extends MigrateDrupal6TestBase { $visibility['request_path']['id'] = 'request_path'; $visibility['request_path']['negate'] = TRUE; $visibility['request_path']['pages'] = "\n/node/1\n/blog/*"; - $this->assertEntity('user', $visibility, 'sidebar_first', 'bartik', 0); + $this->assertEntity('user', $visibility, 'sidebar_first', 'bartik', 0, '', '0'); $visibility = []; - $this->assertEntity('user_1', $visibility, 'sidebar_first', 'bartik', 0); + $this->assertEntity('user_1', $visibility, 'sidebar_first', 'bartik', 0, '', '0'); $visibility['user_role']['id'] = 'user_role'; $roles['authenticated'] = 'authenticated'; @@ -102,7 +110,7 @@ class MigrateBlockTest extends MigrateDrupal6TestBase { $context_mapping['user'] = '@user.current_user_context:current_user'; $visibility['user_role']['context_mapping'] = $context_mapping; $visibility['user_role']['negate'] = FALSE; - $this->assertEntity('user_2', $visibility, 'sidebar_second', 'bartik', -9); + $this->assertEntity('user_2', $visibility, 'sidebar_second', 'bartik', -9, '', '0'); $visibility = []; $visibility['user_role']['id'] = 'user_role'; @@ -112,32 +120,32 @@ class MigrateBlockTest extends MigrateDrupal6TestBase { $context_mapping['user'] = '@user.current_user_context:current_user'; $visibility['user_role']['context_mapping'] = $context_mapping; $visibility['user_role']['negate'] = FALSE; - $this->assertEntity('user_3', $visibility, 'sidebar_second', 'bartik', -6); + $this->assertEntity('user_3', $visibility, 'sidebar_second', 'bartik', -6, '', '0'); // Check system block $visibility = []; $visibility['request_path']['id'] = 'request_path'; $visibility['request_path']['negate'] = TRUE; $visibility['request_path']['pages'] = '/node/1'; - $this->assertEntity('system', $visibility, 'footer', 'bartik', -5); + $this->assertEntity('system', $visibility, 'footer', 'bartik', -5, '', '0'); // Check menu blocks $visibility = []; - $this->assertEntity('menu', $visibility, 'header', 'bartik', -5); + $this->assertEntity('menu', $visibility, 'header', 'bartik', -5, '', '0'); // Check custom blocks $visibility['request_path']['id'] = 'request_path'; $visibility['request_path']['negate'] = FALSE; $visibility['request_path']['pages'] = ''; - $this->assertEntity('block', $visibility, 'content', 'bartik', 0); + $this->assertEntity('block', $visibility, 'content', 'bartik', 0, 'Static Block', 'visible'); $visibility['request_path']['id'] = 'request_path'; $visibility['request_path']['negate'] = FALSE; $visibility['request_path']['pages'] = '/node'; - $this->assertEntity('block_1', $visibility, 'sidebar_second', 'bluemarine', -4); + $this->assertEntity('block_1', $visibility, 'sidebar_second', 'bluemarine', -4, 'Another Static Block', 'visible'); $visibility = []; - $this->assertEntity('block_2', $visibility, 'right', 'test_theme', -7); + $this->assertEntity('block_2', $visibility, 'right', 'test_theme', -7, '', '0'); // Custom block with php code is not migrated. $block = Block::load('block_3'); diff --git a/core/modules/block/src/Tests/Migrate/d7/MigrateBlockTest.php b/core/modules/block/src/Tests/Migrate/d7/MigrateBlockTest.php index cecf4680d49..f14f3fcf6ac 100644 --- a/core/modules/block/src/Tests/Migrate/d7/MigrateBlockTest.php +++ b/core/modules/block/src/Tests/Migrate/d7/MigrateBlockTest.php @@ -77,8 +77,13 @@ class MigrateBlockTest extends MigrateDrupal7TestBase { * The theme. * @param string $weight * The block weight. + * @param string $label + * The block label. + * @param string $label_display + * The block label display setting. + */ - public function assertEntity($id, $plugin_id, array $roles, $pages, $region, $theme, $weight) { + public function assertEntity($id, $plugin_id, array $roles, $pages, $region, $theme, $weight, $label, $label_display) { $block = Block::load($id); $this->assertTrue($block instanceof Block); /** @var \Drupal\block\BlockInterface $block */ @@ -96,24 +101,28 @@ class MigrateBlockTest extends MigrateDrupal7TestBase { $this->assertIdentical($region, $block->getRegion()); $this->assertIdentical($theme, $block->getTheme()); $this->assertIdentical($weight, $block->getWeight()); + + $config = $this->config('block.block.' . $id); + $this->assertIdentical($label, $config->get('settings.label')); + $this->assertIdentical($label_display, $config->get('settings.label_display')); } /** * Tests the block migration. */ public function testBlockMigration() { - $this->assertEntity('bartik_system_main', 'system_main_block', [], '', 'content', 'bartik', 0); - $this->assertEntity('bartik_search_form', 'search_form_block', [], '', 'sidebar_first', 'bartik', -1); - $this->assertEntity('bartik_user_login', 'user_login_block', [], '', 'sidebar_first', 'bartik', 0); - $this->assertEntity('bartik_system_powered-by', 'system_powered_by_block', [], '', 'footer', 'bartik', 10); - $this->assertEntity('seven_system_main', 'system_main_block', [], '', 'content', 'seven', 0); - $this->assertEntity('seven_user_login', 'user_login_block', [], '', 'content', 'seven', 10); + $this->assertEntity('bartik_system_main', 'system_main_block', [], '', 'content', 'bartik', 0, '', '0'); + $this->assertEntity('bartik_search_form', 'search_form_block', [], '', 'sidebar_first', 'bartik', -1, '', '0'); + $this->assertEntity('bartik_user_login', 'user_login_block', [], '', 'sidebar_first', 'bartik', 0, '', '0'); + $this->assertEntity('bartik_system_powered-by', 'system_powered_by_block', [], '', 'footer', 'bartik', 10, '', '0'); + $this->assertEntity('seven_system_main', 'system_main_block', [], '', 'content', 'seven', 0, '', '0'); + $this->assertEntity('seven_user_login', 'user_login_block', [], '', 'content', 'seven', 10, '', '0'); // The d7_custom_block migration should have migrated a block containing a // mildly amusing limerick. We'll need its UUID to determine // bartik_block_1's plugin ID. $uuid = BlockContent::load(1)->uuid(); - $this->assertEntity('bartik_block_1', 'block_content:' . $uuid, ['authenticated'], '', 'highlighted', 'bartik', 0); + $this->assertEntity('bartik_block_1', 'block_content:' . $uuid, ['authenticated'], '', 'highlighted', 'bartik', 0, 'Mildly amusing limerick of the day', 'visible'); // Assert that disabled blocks (or enabled blocks whose plugin IDs could // be resolved) did not migrate.