Estoy tratando de usar Drupal 8, con un tema personalizado, debido a las grandes diferencias de estructura para mis requisitos. Tengo una página: front.twig.html y page.twig.html, me gustaría crear partes de plantilla tal como se usan en phrozn oder en un proyecto Symfony2 normal, por ejemplo, footer.html.twig y header.html.twig. Estas plantillas se guardan en un subdirectorio / parts /.
Pero cuando llamo a estas plantillas normalmente, recibo una cadena con el nombre de la plantilla.
Por ejemplo:
{# in page.html.twig or page--front.html.twig #}
{% include 'parts/footer.html.twig' %}
Devuelve el nombre del archivo como cadena:
parts/footer.html.twig
¿Es posible hacer eso con Drupal 8?
include
y pasar valores? Supongamos que me gustaría incluirimage-formatter
y pasar elurl
valor nulo para evitar crear imágenes vinculadas.@mytheme
resuelve en la ruta demytheme
+ la cadena/templates
. En otras palabras, se@mytheme
resuelve en elmytheme/templates
directorio.@mytheme
resuelve en 'themes / custom / mytheme / templates' . La inclusión de una plantilla ubicada en@mytheme/fragments/footer.html.twig
significa que se resolverá en 'themes / custom / mytheme / templates / fragments / footer.html.twig'Utilice una ruta completa al directorio del tema. Si usa el espacio de nombres, tendrá que cambiarlo si lleva el código a otro sitio o tema.
Esto debería funcionar:
fuente
También es posible utilizar el uso de una matriz por parte de Twig para crear una reserva cuando el archivo no existe.
P.ej. Si footer.html.twig no está disponible, se usará defaultfooter.html.twig.
Combine esto con el uso de variables en los nombres de archivo y puede incluir diferentes archivos dependiendo de algún tipo de contexto.Nota: Todavía estoy tratando de determinar si esta es la mejor práctica o no.
fuente
Tenga en cuenta que puede pasar variables después de la
with
palabra clave:Consulte la documentación de Twig http://twig.sensiolabs.org/doc/tags/include.html
fuente
Ahora que se ha confirmado la herencia de la plantilla Agregar Twig basada en el registro de temas, habilite la adición de cargadores Twig , también puede usar la siguiente línea.
fuente
Para Drupal 8
La inclusión de un archivo de ramita en el tema cuando hace un
{% include 'FILE_NAME.html.twig' %}
Drupal espera que su ARCHIVO se encuentre en su Directorio de temas actual. Solo póngalo allí y funcionará.Incluyendo un archivo de ramita en su Módulo
Si desea agregarlo en un MÓDULO, debe declararlo en la Función TEMA. En su archivo .module simplemente agregue lo siguiente:
Luego, coloque su archivo Twig en YOUR_MODULE / template / FILE_NAME.html.twig
fuente