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

Lee*_*man 4 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;

}
Run Code Online (Sandbox Code Playgroud)

我引用的一个例子在这里工作,但仅适用于"/ 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;

}
Run Code Online (Sandbox Code Playgroud)

当前用户选项卡

Aii*_*ias 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,
);
Run Code Online (Sandbox Code Playgroud)

参考文献:


小智 6

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

"title": Required. The untranslated title of the menu item.
Run Code Online (Sandbox Code Playgroud)

所以代码应该是

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;
}
Run Code Online (Sandbox Code Playgroud)