Tengo un formulario, que es un formulario predeterminado de administración de bloque. Es la forma estándar que las personas usan para editar contenidos de bloques, visibilidad, etc. Cuando el usuario guarda el formulario, drupal redirige al usuario a la página de administración de bloques.Redirección personalizada después de enviar formulario
Ahora, quiero llevar al usuario a otra página, por ej. la página de inicio, después de enviar un formulario de administración en bloque. Hay varias maneras de lograr esto, pero Drupal recomienda utilizar el método hook_alter_form como se describe here
He escrito un archivo llamado .module 'formdest' que contiene lo siguiente:
function formdest_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'block-admin-configure':
$form_state['redirect'] = '/home';
break;
}
}
y el archivo .info para acompañarlo:
; $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"
Mi módulo personalizado aparece en la lista de módulos y puedo habilitarlo, lo que activa la redirección. Pero cuando lo prueba, Drupal todavía me lleva a la página de administración de bloques en lugar de la página ..
No hay mensajes de error en ninguno de Firebug o en el registro, así que estoy un poco idea. ¿Alguno de ustedes codificando dioses tiene alguna idea?
gracias por la sugerencia Yorirou, acabo de modificar el módulo y agregué el controlador de envío. Pero la redirección todavía no me lleva a casa, y tampoco errores. Estoy empezando a pensar que podría estar usando el identificador de formulario incorrecto o algo así, voy a hacer algo más de depuración –
editar - A la derecha, el fragmento de Yorirou funcionó (mis enfoques anteriores también parecían funcionar), el problema fue que no usé caracteres de subrayado en el forma id. Cuando reemplacé los guiones con guiones bajos, todo funcionó como un amuleto. –
pequeña punta que puede ahorrar algo de tiempo: si la forma de redirección no funciona, asegúrese de que $ form_state [ "reconstruir"] = false; –