カスタムモジュール用のhook_menu()でタブを作成


14

2時間後、カスタムモジュールバックエンドでタブを作成しようとしています。

私はいくつかの提案を試みましたが、それらのどれも機能させることができませんでした。

これは私の現在のhook_menu()です:

    function social_links_menu() {
  $items['admin/config/system/social_links'] = array(
    'title' => 'social_links',
    'description' => 'Configure to fit clients needs',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('social_links_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'social_links.admin.inc',
  );

  return $items;
}

「tab1」と「tab2」という2つのタブが必要です。

誰かが私に実例を与えることができますか?これは本当にシンプルなはずですが、今は不可能に思えます

回答:


44

通常のメニュー項目である「ルート」パスを定義してから、各タブに別の項目を追加する必要があります。これらの最初はルートアイテムのプロパティを継承し、2番目は独自のコールバックを定義します。

MENU_LOCAL_TASKおよびMENU_DEFAULT_LOCAL_TASK定数と組み合わせて、期待するタブを取得する必要があります。

function social_links_menu() {
  $items['admin/config/system/social_links'] = array(
    'title' => 'social_links',
    'description' => 'Configure to fit clients needs',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('social_links_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'social_links.admin.inc',
  );

  $items['admin/config/system/social_links/tab1'] = array(
    'title' => 'Tab 1',
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'weight' => -10
  );

  $items['admin/config/system/social_links/tab2'] = array(
    'title' => 'Tab 2',
    'type' => MENU_LOCAL_TASK,
    'page callback' => 'some_callback',
    'access arguments' => array('some permission')
  );

  return $items;
}

2
レッスンクライブをありがとう!良い説明。あなたはちょうど私を数時間救った:)
mhmdrupal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.