【问题标题】:It is possible to alter the $form_state['redirect'] of a previous submit callback?可以更改先前提交回调的 $form_state['redirect'] 吗?
【发布时间】:2019-03-20 08:39:31
【问题描述】:
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'] 不起作用。如何取消设置并重定向到 about 页面?

【问题讨论】:

    标签: php drupal-7


    【解决方案1】:

    我有类似的问题,但我通过在 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 2021-08-30
      • 2020-02-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2011-04-25
      相关资源
      最近更新 更多