Skip to content
Snippets Groups Projects

Issue #3488768: Menu blocks specific to Navigation are leaking into the Block layout UI

Closed Issue #3488768: Menu blocks specific to Navigation are leaking into the Block layout UI
Closed Pablo López requested to merge issue/drupal-3488768:3488768-menu-blocks-specific into 11.x
2 files
+ 27
13
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -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;
}
}
// 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) {
[$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.
$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;
}
});
}
Loading