J'essaie d'utiliser Drupal 8, avec un thème personnalisé, en raison de grandes différences de structure pour mes besoins J'ai une page - front.twig.html et une page.twig.html, je voudrais créer des parties de modèle comme utilisé dans phrozn oder dans un projet Symfony2 normal, par exemple un footer.html.twig et un header.html.twig. Ces modèles sont enregistrés dans un sous-répertoire / parts /.
Mais quand j'appelle ces modèles comme d'habitude, je reçois juste une chaîne avec le nom du modèle.
Par exemple:
{# in page.html.twig or page--front.html.twig #}
{% include 'parts/footer.html.twig' %}
Renvoie le nom du fichier sous forme de chaîne:
parts/footer.html.twig
Est-il possible de le faire avec Drupal 8?
include
il de la transmission de valeurs? Supposons que je souhaite inclureimage-formatter
et passer leurl
null pour éviter de créer une image liée.@mytheme
résout le chemin demytheme
+ la chaîne/templates
. En d'autres termes,@mytheme
résout lemytheme/templates
répertoire.@mytheme
résout en «thèmes / personnalisé / mythème / modèles» . Inclure un modèle situé à@mytheme/fragments/footer.html.twig
signifie qu'il se résoudra en 'thèmes / personnalisé / mythème / modèles / fragments / footer.html.twig'Utilisez un chemin d'accès complet au répertoire du thème. Si vous utilisez l'espace de noms, vous devrez le changer si vous apportez le code à un autre site ou thème.
Cela devrait fonctionner:
la source
Il est également possible d'utiliser l'utilisation d'un tableau par Twig pour créer un repli lorsque le fichier n'existe pas.
Par exemple. Si footer.html.twig n'est pas disponible, defaultfooter.html.twig serait utilisé.
Combinez cela avec l'utilisation de variables dans les noms de fichiers et vous pouvez inclure différents fichiers en fonction d'une sorte de contexte.Nb: J'essaie toujours de déterminer si c'est la meilleure pratique ou non.
la source
Notez que vous pouvez transmettre des variables après le
with
mot clé:Voir la documentation Twig http://twig.sensiolabs.org/doc/tags/include.html
la source
Maintenant que l' ajout de l'héritage du modèle Twig basé sur le registre de thèmes, l'activation de l'ajout de chargeurs Twig a été validé, vous pouvez également utiliser la ligne suivante.
la source
Pour Drupal 8
Inclure un fichier de brindilles dans le thème lorsque vous effectuez un
{% include 'FILE_NAME.html.twig' %}
Drupal s'attend à ce que votre FICHIER se trouve dans votre répertoire de thèmes actuel. Il suffit de le mettre là et ça va fonctionner.Inclure un fichier de brindille dans votre module
Si vous souhaitez l'ajouter dans un MODULE, vous devez le déclarer dans la fonction THEME. Dans votre fichier .module, ajoutez simplement ce qui suit:
Ensuite, placez votre fichier Twig dans YOUR_MODULE / template / FILE_NAME.html.twig
la source