Existe-t-il un moyen d'inclure un # dans drupal_goto?
je veux quelque chose comme ça
function MYMODULE_preprocess_node(&$variables) {
$node = $variables['node'];
switch ($node->type) {
case 'product':
drupal_goto("products#".$node->nid);
}
}
Pour Drupal 6,
Ce devrait être le 3ème paramètre
drupal_goto($path = '', $query = NULL, $fragment = NULL, $http_response_code = 302)
drupal_goto("products", NULL, $node->nid);
Pour Drupal 7
drupal_goto($path = '', array $options = array(), $http_response_code = 302)
drupal_goto("products", array('fragment' => $node->nid));
Dans Drupal 6 drupal_goto utilise son troisième paramètre pour la fragmentation. Si vous voulez créer l'url comme des produits # 345, vous devez passer son fragment comme troisième argument dans la fonction drupal_goto.
drupal_goto("products", NULL, $node->nid); // where $node->nid is the fragment.
Dans Drupal 7, vous devez passer le fragment comme paire de valeurs clés du tableau sur le deuxième paramètre de la fonction drupal_goto.
drupal_goto('products', array('fragment' => $node->nid)) ; // where $node->nid is the fragment.
Les deux ci-dessus produiront une URL comme les produits # 123, où 123 est la valeur de la variable $ node-> nid.
Cela a également fonctionné pour moi dans Drupal 7
drupal_goto( '/products/' . 'section', array( 'fragment' => 'subsection', 'alias' => TRUE ) );
drupal_goto perd #zzz s'il y a un? destination = foobar # zzz, car cela n'est jamais retourné par $ _SERVER, supprimez cette ligne comme rien à part casser des choses:
//$options['fragment'] = $destination['fragment']; // removed
is the same as
$options['fragment']='';