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 Structure

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 に答える