Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent output escaping in Twig function extension

Tags:

twig

symfony

I have created a Twig extension:

{{ image ("image.png", 200) }} 

HI know I can just do

{{ image ("image.png", 200)|raw }} 

...but I would prefer to use PHP code so that everything (from this 'image' extension) is not escaped.

I can't see this possible.

I know I can prevent all output escaping in Twig, but I just want this one extension not to escape output, and everything else to do so.

like image 681
user2143356 Avatar asked Mar 31 '13 13:03

user2143356


1 Answers

This can be done by adding an option at the extension registration.

public function getFilters(){     return array(         // ...         'image' => new \Twig_Filter_Method($this, 'imageFilter',             array('is_safe' => array('html'))         ),         // ...     ); } 

This will provide unescaped input HTML and return unescaped HTML output. If you need to work with escaped HTML input, see the option 'pre_escaped' => 'html'.

like image 146
Hugo Dozois Avatar answered Sep 23 '22 10:09

Hugo Dozois