2011-03-16 59 views
1
hook_user和重定向注销

好了,所以我想定制比下面的模块了FrontPage等不同的注销目的地:问题与在Drupal

 

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; 
    } 
} 
 

回答

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

不工作的全新安装=/ – duobuddy 2011-03-16 02:59:39

+0

取代 '统计' 到 'YORMODELENAME' – dobeerman 2011-03-16 23:59:27

+0

谢谢!这是真棒:) – Oranges13 2011-09-07 15:45:33

0

您可以使用规则,而不是代码中使用此。

但是,如果它不能正常工作,有可能是drupal_goto()其他地方的干扰。

你也应该放在一个看门狗电话注销案内知道你的钩发射。

+0

看起来不像注销案例曾经被解雇。 – duobuddy 2011-03-16 17:09:50

+0

会在哪里drupal_goto上一个新的网站,没有其他模块干扰启用? – duobuddy 2011-03-16 18:21:57

+0

你可以把调试语句,看看$ op是什么,当你注销?这种情况真的是'注销'吗?我记得以前有过这个钩子的麻烦,但规则适用于重定向登录/注销。 – Kevin 2011-03-16 20:04:40

2

您可以添加:

unset($edit['destination']); 

后:

$_REQUEST['destination'] = $dest;