質問

私はDrupal5サイトを継承し、いくつかの変更を行うことを任されましたが、どこから探し始めればよいのかわかりません。

多くのページには、管理者が特定のアクションを実行できるメニューがあります:

概要 スペシャリスト リソースとツール 現場で ニュース イベント コース マルチメディア 編集 トラック ワークフロー 設定

ただし、一部のセクションには異なるオプションがあります。 プレビュー レイアウト 設定 レイアウト設定 高度な コンテキスト コンテンツ エクスポート

2番目のメニューに(編集、追跡、ワークフロー、設定)を追加する必要がありますが、その方法がわかりません。

page.tpl.phpには$ tabsの領域がありますが、これがどのように構築されるのかわかりません。

私が言えることから、このテーマはZen STARTERKITテーマに基づいています。

役に立ちましたか?

解決

通常、$ tabs変数には、 MENU_LOCAL_TASK タイプのメニューエントリが入力されます。

メニューシステム、特に hook_menu() を使用して、基本的な考え方を理解してください。コールバック関数からパスへのマッピングに要約されます。 URLが hook_menu で定義されたパスと一致する場合(プレースホルダーを含めることができます!)、そのパスに対して登録されたコールバック関数が呼び出され、そのURLのコンテンツが生成されます。

hook_menu 項目の「タイプ」は、システムでのパス/コールバックの組み合わせの表示方法を定義します。 MENU_CALLBACK にすることができます。これは、登録されたパス/コールバックの組み合わせのみを意味しますが、対応する「実際の」メニューエントリはありません。 MENU_NORMAL_ITEM も同じですが、「標準」のメニューエントリがあります。ナビゲーションメニューで。 MENU_LOCAL_TASK は同じですが、対応するメニューエントリは通常、メニューではなく$ tabsに表示されます。

同じベースパスを共有するすべての MENU_LOCAL_TASK は、タブのグループになります。したがって、次のようなパスがある場合:

  • some / path / tab1
  • some / path / tab2
  • some / path / tab3

およびこれらのすべてが MENU_LOCAL_TASK として定義されている場合、それらが表す各ページにそれぞれのタブが表示されます。

したがって、変更/拡張する必要がある場所を見つけるには、それらのタブが表示されるパスを定義するすべての hook_menu()実装をコードベースで検索する必要があります。それらはすべて同じ場所で定義する必要はありませんが、異なるモジュールの異なる hook_menu 実装から来る可能性があることに注意してください。追加するタブのメニュー定義を追加する必要があるよりも、関連するパスをコールバック関数にマッピングします。コールバック関数は、ユーザーがタブをクリックしたときに表示されるページのコンテンツを返します。

他のヒント

ノードを表示している場合は、通常、$ tabsに既に編集リンクがあります。これは、他の何か(何らかのレイアウトモジュール)である可能性があるためです。どのようなコンテンツを編集/追跡するには、編集/追跡オプションを追加する必要がありますか?特定のノードまたは何?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top