ログインしたユーザーの役割に応じて変化するバナーをホームページに表示したいのですが、どうすれば達成できますか?
編集しようとしています 'page--front.html.twig
'。しかし、ログインしたユーザーの役割を取得できません。このtwigファイル内のユーザーの役割を確認するにはどうすればよいですか?
テーマのフォルダーに移動し、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、 これがより良い答えです 。
スライダーをブロックとして作成し、必要な役割に応じてそのブロックの権限を設定できます。