Drupal_goto ignorieren? Destination = foo

6

Auf meinen Drupal 6-Sites stoße ich häufig auf Fälle, in denen ein Benutzer möglicherweise auf die Seiten meines Moduls mit dem an die URL angehängten Queryring? Destination = foo stößt, der aus früheren Interaktionen auf der Site stammt. Die Ergebnisse variieren von "unbequem" bis "sehr erschwerend".

Das Standardverhalten drupal_goto()prüft zuerst den Zielparameter und ignoriert die Argumente, drupal_goto()falls vorhanden.

Gibt es eine Drupal-native Methode, um drupal_goto () so zu verwenden, dass sie ignoriert wird destination?

(Ja, ich weiß, dass ich eine Version von drupal_goto()in einer Dienstprogrammfunktion neu erstellen kann , aber ich würde eine Drupal-native Lösung bevorzugen, falls eine vorhanden ist.)

anschauung
quelle

Antworten:

14

Es ist eigentlich ganz einfach, nur $_REQUEST['destination']vor dem Aufrufen deaktiviert drupal_goto().

Entziffern
quelle
Das ist so offensichtlich, kein Wunder, dass ich es verpasst habe :)
anschauung
4

Eigentlich unset($_REQUEST['destination'])funktioniert das bei mir nicht, aber ich konnte es stattdessen zum Laufen bringen : unset($_GET['destination']).

Stier
quelle
2
Seltsam , wie $_REQUESTsowohl $_GETund $_POST php.net/manual/en/reserved.variables.request.php
David Thomas
3
Sie müssen dies dann in Drupal 7 versuchen, da die Implementierung drupal_gotonur nach prüft $_GET['destination'].
Webbiedave