Drupal 8 & Drupal 9 - 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

Contenus en rapport

Drupal 8 & Drupal 9 - Ajouter un champ Media dans un formulaire et l'afficher dans un template

VIa le module media_library_form_element, Voici comment ajouter un champ de type « référence à un media » dans un formulaire personnalisé en utilisant le widget Media Library :

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...