Tips&Tricks de Twig para Drupal 8

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) }}
Dejar un comentario?

0 Comentarios.

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.