Éléments de menu non cliquables


21

Dans un site Drupal 8, je veux ajouter des éléments de menu sans "lien", je pensais que le nolink était autorisé mais quand je suis entré, j'ai eu une erreur

Les chemins entrés manuellement doivent commencer par /,? ou #.

Existe-t-il un moyen d'ajouter des éléments de menu non cliquables sans ajouter "#" car "#" ajoute l'attribut [data-drupal-link-system-path = ""] et [class = "is-active"]

Réponses:


45

Vous devez utiliser route:<nolink>pour y parvenir. Il sera ensuite validé et rendu sans lien.


Merci beaucoup, je l'ai essayé et ça fonctionne bien, mais en ajoutant toujours des attributs de [data-drupal-link-system-path = "<front>"] et [class = "is-active"]
Mohamed Osama Gbril

1
C'est un problème distinct de ce que vous essayez de réaliser et soit un bug de base ou un problème avec votre thème, mais route:<nolink>c'est certainement la réponse. Cela fonctionne même avec Pathauto.
Kevin

Le bogue de classe "is-active" a été signalé ici: drupal.org/project/drupal/issues/2838351
FiNeX

Ça a marché pour moi. Merci pour cette solution bien informée.
Élève du

2

Pour créer un élément de menu sans lien dans un module personnalisé, ajoutez à [nom_module] .links.menu.yml:

url: 'internal:##'

Vous devez ajouter un deuxième caractère # (ou toute autre lettre ou mot url: 'internal:#nolink') pour que l'attribut href ne soit pas rendu vide, ce qui entraînera un rechargement de la page si l'utilisateur clique sur le lien.


C'est aussi une bonne solution. Pour moi, mieux que de supprimer le lien, cela supprime la balise <a> puis cet élément de menu perd les styles css correspondants.
Juanmi


0

Pour Drupal 8, vous pouvez créer un lien par programme à l'aide de Link :: fromTextAndUrl non lié comme ça:

$my_link = Link::fromTextAndUrl(t('This is my link text'), Url::fromUri('route:<nolink>'));

En option, vous pouvez le convertir en tableau en utilisant: $my_link = $my_link->toRenderable();

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.