Skip to content

Instantly share code, notes, and snippets.

@DuaelFr
Last active May 29, 2018 00:31
Show Gist options
  • Save DuaelFr/485feccad6d8d759c35f to your computer and use it in GitHub Desktop.
Save DuaelFr/485feccad6d8d759c35f to your computer and use it in GitHub Desktop.
Drupal 8 : all menu items always visible
<?php
// File name : my_module/src/Menu/MenuLinkTree.php
/**
* @file
* Contains \Drupal\my_module\Menu\MenuLinkTree.
*/
namespace Drupal\my_module\Menu;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Menu\MenuLinkTree as MenuLinkTreeCore;
/**
* Override \Drupal\Core\Menu\MenuLinkTree.
*
* @see \Drupal\my_module\MyModuleServiceProvider::alter()
*/
class MenuLinkTree extends MenuLinkTreeCore {
/**
* {@inheritdoc}
*/
protected function createInstances(array $data_tree) {
$tree = parent::createInstances($data_tree);
foreach ($tree as $key => $element) {
$tree[$key]->access = AccessResult::allowed();
}
return $tree;
}
}
<?php
// File name : my_module/src/MyModuleServiceProvider.php
/**
* @file
* Contains \Drupal\my_module\MyModuleServiceProvider.
*/
namespace Drupal\my_module;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\DependencyInjection\ServiceProviderBase;
/**
* Class MyModuleServiceProvider.
*/
class MyModuleServiceProvider extends ServiceProviderBase {
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container) {
$definition = $container->getDefinition('menu.link_tree');
$definition->setClass('Drupal\my_module\Menu\MenuLinkTree');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment