Tel. 06151 / 39 10 793

Weiterleitung nach Node-Form-Submit

Da es bei Node-Forms scheinbar nicht möglich ist, zum Beispiel einfach ein Redirect-Einzuschleuden, musste ich mir Gedanken machen wie der richtige Weg aussehen könnte.
Die Lösung war einfach, aber nicht einfach zu ermitteln.

Einige haben sicherlich schonmal vergeblich versucht einfach im hook_form_alter ein Redirect-Feld in das Form-Array zu schmuggeln.
Das ist da dann zwar drin, interessiert aber Systemweit niemanden.

Im Endeffekt muss man den Submit-Handler des Submit-Buttons in der hook_form_alter überschreiben um dort, im Submit-Handler anschliessend das Redirect in Auftrag zu geben.

Ein Möglicher Anwendungszweck wäre zum Beispiel die Weiterleitung auf eine Dankes-Seite wenn ein User einen Blog erstellt hatte.

Hier noch ein kleiner Beispiel-Code:

function myModule_form_alter(&$form, $form_state, $form_id) 
{

  if ('nameofthespecificnode_node_form' == $form_id) 
  {
    $form['buttons']['submit']['#submit'][] = 'myModule_redirect_handler';
  }
  
  return;
}

function myModule_redirect_handler($form, &$form_state) 
{

  $form_state['redirect'] = 'showblogstats/' . $node->nid;
   
  return;
}

Praktisch ist bei dieser Art Redirecting, dass man im Submit-Handler bereits auf eine Node-ID zurückgreifen kann.
Das ist natürlich ideal für Node spezifisches Redirecting.

Viel Spass damit.

Undefined variable $node :)

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
CAPTCHA
Diese Frage hat den Zweck zu testen, ob Sie ein menschlicher Benutzer sind und um automatisierten Spam vorzubeugen.
So finden Sie uns