将自定义选项卡添加到用户配置文件页面Drupal 7

时间:2013-04-06 20:25:19

标签: drupal drupal-7

我正在尝试在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;

}

Current User Tabs

2 个答案:

答案 0 :(得分:6)

您可以按原样保留node/add/photos菜单项。您需要保留与user/%user/addphoto类似的URL模式格式,以使选项卡显示在用户配置文件页面上。但是,请尝试在新菜单项中使用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,
);

参考文献:

答案 1 :(得分: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;
}