是否可以更改先前提交的回调的$ form_state ['redirect']?

时间:2019-03-20 08:39:31

标签: php drupal-7

function module_form_alter(&$form, $form_state, $form_id) {
  if($form_id == "user_login"){             
       $form['#submit'][] =  'module_userlogin_callback';          
     }
}

function module_userlogin_callback($form, $form_state){
    global $base_url;
    $current_path = $base_url . '/' .'about';
    $form_state['redirect']=$current_path;
}

问题是,原始提交回调user_login_submit已经有一个$ form_state ['redirect']到用户个人资料页面,我想更改它并重定向到大约页面,而不会覆盖原始提交回调函数。是否有可能?当前我给定的$ form_state ['redirect']无法正常工作。如何取消设置并重定向到大约页面?

1 个答案:

答案 0 :(得分:0)

我有类似的问题,但是我通过在template.php中编写form_alter函数来解决此问题,如下所示:

your_theme_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_login') {
         $form['#submit'][] = 'your_theme_userlogin_callback';
    }
}
function your_theme_userlogin_callback(&$form, &$form_state) {
   $form_state['redirect'] = '$url';//your redirect url path
}