我有一个自定义模块,它的表单包含提交处理程序中的表单重定向。
我正在使用 hook_form_alter,并附加了另一个自定义提交处理程序,总共有两个提交处理程序。重定向阻止我的第二个处理程序执行。当我删除重定向时,该功能完美运行。关于如何防止重定向弄乱自定义提交处理程序的任何想法?
- 我无法更改表单更改的顺序,这意味着我不能让重定向提交钩子排在第二位。
- 我不能将重定向放在第二个处理程序中,因为它与我的表单更改无关。
一些代码:
/*
Original form handler
*/
function example_form_handler($form, &$form_state) {
//some logic to insert into a db and then...
$form_state['redirect'] = '';
drupal_redirect_form($form_state);
}
/* Form alter in another file*/
function sm_integration_form_alter(&$form , &$form_state, $form_id) {
//this is altering the above form.
if ($form_id == "my_data_form" ){
//alert the form weight to be populated at last
$form['submit']['#weight'] = 5;
$form['#submit'][] = 'sm_integration_enable_submit';
}
}
/* This code is not being executed with the redirect */
function sm_integration_enable_submit(&$form, &$form_state) {
watchdog('sm_integration', 'This code does not execute with the redirect in the original module enabled');
}