2016-07-08 5 views
8

क्या एसवीजी फ़ाइल से सीधे कोड को टॉगल टेम्पलेट फ़ाइल में लेना संभव है?ट्विग: एक एसवीजी फ़ाइल से बाहरी कोड शामिल करें

कुछ की तरह:

{% include 'my.svg' %} 

में परिणाम होगा कि:

<svg viewbox=".... /> 
+1

यदि आप उस फ़ाइल को अपने टेम्पलेट फ़ोल्डर में रखते हैं, तो सुनिश्चित करें कि – DarkBee

उत्तर

1

आप एक नया चर की स्थापना के माध्यम से एक Drupal8 विषय में कर सकते हैं:

function theme_preprocess_page(&$variables) { 
    $svg = file_get_contents(drupal_get_path('theme', 'socialbase') . '/images/icons.svg'); 
    $variables['svg_sprite'] = t('svg', array('svg' => $svg)); 
} 

अपने टहनी फ़ाइल में आप इसे प्रिंट कर सकते हैं:

{{ svg_sprite }} 
4

एक समान समस्या थी, मेरे svgs को .twig फ़ाइलों का नाम बदलने के लिए समाप्त हो गया। ऐसा करने का

{% include 'my.svg.twig' %}

+1

हाँ, वही है;) –

0

मेरे लिए, यह काम किया:

{% include '/images/my.svg' %} 

बस एक त्वरित अद्यतन करता है, तो आप Drupal 8 का उपयोग कर रहे हैं क्योंकि पी में कोड रहस्यमय उत्तर मेरे लिए काम नहीं किया। इस तरह मैंने किया है:

function theme_preprocess_page(&$variables) { 
    $svg = file_get_contents(drupal_get_path('theme', 'theme_name') . '/images/my.svg'); 
    $variables['some_svg'] = $svg)); 
} 

और टहनी फ़ाइल में मैं इसे इस तरह outputed:

{{ some_svg|raw }} 
1

विषय के मामले में यह {{ directory }} चर कि विषय के लिए पथ रखती उपयोग करने के लिए अच्छा विकल्प है।

{{ source(directory ~ '/images/my.svg') }} 
संबंधित मुद्दे