web-dev-qa-db-ja.com

クリックできないメニュー項目

Drupal 8サイトで、「リンクなし」のメニュー項目を追加したいのですが、リンクなしが許可されていると思っていましたが、これを入力するとエラーが発生しました

手動で入力したパスは、/ 、?または#。

「#」を追加せずにクリックできないメニュー項目を追加する方法はありますか。「#」は属性[data-drupal-link-system-path = ""]と[class = "is-active"]を追加するためです。

21

これを実現するには、route:<nolink>を使用する必要があります。次に、リンクなしで検証およびレンダリングします。

48
Kevin

カスタムモジュールでリンクなしのメニューアイテムを作成するには、[module_name] .links.menu.ymlに追加します。

url: 'internal:##'

2番目の#文字(またはその他の文字またはWord url: 'internal:#nolink')を追加して、href属性が空にレンダリングされないようにする必要があります。これにより、ユーザーがリンクをクリックしたときにページが再ロードされます。

2
Guest312312

そして、アイテムのクラスまたはスタイルを追加します[a style = "pointer-events:none; cursor:default; text-decoration:none;" ...] [/ a]

pointer-events:none; cursor:default; text-decoration:none;
1
Promo IL

Drupal 8の場合、Link :: fromTextAndUrlを使用してプログラムでリンクを作成できます。このようにリンクできません。

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

オプションで、以下を使用して配列に変換できます:$my_link = $my_link->toRenderable();

0
Javi García