2015-11-03 13 views
9

Görüntüyü drupal 8 temamda oluşturduğum bir görüntü stili kullanarak yazdırmaya çalışıyorum.Görüntü stili Drupal 8 dal şablonunda nasıl kullanılır?

Bir görüntüyü bir şablona {{content.banner}} yaparak basabilirim, ancak görüntü stilini o resme nasıl uygularım? Belge aramayı denedim ama orada herhangi bir şey yok gibi görünüyor.

cevap

11

Şu anda drupal 8'in, resim stili uygulamak için özel filtresi bulunmamaktadır. Bunun yerine böyle Resminiz için yeni bir öznitelik ayarlayabilirsiniz:

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

Sonra sadece çıkış güncellenmiş resim:

{{ image }} 

P.S.. Ne gibi özellikleri güncelleştirebilirsiniz {{ dump(image) }}

+0

Ayrıca, içerik türü ayarlarında da bulunduğum gibi, bu içerik türünün tüm resimlerini Görüntü Stilinde X olarak görüntüleyebilirsiniz. Bu sayede bunu cevaplarımdan yapabilirim, ancak sizinki daha iyi olur. – Kato

+1

"image" için hangi değişkeni kullanmalıyım? content.field_bloc_1_image.entity şu şekilde çalışmıyor: s –

+0

Bunu işe alamadım. Resim stilini kullanmıyor mu? {% Set image = content.field_global_image | merge ({'# image_style': 'küçük resim'})%} {{image}} – paulcap1

4

Ne yazık ki bunu kendi Twig Filter oluşturarak çözebilirsiniz.

Bunu, kendi Filtresini görüntüleyen kendi modülünüzü oluşturarak yapabilirsiniz.

Yeniden kullanmaktan çekinmeyin.

Kod

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; 
     } 
} 

Kullanımı Sonra & stilleri

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

o yo yardımcı olacaktır Umut

kaynak görüntüye erişebilir

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

sen adamım!

+0

Yukarıdaki yöntemi denedim. Yukarıdaki kodu '/ modules/custom_module/src/TwigExtension/Images.php' içine koydum ama yine de Twig_Error_Syntax: Unknown" image_style "fonksiyonunda hata alıyorum. Twig_ExpressionParser içinde -> .. ' – ARUN

+0

Şu andan itibaren Bambu Twig (Drupal 8 modülü) kullanıyorum. Hangi Bambu Twig Loader uzantısında, 2 twig görüntü işlemek için işlev görür. İşte Bambu Twig'in doktoru: https://www.drupal.org/docs/8/modules/bamboo-twig/usage. İşlevler 'bamboo_render_image' &' bamboo_render_image_style'. –