2015-11-23 76 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

工程就像一個魅力,很好的答案。我只會補充一點,我們還需要清除緩存或(關閉它)才能看到結果。 –