hook_menu()アイテムのタイトルをページタイトルとは異なるものにすることはできますか?

drupal.stackexchange https://drupal.stackexchange.com/questions/1974

  •  16-10-2019
  •  | 
  •  

質問

hook_menu()でメニューを構築しています。

このための配列を構築すると、タイトルを指定します。タイトルを指定し、電話をかけるページに渡され、ページタイトルになります。また、メニュー項目の表示名でもあります。

$items['somewhere/something'] = array(
 'title' => 'Something',
 'description' => 'something else',
);

これにより、「何か」と呼ばれるメニューリンクが生成され、ページタイトルは同じです。メニュー項目の名前を1つにする方法はありますか?

私は使えることを知っています drupal_set_title() 実際に hook_page() 機能しますが、この場合にそれを実現するために追加のデータベースプルを実行する必要があります。

役に立ちましたか?

解決

いいえ、それをする方法はありません hook_menu().

最も簡単な方法は、使用して提案したものです drupal_set_title() そして、最も効率的なのは何ですか ドバーマン 上記の提案:使用 phptemplate_preprocess_page() それに応じて$ varsを変更します。

正直なところ、私はあなたが言及した追加のdbコールがある場合でも、drupal_set_title()を使用します(未確認)。これは小さな最適化であり、パフォーマンスがあなたにとって重要である場合、キャッシュメカニズム(ワニス、ブーストなど)があり、この追加の呼び出しは違いを生みません!

他のヒント

ページに別のタイトルを設定するには(で使用されているものは <title> タグ)、2つの可能性があります。

  • モジュールで、実装してください MODULE_preprocess_page()そして、それを使用しての値を変更します $variables['head_title']. 。のドキュメントページ template_preprocess_page() どの値が利用可能かを報告します $variables 配列。
  • インストールします ページタイトル ページのタイトルセットを変更できるモジュール。 PHPスニペットを実行してページタイトルを設定することもできます。また、使用します。 トークン.

使用 drupal_set_title(), 、タイトルバーにページタイトルまたはタイトルを表示するだけではありません。ドキュメントで報告されているように、両方を設定します。

現在のページのタイトルを設定し、ページとタイトルバーに表示します。

パラメーター

$タイトル
ページタイトルに割り当てるオプションの文字列値。または、null(デフォルト)に設定されている場合、現在のタイトルは変更されていません。

返品値

現在のページの更新されたタイトル。

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