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