我有一个表单,这是一个默认的块管理表单.这是用户编辑块内容,可见性的标准形式.当用户保存表单时,drupal将用户重定向到块管理页面.
现在,我想把用户带到另一个页面,例如.在提交块管理表单之后的主页.有几种方法可以实现这一点,但是drupal建议使用hook_alter_form方法,如here所述
我写了一个名为“formdest”的.module文件,其中包含以下内容:
function formdest_form_alter(&$form,$form_state,$form_id) { switch ($form_id) { case 'block-admin-configure': $form_state['redirect'] = '/home'; break; } }
和.info文件一起提供:
; $Id: custom.info,v 1.0 2011/01/01 21:55:00 author Exp $ name = formdest description = form destination package = Other core = 6.x version = "6.x" project = "custom" datestamp = "1229018427"
我的自定义模块显示在模块列表中,我可以启用它,从而激活重定向.但是当我测试它,drupal仍然带我到块管理页面而不是主页..
在firebug或系统日志中没有错误消息,所以我有点无知.你们中的任何一个编码神有什么想法?
解决方法
将一个提交处理程序添加到hook_form_alter()中,并在其中设置覆盖.
function mymodule_form_alter(&$form,&$form_state,$form_id) { if ($form_id == 'my_form') { $form['#submit'][] = 'my_submit_handler'; } } function my_submit_handler(&$form,&$form_state) { $form_state['redirect'] = 'home'; }