2012-03-09 12 views
7

Chciałbym uciec plik, który mam w tymsurowe lub uciec na to w gałązka

następujący kod nie ujdzie znaczniki HTML w pliku „_custom_plugin_script.html.twig”. Czy istnieje inny sposób?

<pre> 
    {% autoescape true %} 
     {% include "_custom_plugin_script.html.twig" | raw %} 
    {% endautoescape %} 
</pre> 

Po paru dniach znalazłem obejście, ale nie odpowiedź. Więc pierwszy surowiec nie ucieknie, dlatego powinienem użyć ucieczki. Jednak raw i escape nie będą działać w ciągu {%%}, ale w {{}}.

Więc tutaj jest obejście

zawartość działaniu

$customPluginScript = $app['twig']->render('_custom_plugin_script.html.twig', array(
    'data' => $data, 
)); 


return $app['twig']->render('confirm.html.twig', array(
    'data' => $data, 
    'customPluginScript' => $customPluginScript 
)); 

a część confirm.html.twig

<script> 
// don't escape content of customPluginScript 
    {{ customPluginScript | raw }} 
</script> 


<!-- escape content of customPluginScript --> 
<pre> 
    {{ customPluginScript }} 
</pre> 
+2

['{{var | raw}}'] (http://twig.sensiolabs.org/doc/filters/raw.html) było tym, czego szukałem, gdy znalazłem to pytanie za pośrednictwem Google. –

Odpowiedz

13
{% filter escape %} 
    {% include '...' %} 
{% endfilter %} 

Zobacz docs dla details.

+0

To może być poprawne. Dokumenty zostały zaktualizowane od tego czasu. Cieszę się, że moje rozwiązanie działa i nie muszę już pracować z Symfony2. Dziękuję Ci. Może ktoś inny może spróbować. Przekażę to zespołowi i mogą go zmienić. – vik

+0

Zanim zadałem pytanie, to nie działało, ale lepiej zaakceptować innych szukających odpowiedzi. – vik

+0

Działa to znakomicie do wyświetlania HTML jako elementów (np. Do przykładów widżetów kopiowania i wklejania). – Steve

2

Ponieważ jest to pierwszy wynik, który pojawia się podczas googlowania dla twig include raw Warto wspomnieć, że gałązkę obsługuje teraz to o następującej składni

{{ source('AcmeSomeBundle:Default:_custom_plugin_script.html.twig') }} 

Jednak to nie czyni szablon jak wspomniano przez barius.

+1

'Funkcja źródłowa zwraca zawartość szablonu bez renderowania go" - jak rozumiem, to nie renderuje gałązki. '| raw' nie służy do renderowania lub nie renderowania gałązek, chodzi o wyjście wychodzące. –

Powiązane problemy