web-dev-qa-db-ja.com

メニューの新しいタブでリンクを開く

Drupal 8 with Bootstrap themeを使用していて、サブテーマとさまざまなメニューを作成しました。

メニューを編集しようとしましたtwigテンプレートですが、Twigにはあまり慣れていません。

リンクが新しいタブで開くメニューを追加するにはどうすればよいですか?

6
usethe23

私の場合、これを実現するために hook_link_alter() を利用しました。状況:メニューリンクで、お問い合わせして新しいタブで開くだけです。

<?php
function MYMODULE_link_alter(&$variables) {
  if (!$variables['url']->isRouted()) {
    $uri = $variables['url']->getUri();
    // Only want the Contact Us to open in new tab.
    if ($uri == 'base:contact-us') {
      $variables['options']['attributes'] = ['target' => '_blank'];
    }
  }
}
5
mikeDOTexe

これはすべての外部リンクに対して正常に機能します。

function MYMODULE_link_alter(&$variables) {
  if ($variables['url']->isExternal()) {
    $variables['options']['attributes'] = ['target' => '_blank'];
  }
}
3
Roman Deiloff

メニューターゲット D8の開発バージョンのモジュールですが、確認できます。

特権ユーザーがメニュー項目を新しいウィンドウで開くかどうかを選択できるようにします。有効にすると、メニュー項目を追加または編集するアクセス権を持つユーザーに、メニュー項目を新しいウィンドウで開くか同じウィンドウで開くかを選択できるようになります。

2
DRUPWAY

メニューリンク属性 モジュールはDrupal 8.の場合、箱から出してこれを解決します。ただし、メニューの各リンクに設定する必要があります。

1
vegardjo