gpt4 book ai didi

drupal-7 - 如何避免用户路径中出现 Drupal 7 用户 ID?

转载 作者:行者123 更新时间:2023-12-03 23:54:35 28 4
gpt4 key购买 nike

我的主题中有以下内容:

$items['user/%user/sms-services'] = array(
'title' => t('SMS Services'),
'page callback' => 'sms_user_page',
'page arguments' => array(1),
'access callback' => 'user_is_logged_in',
'type' => MENU_LOCAL_TASK,
);

它工作得很好,因为它:

  1. 创建一个 url/user/USER_ID/sms-services
  2. 在/user 页面上创建一个标签

但是,我想去掉 USER ID 部分。 IE。该链接必须作为:

/user/sms-services

并且/user/USER_ID/sms-services 必须重定向到/user/sms-services

并且/user/USER_ID 必须重定向到/user

有没有简单的方法来做到这一点?

更新

我使用“我的别名”模块来完成大部分工作,但它仍然不是一个非常优雅的解决方案,因为现在我只能使用两个 url:

/user/me/some-action

/users/393/some-action

当我真正想要的是:

/user/some-action

有人有什么想法吗?

最佳答案

也许你可以像这样做一些事情。使用 user_is_logged_in 检查输入 user/sms-services 的用户是否已登录,如果为真,则使用全局 $user 进行进一步操作。也许是这样的

$items['user/sms-services'] = array(
'title' => 'SMS Services',
'page callback' => 'sms_user_page',
'access callback' => 'user_is_logged_in',
'type' => MENU_LOCAL_TASK,
);

function sms_user_page(){
if(user_is_logged_in){//Just realize, with 'access callback' => 'user_is_logged_in' in the menu item array this if is unnecesary
global $user;
$user->uid;

//Do stuff
}
}

也许从旧的(带有用户通配符的菜单项到新的菜单项)制作一个 drupal_goto()

非常重要:

不要在菜单项中使用 t() 函数。默认情况下,drupal 会将标题字符串传递给函数 t()。您可以通过在菜单项数组中设置新的“标题回调”来更改该行为

从 drupal.org 查看 hook_menu

关于drupal-7 - 如何避免用户路径中出现 Drupal 7 用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27885202/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com