De vez en cuando me toca montar temas de Drupal 8 desde cero y aquí dejo un chuletero útil:
Lo básico lógicamente es definir variables:
{% set contador = 0 %}
Los if
{% if item.value == 1 %} {% elseif item.value == 2 %} {% else %} {% endif %}
Y recorrer arrays:
{% for key,item in items %} {% endfor %}
Si tenemos el depurador activado y queremos saber que variables están disponibles en la plantilla (sin usar el kint que te muestra demasiada información)
{{dump(_context|keys) }}
Obtener la ruta de un campo tipo imagen
{{ file_url(node.field_imagen)}}
Sacar el directorio del tema:
<img src="/{{ directory }}/images/left-arrow.png" alt="">
Sacar la ruta de un enlace a partir del id del nodo:
<a href="{{path('entity.node.canonical', {'node': item.nid})}}">
Pintar la traducción de un literal que tengamos dado de alta las traducciones:
{{ 'Search'|trans }}
Operador ternario
{{ contador > 4? 'display:none': ''}}
Mostrar en formato html un campo que contiene etiquetas:
{{content['#contenido']. body |raw}}
URL de la página actual:
<a href="{{ url('<current>') }}">
Generar un enlace pasándole el título, ruta y estilos:
{{ link(item.title, item.url, { 'class':['foo', 'bar', 'baz']} ) }}
Incluir librerías externas (css y js). Para ello primero debemos tener un bloque de liberias en el fichero libraries.yml del tema o del modulo instalado (en mi caso de mi tema themes/mitema/mitema.libraries.yml):
commands: version: VERSION js: js/commands.js: {} dependencies: - core/jquery css: base: css/referencias.css: {}
Y luego en la plantilla para incluir todas las librerías
{{ attach_library('mitema/commands) }}
0 Comentarios.