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