Item Menu Tidak Dapat Diklik

21

Di situs Drupal 8, saya ingin menambahkan item menu dengan "tanpa tautan", saya berpikir bahwa nolink diperbolehkan tetapi ketika saya memasukkan ini, saya mendapat kesalahan

Jalur yang dimasukkan secara manual harus dimulai dengan /,? atau #.

Apakah ada cara untuk menambahkan item menu yang tidak dapat diklik tanpa menambahkan "#" karena "#" menambahkan atribut [data-drupal-link-system-path = ""] dan [class = "is-active"]

Mohamed Osama Gbril
sumber

Jawaban:

44

Anda perlu menggunakan route:<nolink>untuk mencapai ini. Maka itu akan memvalidasi dan membuat tanpa tautan.

Kevin
sumber
Terima kasih banyak, saya mencobanya dan berfungsi dengan baik, tetapi masih menambahkan atribut [data-drupal-link-system-path = "<front>"] dan [class = "is-active"]
Mohamed Osama Gbril
1
Itu adalah masalah terpisah dari apa yang Anda coba capai dan bug inti atau masalah dengan tema Anda, tetapi route:<nolink>jelas jawabannya. Ia bahkan bekerja dengan Pathauto.
Kevin
Bug kelas "is-active" telah dilaporkan di sini: drupal.org/project/drupal/issues/2838351
FiNeX
Itu berhasil untuk saya. Terima kasih atas solusi yang luas.
Murid
2

Untuk membuat item menu tanpa tautan dalam modul khusus, tambahkan ke [module_name] .links.menu.yml:

url: 'internal:##'

Anda perlu menambahkan karakter # kedua (atau huruf atau kata lain url: 'internal:#nolink') agar atribut href tidak dikosongkan, yang akan menyebabkan halaman dimuat ulang jika pengguna mengklik tautan.

Tamu312312
sumber
Ini adalah solusi yang bagus juga. Bagi saya lebih baik daripada menghapus tautan, yang menghapus tag <a> dan item menu ini kehilangan gaya css yang sesuai.
Juanmi
0

Untuk Drupal 8 Anda dapat membuat tautan secara terprogram menggunakan Link :: fromTextAndUrl yang tidak dapat ditautkan seperti itu:

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

Secara opsional, Anda dapat mengonversinya menjadi array menggunakan: $my_link = $my_link->toRenderable();

Javi García
sumber