Дополнительный пункт меню в Drupal 8

Я пытаюсь создать модуль для Drupal 8 и не могу понять, как добавить новый пункт в меню.

В Drupal 7 приведенного ниже кода было достаточно:

function mymodule_menu()
{
$item['admin/settings/mymodule'] = array(
'title' => 'MyModule',
'description' => 'MyModule settings',
'page callback' => 'drupal_get_form',
'page arguments' => array('mymodule_settings_form'),
'access arguments' => array('administer mymodule'),
'file' => 'mymodule.settings.inc',
'type' => MENU_NORMAL_ITEM,
);

return $item;
}

введите описание изображения здесь

Новый пункт меню должен появиться на панели с Content Structure и т.п.

В новом Drupal, написанном на Symfony2, все выглядит иначе, и я потратил часы, но безуспешно.

1

Решение

Новый пункт меню должен быть введен в <your_module_name>.links.menu.yml файл в папке модуля. В качестве примера здесь приведено определение Content меню в файле system.links.menu.yml:

system.admin_content:
title: Content
description: 'Find and manage content.'
route_name: system.admin_content
parent: system.admin
weight: -10

В вашем случае это будет что-то вроде этого:

mymodule.my_module_settings:
title: MyModule
description: 'MyModule settings'
route_name: mymodule.settings
parent: system.admin
weight: -10

(Вы должны поместить этот код в ваш новый файл * .links.menu.yml, просто измените маршрут и другие параметры в соответствии с вашими потребностями.)

route_name маршрут должен быть определен в файле * .routing.yml

mymodule.settings:
path: 'mymodule/form/'
defaults:
_title: 'Form title'
_form: '\path\to\your\form'
requirements:
_permission: 'access content'
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]