diff --git a/core/includes/menu.inc b/core/includes/menu.inc index f55f281730e926273bfb2225ce974bb9c341a4ce..7b586a5eefd5b845089f034005e64cb401a5853e 100644 --- a/core/includes/menu.inc +++ b/core/includes/menu.inc @@ -2106,7 +2106,8 @@ function _menu_get_legacy_tasks($router_item, &$data, &$root_path) { // MENU_IS_LOCAL_ACTION before checking. if (($item['type'] & MENU_IS_LOCAL_ACTION) == MENU_IS_LOCAL_ACTION) { // The item is an action, display it as such. - $actions_current[$link['href']] = array( + $key = isset($link['route_name']) ? $link['route_name'] : $link['href']; + $actions_current[$key] = array( '#theme' => 'menu_local_action', '#link' => $link, '#weight' => isset($link['weight']) ? $link['weight'] : NULL, @@ -2334,8 +2335,7 @@ function menu_get_local_actions() { $links = menu_local_tasks(); $route_name = Drupal::request()->attributes->get(RouteObjectInterface::ROUTE_NAME); $manager = \Drupal::service('plugin.manager.menu.local_action'); - $links['actions'] += $manager->getActionsForRoute($route_name); - return $links['actions']; + return $manager->getActionsForRoute($route_name) + $links['actions']; } /** diff --git a/core/modules/system/lib/Drupal/system/Tests/Menu/LocalActionTest.php b/core/modules/system/lib/Drupal/system/Tests/Menu/LocalActionTest.php index d8804dd4887f2ee7bf12d6fcfc5c0a449546ce9e..de61cb87fce4a7b02ed3d957681abee32bb8c07b 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Menu/LocalActionTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Menu/LocalActionTest.php @@ -37,8 +37,8 @@ public function testLocalAction() { $this->drupalGet('menu-test-local-action'); // Ensure that both menu and route based actions are shown. $this->assertLocalAction(array( - 'menu-test-local-action/dynamic-title' => 'My dynamic-title action', 'menu-test-local-action/hook_menu' => 'My hook_menu action', + 'menu-test-local-action/dynamic-title' => 'My dynamic-title action', 'menu-test-local-action/routing' => 'My YAML discovery action', 'menu-test-local-action/routing2' => 'Title override', ));