web-dev-qa-db-ja.com

役割に基づいてバナー画像を取得するにはどうすればよいですか?

ログインしたユーザーの役割に応じて変化するバナーをホームページに表示したいのですが、どうすれば達成できますか?
編集しようとしています 'page--front.html.twig '。しかし、ログインしたユーザーの役割を取得できません。このtwigファイル内のユーザーの役割を確認するにはどうすればよいですか?

3
rks

Drupal管理UIから個々のロールに複数のブロックを作成したことを考慮してください。

enter image description here

各ブロックの役割を賢く制限できます。

3
DRUPWAY

テーマのフォルダーに移動し、themename.themeファイルに以下を追加します。

function themename_preprocess_page(&$variables) {
  if (\Drupal::service('path.matcher')->isFrontPage()) {
    $variables['role'] = \Drupal::currentUser()->getRoles();
  }
}

次に、ページ--front.html.twigで、例:

{% if role == 'administrator' %}
  <p><img src="/sites/default/files/banner/banner.jpg"/></p>
{% elseif role == 'anonymous' %}
  <p><img src="/sites/default/files/banner/banner2.jpg"/></p>
{% endif %}

:将来これらの画像を切り替えることができる必要があり、サイトを管理している人が知らない場合TwigまたはFTP、 これがより良い答えです

2
No Sssweat

スライダーをブロックとして作成し、必要な役割に応じてそのブロックの権限を設定できます。

0
Karuna