ビューでは、通常のメニューエントリ、メニュータブ、デフォルトメニュータブの違いは何ですか


19

ビューにメニュー項目を追加すると、あいまいな3つの選択が表示されます

通常のメニューエントリ

メニュータブ

デフォルトメニュータブ

違いは何ですか、それぞれをいつ使用しますか?

ここに画像の説明を入力してください

回答:


14

これらはからtype返されるアイテムのパラメータに対応しますhook_menu()

  • 通常のメニューエントリ= MENU_NORMAL_ITEM

    メニューの種類-メニューとブレッドクラムに表示される「通常の」メニュー項目。

    通常のメニュー項目はメニューツリーに表示され、管理者が移動/非表示にできます。ほとんどのメニュー項目にこれを使用します。メニュー項目タイプが指定されていない場合のデフォルト値です。

  • メニュータブ= MENU_LOCAL_TASK

    メニュータイプ-親アイテムに固有のタスクで、通常はタブとして表示されます。ローカルタスクは、親アイテムで実行されるアクションを記述するメニューアイテムです。例はパス「node / 52 / edit」で、「node / 52」で「edit」タスクを実行します。

  • デフォルトのメニュータブ= MENU_DEFAULT_LOCAL_TASK

    メニューの種類-「デフォルト」のローカルタスク。最初はアクティブです。

    ローカルタスクのすべてのセットは、クリックされたときに親と同じパスにリンクする1つの「デフォルト」タスクを提供する必要があります。

考えられる最良の例はノードページです。あなたはノードのページにアクセスすると、「表示」タブは、タイプのメニュー項目によって提供されるMENU_DEFAULT_LOCAL_TASK(参照$items['node/%node/view']してnode_menu())。

そのようなパスはありません(親メニュー項目から継承します)。ノードページがで定義される「実際の」タブのグループの中にタブを持つことを許可することだけが目的MENU_LOCAL_TASKです。


@Cliveに感謝します。最後の2つはまだあいまいです。ビューのページを作成するときに、どちらを使用するかを定義するために、それぞれの例を追加できると思いますか?
ナイジェルウォーターズ

私はやってみました、それが理にかなっていることを願っています:)
クライブ

申し訳ありませんが、それでも私にはクリックしていません。ビューを作成するときに「私」はいつそれらを使用しますか?
ナイジェルウォーターズ

1
コンテキストフィルターとしてnidを持つビューを追加し、ノードページにnidを持つタブを追加する場合、パスをとして設定し、node/%node/mypath[メニュータブ]を選択するとします。ノードページの例のように、タブのグループにデフォルトを設定するときに、「デフォルトメニュータブ」が表示されます。node/[nid]/viewそしてnode/[nid]、同じページへの決意-かつての唯一の目的は、あなたが後者を訪問したときに必ずタブが表示されているようにすることです。より明確な?説明するのは非常に難しいです
クライブ

時間を割いてくれてありがとう。それは有り難いです。今手に入れたと思う。沈む時間を与えます。:)
ナイジェルウォーターズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.