public SystemManager::getAdminBlock(MenuLinkInterface $instance)
Provide a single block on the administration overview page.
Parameters
\Drupal\Core\Menu\MenuLinkInterface $instance: The menu item to be displayed.
Return value
array An array of menu items, as expected by admin-block-content.html.twig.
File
- core/modules/system/src/SystemManager.php, line 184
Class
- SystemManager
- System Manager Service.
Namespace
Drupal\system
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public function getAdminBlock(MenuLinkInterface $instance ) { $content = array (); // Only find the children of this link. $link_id = $instance ->getPluginId(); $parameters = new MenuTreeParameters(); $parameters ->setRoot( $link_id )->excludeRoot()->setTopLevelOnly()->onlyEnabledLinks(); $tree = $this ->menuTree->load(NULL, $parameters ); $manipulators = array ( array ( 'callable' => 'menu.default_tree_manipulators:checkAccess' ), array ( 'callable' => 'menu.default_tree_manipulators:generateIndexAndSort' ), ); $tree = $this ->menuTree->transform( $tree , $manipulators ); foreach ( $tree as $key => $element ) { // Only render accessible links. if (! $element ->access->isAllowed()) { // @todo Bubble cacheability metadata of both accessible and // inaccessible links. Currently made impossible by the way admin // blocks are rendered. continue ; } /** @var $link \Drupal\Core\Menu\MenuLinkInterface */ $link = $element ->link; $content [ $key ][ 'title' ] = $link ->getTitle(); $content [ $key ][ 'options' ] = $link ->getOptions(); $content [ $key ][ 'description' ] = $link ->getDescription(); $content [ $key ][ 'url' ] = $link ->getUrlObject(); } ksort( $content ); return $content ; } |
Please login to continue.