web-dev-qa-db-ja.com

カスタムモジュールのメニュー項目が表示されないのはなぜですか?

Drupalが初めてで、drupalのドキュメントを参考にして、最初のカスタムモジュール( "configurator")を作成しようとしています)。

メニューフックを実装しました:

function configurator_menu()
{
    $items = array();
    $items['configurator'] = array(
        'title' => 'Configurator',
        'page callback' => 'configurator_init',
        'access callback' => TRUE, 
        'type' => MENU_CALLBACK,
     );
     return $items;
}

function configurator_init()
{
    return "<p> Hello World </p>";
}

「管理>サイト構築>モジュール」でモジュールが表示され、アクティブ化されます。キャッシュはクリアされましたが、「構成」モジュールのメニュー項目がどういうわけか表示されません。

どうして?

2
Jbartmann

リンクを追加するメニューのmenu_nameキーを設定するのを忘れているか:

$items['configurator'] = array(
  'title' => 'Configurator',
  'page callback' => 'configurator_init',
  'access callback' => TRUE, 
  'type' => MENU_CALLBACK,
  'menu_name' => 'primary-links',
);

または、デフォルト(「ナビゲーション」)を使用したいが、間違ったタイプを使用しています。そのはず

$items['configurator'] = array(
  'title' => 'Configurator',
  'page callback' => 'configurator_init',
  'access callback' => TRUE, 
  'type' => MENU_NORMAL_ITEM,
);

MENU_CALLBACK は:

コールバックはパスを登録するだけなので、URLにアクセスしたときに正しい関数が呼び出されます。 メニューには表示されません。

鉱山を強調します。

3
Clive