From 86a1eb51a3297997bcd04e227c1977be928fedd6 Mon Sep 17 00:00:00 2001 From: Chandan Singh <7278-chandu7929@users.noreply.drupalcode.org> Date: Mon, 23 Sep 2024 20:47:02 +0000 Subject: [PATCH] Issue #3431601: Automated Drupal 11 compatibility fixes for layout_builder_styles --- layout_builder_styles.info.yml | 2 +- layout_builder_styles.module | 3 ++- .../BlockComponentRenderArraySubscriber.php | 2 +- src/Form/LayoutBuilderStyleForm.php | 9 ++++++++- .../Functional/LayoutBuilderStyleRestrictionsTest.php | 10 ++++++++-- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/layout_builder_styles.info.yml b/layout_builder_styles.info.yml index 170cdae..0e257f0 100644 --- a/layout_builder_styles.info.yml +++ b/layout_builder_styles.info.yml @@ -1,6 +1,6 @@ name: Layout Builder Styles description: Apply styles to blocks in Layout Builder. -core_version_requirement: ^8.7.7 || ^9 || ^10 +core_version_requirement: ^8.7.7 || ^9 || ^10 || ^11 type: module package: Layout Builder dependencies: diff --git a/layout_builder_styles.module b/layout_builder_styles.module index 99d83f1..08f7008 100644 --- a/layout_builder_styles.module +++ b/layout_builder_styles.module @@ -122,6 +122,7 @@ function _layout_builder_styles_retrieve_by_type($type) { $query = \Drupal::entityTypeManager() ->getStorage('layout_builder_style') ->getQuery() + ->accessCheck(FALSE) ->condition('type', $type) ->sort('weight', 'ASC'); $ids = $query->execute(); @@ -172,7 +173,7 @@ function _layout_builder_styles_add_style_selection_form_elements(array &$form, // Import all groups, sorted by weight. $group_storage = \Drupal::entityTypeManager()->getStorage('layout_builder_style_group'); - $query = $group_storage->getQuery(); + $query = $group_storage->getQuery()->accessCheck(FALSE); $query->sort('weight', 'ASC'); $groups = $query->execute(); diff --git a/src/EventSubscriber/BlockComponentRenderArraySubscriber.php b/src/EventSubscriber/BlockComponentRenderArraySubscriber.php index 842b00b..0f6165e 100644 --- a/src/EventSubscriber/BlockComponentRenderArraySubscriber.php +++ b/src/EventSubscriber/BlockComponentRenderArraySubscriber.php @@ -43,7 +43,7 @@ class BlockComponentRenderArraySubscriber implements EventSubscriberInterface { /** * {@inheritdoc} */ - public static function getSubscribedEvents() { + public static function getSubscribedEvents(): array { // Layout Builder also subscribes to this event to build the initial render // array. We use a higher weight so that we execute after it. $events[LayoutBuilderEvents::SECTION_COMPONENT_BUILD_RENDER_ARRAY] = [ diff --git a/src/Form/LayoutBuilderStyleForm.php b/src/Form/LayoutBuilderStyleForm.php index ae839ed..c911463 100644 --- a/src/Form/LayoutBuilderStyleForm.php +++ b/src/Form/LayoutBuilderStyleForm.php @@ -153,8 +153,15 @@ class LayoutBuilderStyleForm extends EntityForm implements ContainerInjectionInt $blockDefinitions = $this->blockManager->getDefinitions(); $blockDefinitions = $this->blockManager->getGroupedDefinitions($blockDefinitions); + // As per CR - https://www.drupal.org/node/3320855 + // changed the definition from custom to content. // Remove individual reusable blocks from list. - unset($blockDefinitions['Custom']); + if (version_compare(\Drupal::VERSION, '10.1.0', '>=')) { + unset($blockDefinitions['Content block']); + } + else { + unset($blockDefinitions['Custom']); + } if (isset($blockDefinitions['Inline blocks'])) { // Relabel the inline block type listing as generic "Custom block types". diff --git a/tests/src/Functional/LayoutBuilderStyleRestrictionsTest.php b/tests/src/Functional/LayoutBuilderStyleRestrictionsTest.php index 2bd48ee..f942e35 100644 --- a/tests/src/Functional/LayoutBuilderStyleRestrictionsTest.php +++ b/tests/src/Functional/LayoutBuilderStyleRestrictionsTest.php @@ -150,6 +150,12 @@ class LayoutBuilderStyleRestrictionsTest extends BrowserTestBase { public function testBlockRestrictions() { $assert_session = $this->assertSession(); $page = $this->getSession()->getPage(); + $block_type_action_label = 'Create custom block'; + // As per CR - https://www.drupal.org/node/3320855 + // changed the action label from custom to content. + if (version_compare(\Drupal::VERSION, '10.1.0', '>=')) { + $block_type_action_label = 'Create content block'; + } $block_node = $this->createNode([ 'type' => 'bundle_with_section_field', @@ -291,7 +297,7 @@ class LayoutBuilderStyleRestrictionsTest extends BrowserTestBase { $this->drupalGet($block_node->toUrl()); $page->clickLink('Layout'); $page->clickLink('Add block'); - $page->clickLink('Create custom block'); + $page->clickLink($block_type_action_label); $page->clickLink('Basic'); // Basic block can use "Unrestricted" and "Basic only". $assert_session->elementExists('css', 'select#edit-layout-builder-style-group option[value="basic_only"]'); @@ -303,7 +309,7 @@ class LayoutBuilderStyleRestrictionsTest extends BrowserTestBase { $this->drupalGet($block_node->toUrl()); $page->clickLink('Layout'); $page->clickLink('Add block'); - $page->clickLink('Create custom block'); + $page->clickLink($block_type_action_label); $page->clickLink('Alternate'); // Alternate block can use "Unrestricted" and "Alternate only". $assert_session->elementNotExists('css', 'select#edit-layout-builder-style-group option[value="basic_only"]'); -- GitLab