Contact Form Redirect Override

2 contenuti / 0 new
Ultimo contenuto
Contact Form Redirect Override

é un problema che sto avendo da diversi giorni senza trovare soluzione, ho cercato in in lungo ed in largo, ma non trovo nulla a riguardo.
la situazione è questa: Ho form di Contact raggiungibile dalla classica "path" www.miosito.it/contact, fin qui ok.

Siccome questo form viene visualizzato in una "modal window" mi interessava fare l'override dell'indirizzo a cui si viene reindirizzati dopo aver inviato un form "valido"..

A questo ho creato un semplice modulino composto da un numero di righe a dir poco ridicole, che puntualmente una volta attivato mi manda in Error 500 il sito.

Qualacuno sa indicarmi una possibile motivazione di questo misterioro problema?

<?php
/**
* Implementation of hook_form_alter
*/
function mymodule_custom_form_alter($form, $formstate, $form_id) {
  switch (
$form_id) {
    case
"contact_mail_page":
       
$form['#redirect'] = 'node/22';
      break;
  }else {
  return
FALSE;
  }
}
?>

Mi pare che è un operazione abbastanza facile - ma in due fase. (Come da manuale)
Credo che questo dovrebbe bastare:

<?php
 
function mymodule_custom_form_alter(&$form, $form_state, $form_id) {
  switch (
$form_id) {
    case
"contact_mail_page":
     
$form['buttons']['contact']['#submit'] = array(  // guessing here...
       
'contact_form_submit',
       
'mymodule_custom_contact_submit'
       
);
      return;
  }
}
/**
* Dopo aver salvato il contact, fai un redirect alla pagina giusta.
*/
function mymodule_custom_contact_submit($form, &$form_state) {
 
$form_state['redirect'] = 'node/21';
}
 
?>

La riga

<?php
  $form
['buttons']['contact']['#submit'] = ... // guessing here...
?>
va modificato per 'beccare' il bottone giusto, e commando giusto. Il che io non lo so (sto tirando ad indovinare che è ['buttons']['contact'], e contact_form_submit). Quindi buona caccia! devel e dsm($form) aiutano molto...
FYI hook_form_alter non restituisce un valore quindi non c'è bisogno del } else { nel tuo codice - non lo leggerà nessuno - un pò come l'email dei contatti ;-)

Più imparo, più dubito.