Drupal 8: Twig tweak

drupal 8.png
Solucionex
26
Feb 16

Llevamos un tiempo jugando con Drupal 8. Ya sabéis cómo funciona esto: el core está bastante estable, han absorbido varios módulo de importancia (como views), etc. Sin embargo siempre tenemos que tirar de módulos contribuidos para obtener la funcionalidad que buscamos.

Una de las grandes novedades de Drupal 8 es Twig, y todos sabemos que el theming es una de las cosas más importantes y que más tiempo lleva en el desarrollo de Drupal.

Twig tweak es un módulo para Drupal 8 que en cuanto lo uses, te lo quedarás. Es una extensión de twig que proporciona una serie de funciones para insertar bloques, vistas, entidades, tokens on configuraciones. Incluso te permite insertar un bloque de código PHP en la plantilla.

Obviamente esto es una mala práctica que los desarrolladores del módulo también desaconsejan.

Para usarlo simplemente deberemos usar las siguientes funciones:

{# Insertar una vista #} {{ drupal_view('nombre_vista', 'page_1') }} {# Insertar un bloque #} {{ drupal_block('bartik_powered') }}}
{# Insertar una entidad #} {{ drupal_entity('node', 1, 'teaser') }}} {# Usar un token #} {{ drupal_token('site:name') }} {# Usar la configuración del sitio #} {{ drupal_config('system.site', 'name') }}

Cabe mencionar que puedes encontrarte con problemas como que hagas un bloque personalizado, y no sepas cómo llamarlo desde la vista. El problema está en que esos bloques personalizados no tienen un nombre máquina. Son una especie de "plantillas" que se pueden crear tantos bloques como quieras.

Lo que hay que hacer es crear un bloque personalizado dentro de una región en el diseño de bloques. Tras asignarle una región, se generará un nombre máquina que podremos referenciar en la plantilla y podremos insertarlo como hemos visto anteriormente.