Message d'avertissement

The subscription service is currently unavailable. Please try again later.

Ouvrir un lien du menu dans une nouvelle page

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Dans le champs "chemin" d'élément de mon menu j'ai une URL (http://unsite.com) que je souhaiterais ouvrir dans un nouvelle fenêtre.

Existe-il un astuce pour celà.

Merci

Jérôme

Version de Drupal : 

Pourquoi pas un peu de JavaScript non-obtrusif ?

window.onload = function() {
  document.getElementById('ton-lien').setAttribute('target', '_blank');
}

Bon, jte dis ça parce que je suis dans une phase JavaScript en ce moment, mais tu pourrais aussi utiliser la fonction _phptemplate_variables() dans template.php, parcourir tes liens de menu dans la variable $vars['primary_links'], et ajouter l'attribut target="_blank" sur le lien approprié.

J'ai opté pour le javascript, ça marche bien.
J'ai tout de même dû modifier dans le fichier menu.inc la fonction menu_item_link($mid, $theme = TRUE) afin d'ajouter l'id du lien basé sur la dercription.

'attributes' => !empty($item['description']) ? array('id' => $item['description']) : array()

J'ai enfin inséré le javascript dans le fichier page.tpl.php

window.onload = function() {
document.getElementById('ton-lien').setAttribute('target', '_blank');
...
}

En tout cas merci

j'essaierais le jquery

a+

Jérôme

Hum... Perso je pense que c pas une bonne soluce que de modifier menu.inc...
C'est sur que c pas facile vu que les menus de drupal n'ont pas d'id par defaut (si je ne me trompe pas) ceci dit, meme sans id tu peux t'y retrouver avec jQuery:

Supposons que ton menu pointe vers le node/10 tu peux utiliser le jQuery suivant:

$(document).ready(function(){
   $('p a[href*=node/10]').attr("target", "_blank");
});

Chui pas sur a 100% de ma syntaxe, mais ca vaut la peine de tester et de pas hacker le core...

http://docs.jquery.com/Tutorials:How_to_Get_Anything_You_Want