web-dev-qa-db-ja.com

アカウントメニューの[リンクを追加]

ユーザーアカウントページ(http://example.com/user)は、[表示]、[編集]などのいくつかのデフォルトタブで構成されています。

そこにメニューリンクを追加します。返されるコンテンツは、ユーザーIDによって異なります。どうすればよいですか?

4
ayush

新しいタブを追加したいだけの場合、モジュールは 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), 
_

コールバックに渡される引数も異なります。

2
kiamlaluno