Các mục menu không thể nhấp


21

Trong trang web Drupal 8, tôi muốn thêm các mục menu với "không có liên kết", tôi đã nghĩ rằng nolink được cho phép nhưng khi tôi nhập cái này, tôi đã gặp lỗi

Đường dẫn nhập thủ công nên bắt đầu bằng /,? hoặc là #.

Có cách nào để thêm các mục menu không thể nhấp mà không thêm "#" vì "#" thêm thuộc tính [data-drupal-link-system-path = ""] và [class = "is-active"]

Câu trả lời:


44

Bạn cần sử dụng route:<nolink>để đạt được điều này. Sau đó, nó sẽ xác nhận và kết xuất mà không cần một liên kết.


Cảm ơn rất nhiều, tôi đã dùng thử và nó hoạt động tốt, nhưng vẫn thêm các thuộc tính của [data-drupal-link-system-path = "<front>"] và [class = "is-active"]
Mohamed Osama Gbril

1
Đó là một vấn đề riêng biệt với những gì bạn đang cố gắng đạt được và một lỗi cốt lõi hoặc vấn đề với chủ đề của bạn, nhưng route:<nolink>chắc chắn là câu trả lời. Nó thậm chí hoạt động với Pathauto.
Kevin

Lỗi lớp "đang hoạt động" đã được báo cáo ở đây: drupal.org/project/drupal/issues/2838351
FiNeX

Nó làm việc cho tôi. Cảm ơn cho một giải pháp am hiểu.
Học sinh

2

Để tạo một mục menu không có liên kết trong một mô-đun tùy chỉnh, hãy thêm vào [module_name] .links.menu.yml:

url: 'internal:##'

Bạn cần thêm ký tự # thứ hai (hoặc bất kỳ chữ cái hoặc từ nào khác url: 'internal:#nolink') để thuộc tính href sẽ không được hiển thị trống, điều này sẽ gây ra tải lại trang nếu người dùng nhấp vào liên kết.


Đây cũng là một giải pháp tốt. Đối với tôi tốt hơn là xóa liên kết, loại bỏ thẻ <a> và sau đó mục menu này mất các kiểu css tương ứng.
Juanmi


0

Đối với Drupal 8, bạn có thể tạo một liên kết theo chương trình bằng cách sử dụng Link :: fromTextAndUrl không thể liên kết như thế:

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

Tùy chọn bạn có thể chuyển đổi nó thành một mảng bằng cách sử dụng: $my_link = $my_link->toRenderable();

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.