Drupal 8 - Ajouter des suggestions de template pour les Noeuds

Posté le Jeudi 14 septembre 2017 - 16:18
Dernière mise à jour le Vendredi 26 janvier 2018 - 18:35

Dans drupal 8, parfois le thème ajoute des suggestions de template qui vont bien, en fonction du type de noeud et du view_mode, mais ça n'est pas toujours le cas, voici comment faire pour ajouter des suggestions de template via le hook HOOK_theme_suggestions_HOOK() :

function MONMODULE_theme_suggestions_node(array $variables) {
  $suggestions = [];
  /** @var \Drupal\node\Entity\Node $node */
  $node = $variables['elements']['#node'];
  $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_');
  $suggestions[] = $variables['theme_hook_original'] . '__' . $sanitized_view_mode;
  $bundle = $node->bundle();
  $sanitized_bundle = strtr($bundle, '.', '_');
  $suggestions[] = $variables['theme_hook_original'] . '__' . $sanitized_bundle;
  $suggestions[] = $variables['theme_hook_original'] . '__' . $sanitized_bundle . '__' . $sanitized_view_mode;
  return $suggestions;
}

Pour un type de contenu article en mode de vue teaser on aura ainsi les possibilités de templates suivantes :

  • node.html.twig
  • node--article.html.twig
  • node--teaser.html.twig
  • node--article--teaser.html.twig
 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...