hook_user的问题以及在Drupal中重定向注销

时间:2011-03-16 00:50:49

标签: drupal redirect module logout

好的,所以我尝试使用以下模块自定义除了首页之外的其他注销目的地:


function mymodule_user($op, &$edit, &$account, $category = NULL) {
  switch ($op) {

    case 'logout':

        $_REQUEST['destination'] = 'user';

      break;

    default:

      break;
  }
}

如果我可以在注销后将我网站上的用户重定向回登录表单,那将会很好,但这似乎不起作用。我尝试了全新安装,似乎无法让它在那里工作。

我在这里错过了什么吗?

编辑:

我似乎能够提供一个更改登录的案例,但它可以正常工作,但即使没有登录案例,注销似乎也不会以同样的方式触发:


function mymodule_user($op, &$edit, &$account, $category = NULL) {
  global $user;
  switch ($op) {

    case 'logout':

        drupal_goto('user');

      break;
    case 'login':

        $dest  = $arr[0];
        $_REQUEST['destination'] = $dest;

      break;

    default:

      break;
  }
}

3 个答案:

答案 0 :(得分:2)

您可以添加:

unset($edit['destination']); 

后:

$_REQUEST['destination'] = $dest;

答案 1 :(得分:1)

function MY_MODULE_user($op, &$edit, &$account, $category = NULL) {
  global $user;
  switch ($op) {
    case 'logout':
      drupal_goto('user');
      break;
  }
}

答案 2 :(得分:0)

您可以将其与规则而不是代码一起使用。

但是如果它不起作用,可能会有一个drupal_goto()干扰其他地方。

你还应该在注销案例中放入一个看门狗调用,以便知道你的钩子被解雇了。