public LocalTaskManager::getLocalTasks($route_name, $level = 0)
Collects the local tasks (tabs) for the current route.
Parameters
string $route_name: The route for which to make renderable local tasks.
int $level: The level of tasks you ask for. Primary tasks are 0, secondary are 1.
Return value
array An array containing
- tabs: Local tasks render array for the requested level.
- route_name: The route name for the current page used to collect the local tasks.
Overrides LocalTaskManagerInterface::getLocalTasks
See also
File
- core/lib/Drupal/Core/Menu/LocalTaskManager.php, line 345
Class
- LocalTaskManager
- Provides the default local task manager using YML as primary definition.
Namespace
Drupal\Core\Menu
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 32 33 34 35 36 37 38 | public function getLocalTasks( $route_name , $level = 0) { if (!isset( $this ->taskData[ $route_name ])) { $cacheability = new CacheableMetadata(); $cacheability ->addCacheContexts([ 'route' ]); // Look for route-based tabs. $this ->taskData[ $route_name ] = [ 'tabs' => [], 'cacheability' => $cacheability , ]; if (! $this ->requestStack->getCurrentRequest()->attributes->has( 'exception' )) { // Safe to build tasks only when no exceptions raised. $data = []; $local_tasks = $this ->getTasksBuild( $route_name , $cacheability ); foreach ( $local_tasks as $tab_level => $items ) { $data [ $tab_level ] = empty ( $data [ $tab_level ]) ? $items : array_merge ( $data [ $tab_level ], $items ); } $this ->taskData[ $route_name ][ 'tabs' ] = $data ; // Allow modules to alter local tasks. $this ->moduleHandler->alter( 'menu_local_tasks' , $this ->taskData[ $route_name ], $route_name , $cacheability ); $this ->taskData[ $route_name ][ 'cacheability' ] = $cacheability ; } } if (isset( $this ->taskData[ $route_name ][ 'tabs' ][ $level ])) { return [ 'tabs' => $this ->taskData[ $route_name ][ 'tabs' ][ $level ], 'route_name' => $route_name , 'cacheability' => $this ->taskData[ $route_name ][ 'cacheability' ], ]; } return [ 'tabs' => [], 'route_name' => $route_name , 'cacheability' => $this ->taskData[ $route_name ][ 'cacheability' ], ]; } |
Please login to continue.