Drupal 8サイトで、「リンクなし」のメニュー項目を追加したいのですが、リンクなしが許可されていると思っていましたが、これを入力するとエラーが発生しました
手動で入力したパスは、/ 、?または#。
「#」を追加せずにクリックできないメニュー項目を追加する方法はありますか。「#」は属性[data-drupal-link-system-path = ""]と[class = "is-active"]を追加するためです。
これを実現するには、route:<nolink>
を使用する必要があります。次に、リンクなしで検証およびレンダリングします。
カスタムモジュールでリンクなしのメニューアイテムを作成するには、[module_name] .links.menu.ymlに追加します。
url: 'internal:##'
2番目の#文字(またはその他の文字またはWord url: 'internal:#nolink'
)を追加して、href属性が空にレンダリングされないようにする必要があります。これにより、ユーザーがリンクをクリックしたときにページが再ロードされます。
そして、アイテムのクラスまたはスタイルを追加します[a style = "pointer-events:none; cursor:default; text-decoration:none;" ...] [/ a]
pointer-events:none; cursor:default; text-decoration:none;
Drupal 8の場合、Link :: fromTextAndUrlを使用してプログラムでリンクを作成できます。このようにリンクできません。
_$my_link = Link::fromTextAndUrl(t('This is my link text'), Url::fromUri('route:<nolink>'));
_
オプションで、以下を使用して配列に変換できます:$my_link = $my_link->toRenderable();