4

我正在尝试在我的 Drupal 7 站点上的 mysite.com/user 上的用户帐户页面中添加两个新选项卡。我想添加指向添加照片节点/添加/照片和添加视频节点/添加/视频的链接,但是我的模块 user_menu_add 的以下代码对我不起作用:

function user_menu_add_menu() {

$items['node/add/photos'] = array(
    'title' => t('Add Photos'),
    'page callback' => 'user_menu_add',
    'page arguments' => array(1),
    'access callback' => TRUE,
    'access arguments' => array('access user menu add'),
    'type' => MENU_LOCAL_TASK,
);

return $items;

}

我引用的一个例子是here,但仅适用于“/user”子目录下的链接

function my_module_menu() {

$items['user/%user/funky'] = array(
    'title' => t('Funky Button'),
    'page callback' => 'my_module_funky',
    'page arguments' => array(1),
    'access callback' => TRUE,
    'access arguments' => array('access funky button'),
    'type' => MENU_LOCAL_TASK,
);

return $items;

}

当前用户选项卡

4

2 回答 2

6

您可以保持node/add/photos菜单项不变。您需要保留 URL 模式格式user/%user/addphoto,以便使选项卡出现在用户个人资料页面上。但是,请尝试drupal_goto()在您的新菜单项中使用以重定向到该node/add/photos页面。

试试这个:

$items['user/%user/addphoto'] = array(
  'title' => t('Add Photos'),
  'page callback' => 'drupal_goto',
  'page arguments' => array('node/add/photos'),
  'access callback' => 'user_is_logged_in',
  'type' => MENU_LOCAL_TASK,
);

参考:

于 2013-04-07T01:18:52.067 回答
6

我没有足够的声誉来评论答案。请注意,hook_menu确实 需要未翻译的标题,文档中说:

"title": Required. The untranslated title of the menu item.

所以代码应该是

function my_module_menu() {
    $items['user/%user/addphoto'] = array(
      'title' => 'Add Photos',
      'page callback' => 'drupal_goto',
      'page arguments' => array('node/add/photos'),
      'access callback' => 'user_is_logged_in',
      'type' => MENU_LOCAL_TASK,
    );
    return $items;
}
于 2013-09-24T19:18:15.770 回答