Saltar al contenido

¿Cómo usar un estilo de imagen en una plantilla twig de Drupal 8?

Hola usuario de nuestra web, hemos encontrado la respuesta a tu interrogante, deslízate y la verás un poco más abajo.

Solución:

Actualmente, Drupal 8 no tiene un filtro especial para aplicar estilos de imagen. En su lugar, puede establecer nuevos attribute para tu imagen así:

% set image = image

Luego simplemente genera tu imagen actualizada:

 image 

PD Tu puedes hacer dump(image) Ver qué attributes puedes actualizar

Resuelvo esto creando mi propio Filtro de ramita.

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

Siéntete libre de reutilizarlo.

Código

namespace Drupaltwig_extenderTwigExtension;

use DrupalnodeEntityNode;
use DrupalCoreLink;
use DrupalCoreUrl;

use DrupalfileEntityFile;
use DrupalimageEntityImageStyle;

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']) %

Entonces tienes acceso a la imagen y los estilos de origen.

 transform.source 
 transform.thumbnail 
 transform.large 

Espero que te ayude chico!

Acuérdate de que tienes la opción de decir si topaste tu asunto .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *