Skip to content
Snippets Groups Projects
Commit 4f9ce1ec authored by catch's avatar catch
Browse files

Issue #3488768 by plopesc, m4olivei, atul_ghate: Menu blocks specific to...

Issue #3488768 by plopesc, m4olivei, atul_ghate: Menu blocks specific to Navigation are leaking into the Block layout UI

(cherry picked from commit f341fd00)
parent e61414b8
No related branches found
No related tags found
28 merge requests!12227Issue #3181946 by jonmcl, mglaman,!12079Issue #3523476 by matthiasm11: Add empty check on operator,!12024Fix: DocBlock comment for return value of Drupal\Core\Database\Connection::transactionManager(),!11974Draft: Issue #3495165 by catch, joeyroth, berdir, texas-bronius: Better warning...,!11934Issue #3520997: DefaultLazyPluginCollection unnecessarily instantiates plugins when sorting collection,!11887Issue #3520065: The migrate Row class API is incomplete,!11636Draft: Issue #3515643 by macsim: fieldNameExists method is inconsistent,!11515Issue #3480419 by mondrake, smustgrave, catch: Method...,!11380Issue #3490698 by catch, spokje: Bump MINIMUM_STABILITY back to 'stable' when...,!11281Use Drupal Core Leadership terminology in MAINTAINERS.txt,!11239Issue #3507548: Allow workspace changes listing to show all items, without a pager,!11238Fix issue #3051797,!11213Issue #3506743 by tomislav.matokovic: Increasing the color contrast for the navigation block title against the background of the navigation sidebar to at least 4.5:1,!11147Draft: Try to avoid manually setting required cache contexts,!11108Issue #3490298 by nicxvan: Profiles can be missed in OOP hooks,!11093Drupal on MongoDB 11.1.x,!11017Issue #3502540: Add date filter for moderated content.,!11009Issue #3486972 migrate feed icon,!10999Cleaning up Taxonomy hooks and updating baseline.,!10977Issue #3501457: Fix path used in a A11y Test Admin,!10881Issue #3489329 by mfb, casey: symfony/http-foundation commit 32310ff breaks PathValidator,!10570Issue #3494197: Convert Twig engine hooks,!10567Issue #3494154: Index is not added if entity doesn't support revisions,!10548Revert "Issue #3478621 by catch, longwave, nicxvan: Add filecache to OOP hook attribute parsing",!10404Margin has been added,!10391Issue #3485117 by nexusnovaz, godotislate, nicxvan: Fix return type on...,!10388Issue #3485117 by nexusnovaz, godotislate, nicxvan: Fix return type on...,!10376Issue #3485117 by nexusnovaz, godotislate, nicxvan: Fix return type on...
Pipeline #349790 passed
Pipeline: drupal

#349792

    ......@@ -154,27 +154,26 @@ public function pluginFilterLayoutLayoutBuilderAlter(array &$definitions, array
    */
    #[Hook('block_alter')]
    public function blockAlter(&$definitions) : void {
    // Hide Navigation specific blocks from the generic UI.
    $hidden = ['navigation_user', 'navigation_shortcuts', 'navigation_menu', 'navigation_link'];
    foreach ($hidden as $block_id) {
    if (isset($definitions[$block_id])) {
    $definitions[$block_id]['_block_ui_hidden'] = TRUE;
    }
    }
    array_walk($definitions, function (&$definition, $block_id) {
    [$base_plugin_id] = explode(PluginBase::DERIVATIVE_SEPARATOR, $block_id);
    // Add the allow_in_navigation attribute to those blocks valid for Navigation.
    // @todo Refactor to use actual block Attribute once
    // https://www.drupal.org/project/drupal/issues/3443882 is merged.
    array_walk($definitions, function (&$definition, $block_id) {
    $allow_in_navigation = [
    'navigation_user',
    'navigation_shortcuts',
    'navigation_menu',
    ];
    [$base_plugin_id] = explode(PluginBase::DERIVATIVE_SEPARATOR, $block_id);
    if (in_array($base_plugin_id, $allow_in_navigation, TRUE)) {
    $definition['allow_in_navigation'] = TRUE;
    }
    // Hide Navigation specific blocks from the generic UI.
    $hidden = ['navigation_user', 'navigation_shortcuts', 'navigation_menu', 'navigation_link'];
    if (in_array($base_plugin_id, $hidden, TRUE)) {
    $definition['_block_ui_hidden'] = TRUE;
    }
    });
    }
    ......
    ......@@ -16,7 +16,7 @@ class NavigationSafeBlockDefinitionTest extends BrowserTestBase {
    /**
    * {@inheritdoc}
    */
    protected static $modules = ['navigation', 'navigation_test'];
    protected static $modules = ['navigation', 'navigation_test', 'block'];
    /**
    * {@inheritdoc}
    ......@@ -40,6 +40,7 @@ protected function setUp(): void {
    $this->adminUser = $this->drupalCreateUser([
    'configure navigation layout',
    'access navigation',
    'administer blocks',
    ]);
    $this->drupalLogin($this->adminUser);
    ......@@ -73,4 +74,18 @@ public function testNavigationSafeBlockDefinition(): void {
    $this->assertSession()->linkNotExists('Navigation Shortcuts');
    }
    /**
    * Tests logic to exclude blocks in Block Layout UI.
    */
    public function testNavigationBlocksHiddenInBlockLayout(): void {
    $block_url = '/admin/structure/block';
    $this->drupalGet($block_url);
    $this->clickLink('Place block');
    $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_menu%3Aadmin/stark');
    $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_menu%3Acontent/stark');
    $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_shortcuts/stark');
    $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_user/stark');
    $this->assertSession()->linkByHrefNotExists('/admin/structure/block/add/navigation_link/stark');
    }
    }
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment