Liens externes

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,
deux questions:
1: j'ai créé un bloc de liens externes, j'aimerai que ces liens s'ouvrent dans une autre fenêtre, ou mieux, dans un nouvel onglet pour les navigateurs qui le supportent. En ajoutant un 'target' dans le code html, ça le ferait, mais j'ai créé des entrées de menu avec Drupal, et je ne sais pas comment faire cela.

2: Comment obtenir des menus déroulants au niveau de mes "primary links"? Cette question est probablement plus une question sur html & css, mais comme j'utilise une version à peine modifiée de pushbutton, peut être qqn saura-t-il raccourcir mes recherches sur le sujet...

merci par avance!

Didier

Liens externes qui s'ouvrent dans une nouvelle fenêtre une bonne fois pour toute... J'ai adapté la méthode de ce tutoriel d'alsacréation pour drupal :

ça donne :

  1. dans le dossier du thème, créer un dossier "js"

  2. dans le head du template (page.tpl.php), ajouter le code suivant :

<script type="text/javascript">
<?php /* Needed to avoid Flash of Unstyle Content in IE */ ?> </script>
<script type="text/javascript" src="<?php print base_path().path_to_theme(); ?>/js/liens.js" />
  1. créer le fichier contenant le script js :
function open_ext_link()
{
var liens = document.getElementsByTagName('a');
  // On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
// Une boucle qui parcourt le tableau (array) liens du début à la fin.
for (var i = 0 ; i < liens.length ; ++i)  {
     // Si les liens ont un nom de class égal à lien_ext, alors on agit.
         var classes = new Array();
        classes = liens[i].className.split(' ');
        
       if (classes.indexOf('nom_class_lien_externe') != -1)  {
            var title = "";
          if (liens[i].title.length != 0) {
              title = liens[i].title + " ";
            }
          liens[i].title = 'nouvelle fenêtre';
         // Au clique de la souris.
     
     
           liens[i].onclick = function()  {
               window.open(this.href);
                return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
           };
     }
  }
}
window.onload = open_ext_link;
// Au chargement de la page, on appelle la fonction.

et enregistrer ce fichier sous le nom "liens.js" dans le dossier "theme/mon-theme/js" créé à l'étape 1.

Personnalisation :
- remplacer "nom_class_lien_externe" par le nom de la classe que l'on souhaite utiliser pour personnaliser les liens externes
- le liens[i].title = 'nouvelle fenêtre'; indique que le "title" de tous ces liens sera "nouvelle fenetre" : c'est pas génial en terme d'accessibilité > à modifier à sa convenance ^^