サイトのユーザープロファイルページに追加のタブ(ダッシュボード)を作成します。 Homebox モジュールがインストールされ、ユーザー用のダッシュボードが作成されました。ダッシュボードには、ユーザー/ダッシュボードからアクセスできます。これどうやってするの?以下のようにしてみました:
次のように書いたadd_menu_tab.moduleファイルで、サイトのユーザープロファイルページに追加のタブ(ダッシュボード)を作成します。 homeboxモジュールがインストールされ、ユーザー用のダッシュボードが作成されました。ダッシュボードには、ユーザー/ダッシュボードからアクセスできます。これどうやってするの?以下のようにしてみました:
Add_menu_tabという名前で作成された新しいモジュール
コード:
function add_menu_tab_menu() {
$items['user/dashboard'] = array(
'title' => 'Dashboard',
'type' => MENU_LOCAL_TASK,
'weight' => 7
);
return $items;
}
メニューがまだユーザープロファイルに表示されません。どうすればよいですか?
ダッシュボードはuser/dashboard
で作成され、アクセスできると言ったように、カスタムモジュールでhook_menu_alter
( menu alter API )を使用してメニューを変更し、メニュータイプを変更するだけです。 MENU_LOCAL_TASk
へ。
function yourmodule_menu_alter(&$items){
$items['user/dashboard']['type'] = MENU_LOCAL_TASK;
}
後でキャッシュをクリアすることを忘れないでください;)
Hook_menuの代わりに hook_menu_alter() を実装する必要があります。
function add_menu_tab_menu_alter(&$items) {
$items['user/dashboard']['type'] = MENU_LOCAL_TASK;
}
次に、Mołotが提案したように、キャッシュ、少なくともメニューキャッシュをクリアする必要があります。
hook_menu_local_tasks_alter() を使用する別のアプローチもあります。ただし、最初のメソッドは、hook_menuの後で一度だけ呼び出されてデータベースに保存され、後者はローカルタスクがレンダリングされるたびに呼び出されるため、より優れています。