Antworten:
Für Drupal 6
Es sollte der 3. Parameter sein
drupal_goto($path = '', $query = NULL, $fragment = NULL, $http_response_code = 302)
drupal_goto("products", NULL, $node->nid);
Für Drupal 7
drupal_goto($path = '', array $options = array(), $http_response_code = 302)
drupal_goto("products", array('fragment' => $node->nid));
In Drupal 6 verwendet drupal_goto seinen dritten Parameter für die Fragmentierung. Wenn Sie die URL wie Produkte # 345 machen möchten, sollten Sie ihr Fragment als drittes Argument in der Funktion drupal_goto übergeben.
drupal_goto("products", NULL, $node->nid); // where $node->nid is the fragment.
In Drupal 7 sollten Sie Fragment als Schlüsselwert-Array-Paar für den zweiten Parameter der Funktion drupal_goto übergeben.
drupal_goto('products', array('fragment' => $node->nid)) ; // where $node->nid is the fragment.
Beide oben genannten erzeugen eine URL wie Produkte # 123, wobei 123 der Wert der Variablen $ node-> nid ist.
drupal_goto verliert #zzz, wenn es eine? destination = foobar # zzz gibt, da dies von $ _SERVER niemals zurückgegeben wird.
//$options['fragment'] = $destination['fragment']; // removed
is the same as
$options['fragment']='';