function navigation_plugin_filter_block__layout_builder_alter

Implements hook_plugin_filter_TYPE__CONSUMER_alter().

Curate the blocks available in the Layout Builder "Add Block" UI.

File

core/modules/navigation/navigation.module, line 169

Code

function navigation_plugin_filter_block__layout_builder_alter(array &$definitions, array $extra) {
  if (($extra['section_storage'] ?? NULL) instanceof NavigationSectionStorage) {
    // Remove all blocks other than the ones we support.
    $navigation_safe = [
      'navigation_user',
      'navigation_shortcuts',
      'navigation_menu',
    ];
    $definitions = array_filter($definitions, static function (array $definition, string $plugin_id) use ($navigation_safe) : bool {
      [$base_plugin_id] = explode(PluginBase::DERIVATIVE_SEPARATOR, $plugin_id);
      return in_array($base_plugin_id, $navigation_safe, TRUE);
    }, ARRAY_FILTER_USE_BOTH);
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.