Estoy usando drupal_get_form('event_signup_form')
para incrustar mi formulario personalizado dentro de un bloque. El formulario se procesa según lo previsto, pero el envío del formulario no genera nada.
La función de formulario en sí se llama event_signup_form($form, &$form_state)
y la función de envío se llama event_signup_form_submit($form, &$form_state)
pero no se llama.
Estoy usando hook_block_view para mostrar el formulario:
function event_block_view($delta = '') {
$blocks = array();
if ($delta ...) {
$blocks['content'] = drupal_render(drupal_get_form('event_signup_form'));
}
}
Me las arreglé para que esto funcionara, así es como (stub):
function hook_block_view($delta = '') {
$blocks['content'] = drupal_render(drupal_get_form('event_signup_form'));
}
function event_signup_form() {
// Register form submit handler, same goes for validation handler
$form['#submit'][] = 'event_signup_form_submit';
return $form;
}
function event_signup_form_submit($form, &$form_state) {
// This is now triggered
}
hook_form()
. Vea la respuesta de Francisco Luz para la respuesta correcta.Mi apuesta es que
$form['#submit'][] = 'event_signup_form_submit';
es el culpable. Lo configura solo si desea un controlador de envío adicional.Este es un código de muestra que funciona.
fuente