diff --git a/core/modules/menu/lib/Drupal/menu/Controller/MenuController.php b/core/modules/menu/lib/Drupal/menu/Controller/MenuController.php index a2b69a8..f6e9cc9 100644 --- a/core/modules/menu/lib/Drupal/menu/Controller/MenuController.php +++ b/core/modules/menu/lib/Drupal/menu/Controller/MenuController.php @@ -7,9 +7,9 @@ namespace Drupal\menu\Controller; -use Drupal\Core\ControllerInterface; -use Drupal\Core\Entity\EntityManager; -use Drupal\system\Plugin\Core\Entity\Menu; +use Drupal\Core\Controller\ControllerInterface; +use Drupal\Core\Entity\EntityStorageControllerInterface; +use Drupal\system\MenuInterface; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; @@ -20,20 +20,20 @@ class MenuController implements ControllerInterface { /** - * The entity manager. + * The storage controller. * - * @var \Drupal\Core\Entity\EntityManager + * @var \Drupal\Core\Entity\EntityStorageControllerInterface */ - protected $entityManager; + protected $storageController; /** * Constructs a new MenuController. * - * @param \Drupal\Core\Entity\EntityManager $entity_manager - * The entity manager. + * @param \Drupal\Core\Entity\EntityStorageControllerInterface $storage_controller + * The storage controller. */ - public function __construct($entity_manager) { - $this->entityManager = $entity_manager; + public function __construct(EntityStorageControllerInterface $storage_controller) { + $this->storageController = $storage_controller; } /** @@ -41,21 +41,11 @@ public function __construct($entity_manager) { */ public static function create(ContainerInterface $container) { return new static( - $container->get('plugin.manager.entity') + $container->get('plugin.manager.entity')->getStorageController('menu_link') ); } /** - * Shows an overview page of all the custom menus and their descriptions. - * - * @return array - * A render array of the listing page. - */ - public function overview() { - return $this->entityManager->getListController('menu')->render(); - } - - /** * Gets all the available menus and menu items as a JavaScript array. * * @param \Symfony\Component\HttpFoundation\Request $request @@ -79,15 +69,15 @@ public function getParentOptions(Request $request) { /** * Provides the menu link submission form. * - * @param \Drupal\system\Plugin\Core\Entity\Menu $menu + * @param \Drupal\system\MenuInterface $menu * An entity representing a custom menu. * * @return array * Returns the menu link submission form. */ - public function addLink(Menu $menu) { + public function addLink(MenuInterface $menu) { drupal_set_title(t('Add menu link')); - $menu_link = $this->entityManager->getStorageController('menu_link')->create(array( + $menu_link = $this->storageController->create(array( 'mlid' => 0, 'plid' => 0, 'menu_name' => $menu->id(), diff --git a/core/modules/menu/lib/Drupal/menu/MenuFormController.php b/core/modules/menu/lib/Drupal/menu/MenuFormController.php index e715ab0..684df87 100644 --- a/core/modules/menu/lib/Drupal/menu/MenuFormController.php +++ b/core/modules/menu/lib/Drupal/menu/MenuFormController.php @@ -7,7 +7,6 @@ namespace Drupal\menu; -use Drupal\Core\Controller\ControllerInterface; use Drupal\Core\Entity\EntityControllerInterface; use Drupal\Core\Entity\EntityFormController; use Drupal\Core\Entity\Query\QueryFactory; @@ -43,7 +42,9 @@ public function __construct(QueryFactory $entity_query_factory, $operation = NUL * {@inheritdoc} */ public static function createInstance(ContainerInterface $container, $entity_type, array $entity_info) { - return new static($container->get('entity.query')); + return new static( + $container->get('entity.query') + ); } /** diff --git a/core/modules/menu/menu.module b/core/modules/menu/menu.module index d5c28d8..c79ab9f 100644 --- a/core/modules/menu/menu.module +++ b/core/modules/menu/menu.module @@ -74,9 +74,8 @@ function menu_menu() { 'type' => MENU_DEFAULT_LOCAL_TASK, ); $items['admin/structure/menu/add'] = array( - 'title' => 'Add menu', 'route_name' => 'menu_add_menu', - 'type' => MENU_LOCAL_ACTION, + 'type' => MENU_SIBLING_LOCAL_TASK, ); $items['admin/structure/menu/settings'] = array( 'title' => 'Settings', @@ -121,6 +120,21 @@ function menu_menu() { } /** + * Implements hook_local_actions(). + */ +function menu_local_actions() { + return array( + array( + 'route_name' => 'menu_add_menu', + 'title' => t('Add menu'), + 'appears_on' => array( + 'menu_overview_page', + ), + ), + ); +} + +/** * Title callback: Returns the label of the menu. * * @todo http://drupal.org/node/1981644 diff --git a/core/modules/menu/menu.routing.yml b/core/modules/menu/menu.routing.yml index 2d2c47f..5e88934 100644 --- a/core/modules/menu/menu.routing.yml +++ b/core/modules/menu/menu.routing.yml @@ -8,7 +8,7 @@ menu_settings: menu_overview_page: pattern: '/admin/structure/menu' defaults: - _content: '\Drupal\menu\Controller\MenuController::overview' + _entity_list: 'menu' requirements: _permission: 'administer menu'