É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"]

Mohamed Osama Gbril
la source

Réponses:

45

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

Kevin
la source
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.

Guest312312
la source
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();

Javi García
la source