2015-11-23 46 views
1

我正在尝试为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; 
} 

enter image description here

新的菜单项应该出现在酒吧与ContentStructure

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

回答

2

必须将新菜单项放入模块文件夹中的<your_module_name>.links.menu.yml文件中。作为一个例子这里是文件system.links.menu.ymlContent菜单的定义:

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' 
+1

工程就像一个魅力,很好的答案。我只会补充一点,我们还需要清除缓存或(关闭它)才能看到结果。 –