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
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.