2013-04-06 82 views
4

我想在我的Drupal 7站点的mysite.com/user用户帐户页面添加两个新选项卡。我想添加链接添加照片节点/添加/照片和添加视频节点/添加/视频,但我模块user_menu_add下面的代码是不是为我工作:添加自定义选项卡到用户配置文件页面Drupal 7

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这作品,但只为“/用户”子目录下

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

回答

6

链接可以保持node/add/photos菜单项原样。您需要保持网址格式的格式,如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, 
); 

参考文献:

+0

谢谢!我无法弄清楚为什么Drupal不会在没有这个的情况下将用户路由到用户配置文件区域之外! – DrCord 2014-03-14 22:36:18

6

我没有足够的声誉COM回答一个问题。 注重的是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; 
} 
+0

你是对的。具体来说,作为“title”给出的值被传递给“标题回调”,默认为[t()](https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/t/7) 。 – 2014-03-07 15:55:29

相关问题