J'ai deux types de contenu utilisant le même paragraphe que le champ, bien que le code du modèle soit fonction du type de contenu. Comment puis-je avoir différents noms de modèle pour le modèle de paragraphe en fonction du type de contenu.
Convention de dénomination actuelle: paragraph--paragraph-type.html.twig
Convention de dénomination souhaitée: paragraph--parent-content-type--paragraph-type.html.twig
Une autre solution sera d'obtenir l'url et de la transmettre en tant que variable dans le modèle et d'utiliser le code du modèle en fonction de l'URL transmise.
Ajoutez une suggestion de nom de thème:
mytheme.theme:
/**
* Implements hook_theme_suggestions_HOOK_alter().
*/
function mytheme_theme_suggestions_paragraph_alter(&$suggestions, $variables) {
$paragraph = $variables['elements']['#paragraph'];
$parent = $paragraph->getParentEntity();
if ($parent) {
$suggestions[] = 'paragraph__' . $parent->bundle() . '__' . $paragraph->bundle();
}
}
Utilisez différents modes d'affichage pour différents types de nœuds. Dans Strcuture> Types de paragraphes, ajoutez autant de modes d'affichage différents pour votre paragraphe, selon les besoins de vos types de nœuds. Dans Structure> Types de contenu, changez le mode d'affichage du champ de paragraphes du nœud en "Entité rendue" et utilisez la roue dentée pour sélectionner le mode d'affichage correspondant créé précédemment. Créez maintenant des fichiers de modèle comme paragraphe - type de paragraphe - nom-mode-de-vue.html.twig