Voci di menu non cliccabili


21

In un sito Drupal 8, voglio aggiungere voci di menu senza "nessun collegamento", pensavo che nolink fosse consentito ma quando sono entrato in questo, ho ricevuto un errore

I percorsi inseriti manualmente dovrebbero iniziare con /,? o #.

C'è un modo per aggiungere voci di menu non cliccabili senza aggiungere "#" perché "#" aggiunge l'attributo [data-drupal-link-system-path = ""] e [class = "is-active"]

Risposte:


44

È necessario utilizzare route:<nolink>per raggiungere questo obiettivo. Quindi verrà convalidato e renderizzato senza un collegamento.


Grazie mille, l'ho provato e funziona benissimo, ma ancora aggiungendo gli attributi di [data-drupal-link-system-path = "<front>"] e [class = "is-active"]
Mohamed Osama Gbril

1
Questo è un problema separato da quello che stai cercando di ottenere e un bug principale o un problema con il tuo tema, ma route:<nolink>è sicuramente la risposta. Funziona anche con Pathauto.
Kevin,

Il bug di classe "is-active" è stato segnalato qui: drupal.org/project/drupal/issues/2838351
FiNeX

Ha funzionato per me. Grazie per una soluzione così ben informata.
Allievo

2

Per creare una voce di menu senza collegamento in un modulo personalizzato, aggiungere a [nome_modulo] .links.menu.yml:

url: 'internal:##'

È necessario aggiungere un secondo carattere # (o qualsiasi altra lettera o parola url: 'internal:#nolink') affinché l'attributo href non venga reso vuoto, il che causerà un ricaricamento della pagina se l'utente fa clic sul collegamento.


Questa è anche una buona soluzione. Per me è meglio che rimuovere il collegamento, che rimuove il tag <a> e quindi questa voce di menu perde gli stili CSS corrispondenti.
Juanmi,


0

Per Drupal 8 è possibile creare un collegamento a livello di codice utilizzando Link :: fromTextAndUrl non collegabile in questo modo:

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

Opzionalmente puoi convertirlo in un array usando: $my_link = $my_link->toRenderable();

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.