Drupal 8 - Ajouter des suggestions de template pour les Noeuds
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