【问题标题】:Add custom Tab to user profile page Drupal 7将自定义选项卡添加到用户个人资料页面 Drupal 7
【发布时间】:2013-04-06 20:25:19
【问题描述】:

我正在尝试在我的 Drupal 7 站点上的 mysite.com/user 上的用户帐户页面中添加两个新选项卡。我想添加指向 Add Photos 节点/add/photos 和 Add Videos 节点/add/videos 的链接,但是我的模块 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;

}

【问题讨论】:

    标签: drupal drupal-7


    【解决方案1】:

    您可以保持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,
    );
    

    参考资料:

    【讨论】:

    • 谢谢!如果没有这个,我无法弄清楚为什么 Drupal 不会将我路由到用户配置文件区域之外!
    【解决方案2】:

    我没有足够的声誉来评论答案。 注意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;
    }
    

    【讨论】:

    • 你是对的。具体来说,作为“标题”给出的值被传递给默认为t()的“标题回调”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多