1

我正在尝试为 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 Structureetc的栏上。

在用 Symfony2 编写的新 Drupal 中,一切看起来都不同,我花了几个小时但没有成功。

4

1 回答 1

2

必须将新菜单项放入<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'
于 2015-11-23T13:38:52.727 回答