ユーザーアカウントページ(http://example.com/user)は、[表示]、[編集]などのいくつかのデフォルトタブで構成されています。
そこにメニューリンクを追加します。返されるコンテンツは、ユーザーIDによって異なります。どうすればよいですか?
新しいタブを追加したいだけの場合、モジュールは hook_menu() を実装し、次のようなコードを使用します。
_function mymodule_menu() {
$items = array();
$items['user/%user/new_tab'] = array(
'title' => 'New tab title',
'page callback' => 'drupal_get_form',
'page arguments' => array('mymodule_newtab_form', 1),
'access arguments' => array('access new tab'),
'type' => MENU_LOCAL_TASK,
);
return $items;
}
function mymodule_newtab_form($form, &$form_state, $account) {
// ...
}
_
mymodule_newtab_form()
は、_$account
_のユーザーオブジェクトを取得します。そのメニューコールバックは、フォームAPIを使用してフォームを作成します。目的が出力である場合、メニューコールバック宣言は似ていますが、次の2つの配列インデックスがあります。
_'page callback' => 'mymodule_newtab_form',
'page arguments' => array(1),
_
コールバックに渡される引数も異なります。