cache drupal twig drupal-8

cache - ¿Cómo usar un estilo de imagen en una plantilla de rama Drupal 8?



metatag drupal (2)

Resuelvo esto creando mi propio Filtro Twig .

Puede hacer lo mismo creando su propio módulo exponiendo este Filtro .

Siéntase libre de reutilizarlo.

Código

namespace Drupal/twig_extender/TwigExtension; use Drupal/node/Entity/Node; use Drupal/Core/Link; use Drupal/Core/Url; use Drupal/file/Entity/File; use Drupal/image/Entity/ImageStyle; class Images extends /Twig_Extension { /** * Generates a list of all Twig functions that this extension defines. */ public function getFunctions(){ return array( new /Twig_SimpleFunction(''image_style'', array($this, ''imageStyle''), array(''is_safe'' => array(''html''))), ); } /** * Gets a unique identifier for this Twig extension. */ public function getName() { return ''twig_extender.twig.images''; } /** * Generate images styles for given image */ public static function imageStyle($file_id, $styles) { $file = File::load($file_id); $transform = array(); if (isset($file->uri->value)) { $transform[''source''] = $file->url(); foreach ($styles as $style) { $transform[$style] = ImageStyle::load($style)->buildUrl($file->uri->value); } } return $transform; } }

Uso

{% set transform = image_style(image.entity.fid.value, [''thumbnail'', ''large'']) %}

Luego tienes acceso a la imagen y estilos de origen

{{ transform.source }} {{ transform.thumbnail }} {{ transform.large }}

Espero que te ayude chico!

Intento imprimir una imagen usando un estilo de imagen que he creado en mi tema drupal 8.

Puedo imprimir una imagen en una plantilla haciendo {{content.banner}}, pero ¿cómo aplico el estilo de imagen a esa imagen? Traté de buscar documentación, pero no parece haber ninguna por ahí.


Actualmente drupal 8 no tiene un filtro especial para aplicar el estilo de imagen. En su lugar, puede establecer un nuevo atributo para su imagen de esta manera:

{% set image = image|merge({''#image_style'': ''thumbnail''}) %}

Luego simplemente muestre su imagen actualizada:

{{ image }}

PD. Puedes hacer {{ dump(image) }} para ver qué atributos puedes actualizar