2015-11-03 4 views
9

मैं एक छवि शैली का उपयोग कर एक छवि मुद्रित करने की कोशिश कर रहा हूं जिसे मैंने अपने ड्रोपल 8 थीम में बनाया है।ड्रूपल 8 ट्विग टेम्पलेट में छवि शैली का उपयोग कैसे करें?

मैं {{content.banner}} करके एक टेम्पलेट में एक छवि मुद्रित कर सकता हूं लेकिन मैं उस छवि में छवि शैली को कैसे लागू करूं? मैंने दस्तावेज़ीकरण की तलाश करने की कोशिश की लेकिन वहां कोई भी प्रतीत नहीं होता है।

उत्तर

11

वर्तमान में ड्रूपल 8 में छवि शैली लागू करने के लिए विशेष फ़िल्टर नहीं है। इसके बजाय आप इस तरह अपनी छवि के लिए नई विशेषता सेट कर सकते हैं:

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

तब बस अपने उत्पादन अपने अद्यतन छवि:

{{ image }} 

पी.एस। आप {{ dump(image) }} को

+0

मैं वास्तव में सामग्री प्रकार सेटिंग्स में भी पाया, आप छवि सामग्री एक्स के लिए उस सामग्री प्रकार के लिए सभी छवियां प्रदर्शित कर सकते हैं। इसलिए मैं इसे अपने उत्तर या आपके से कर सकता हूं, लेकिन आपका बेहतर आईएमओ है। – Kato

+1

"छवि" के लिए मुझे किस चर का उपयोग करना चाहिए? content.field_bloc_1_image.entity उदाहरण के लिए काम नहीं करता है: s –

+0

मैं इसे काम पर नहीं मिला। यह छवि शैली का उपयोग नहीं करता है? मेरे पास {% सेट छवि = content.field_global_image | विलय ({'# image_style': 'थंबनेल'})%} {{image}} – paulcap1

4

अपडेट कर सकते हैं यह देखने के लिए कि मैं अपना खुद का ट्विग फ़िल्टर बनाकर इसे हल कर सकता हूं।

आप फ़िल्टर को उजागर करने के अपने स्वयं के मॉड्यूल बनाकर ऐसा कर सकते हैं।

इसे फिर से उपयोग करने के लिए स्वतंत्र महसूस करें।

कोड

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

प्रयोग

{% set transform = image_style(image.entity.fid.value, ['thumbnail', 'large']) %} 
तो फिर तुम & शैलियों

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

आशा है कि यह यो में मदद मिलेगी स्रोत छवि के लिए उपयोग किया

तुम आदमी!

+0

मैंने विधि से ऊपर की कोशिश की है। मैंने उपरोक्त कोड को '/ मॉड्यूल/custom_module/src/TwigExtension/images.php' में रखा है लेकिन फिर भी त्रुटि' Twig_Error_Syntax: अज्ञात "image_style" फ़ंक्शन प्राप्त हो रहा है। Twig_ExpressionParser में -> .. – ARUN

+0

अब से मैं बांस ट्विग (ड्रूपल 8 मॉड्यूल) का उपयोग कर रहा हूं। बांस ट्विग लोडर एक्सटेंशन में, जो छवियों को प्रस्तुत करने के लिए 2 ट्विग फ़ंक्शंस में खुलासा करते हैं। यहां बांस ट्विग का दस्तावेज़: https://www.drupal.org/docs/8/modules/bamboo-twig/usage। फ़ंक्शन 'bamboo_render_image' और' bamboo_render_image_style' हैं। –

संबंधित मुद्दे