2009-06-26 45 views
0

我正在尝试重定向任何记录的用户尝试访问/用户。如何在用户页面执行请求目标

在我的模块下一个代码登录后重定向:

function ccmm_user($op, &$edit, &$account, &$category = NULL) 
{ 
    switch($op){ 
     case 'login': 
      $_REQUEST['destination'] = 'admin/'; 
      break; 
    } 
} 

这是工作。然后我用case'view'尝试:但它没用。

回答

0

您可以尝试Login Destination module而不是编写自己的代码。

+0

我不想使用另一个模块,thx无论如何 – pera 2009-06-26 17:00:06

1

听起来好像您希望用户永远无法进入/用户页面,无论是登录还是手动进入。

在这种情况下,你应该在这样的hook_init功能做一个简单的检查:

function ccmm_init() { 
    if ($_REQUEST['q'] == '/user') { 
    drupal_goto('/admin'); // Or where ever you want to send them 
    } 
} 

当然也有很多检查,你应该做的,你可能要考虑使用Global Redirect模块,不用担心它只有8k的大小,所以在这种情况下,关于添加另一个模块的问题不是这样的问题。

+0

我不知道为什么,但这个例子是不在我的Drupal(D6)上工作.. 无论如何,用户将如何获得登录? (原谅我的英文:$) – pera 2009-06-29 16:43:30

0

更好的方法是在您的模块中使用hook_menu_alter只删除/user/%user_uid_optional的菜单项或将其移至另一个URL。

这样,您不仅可以处理登录(与您目前的操作相同),还可以访问/ user /(警告:包括管理员用户的登录)。或者你可以使用相同的挂钩来修改访问权限检查,并只授予给具有更高权限的用户,如administer users

相关问题