web-dev-qa-db-fra.com

Twig suggestions de modèles pour les modes d'affichage par défaut, compact et compte utilisateur)

Existe-t-il un moyen de créer un modèle différent de user.html.twig pour avoir un mode d'affichage différent lorsque j'utilise un compte par défaut, compact ou utilisateur

Quelque chose comme utilisateur - compact.html.twig?

6
usethe23

Vous pouvez le faire en créant une suggestion de thème alter hook dans votre thème.

/**
 * Implements hook_theme_suggestions_user_alter().
 *
 *   An array of alternate, more specific names for template files or theme
 *   functions.
 */
function MYTHEME_theme_suggestions_user_alter(&$suggestions, $vars, $hook) {

  // Define the view mode.
  $mode = $vars['elements']['#view_mode'];

  // Create a theme hook suggestion which has the view mode name in it.
  $suggestions[] = 'user__' . $mode;
}

Remarque: $vars['elements']['#view_mode']; A été dérivé de l'utilisation de kint($vars) sous cette fonction pour voir le tableau du mode d'affichage dans l'utilisateur.

Vous pouvez ajouter ce code au fichier .theme de votre thème, puis vider le cache. Une fois que vous avez vidé le cache, vous verrez les nouvelles suggestions de thèmes apparaître dans Twig debug.

Remarque, dans mon cas, je suis en "mode plein écran, c'est pourquoi user--full.html.twig Apparaît. Si vous visualisez l'utilisateur en mode compact, alors une suggestion de user--compact.html.twig Apparaîtra.

14
Danny Englander