html-теги ветки symfony2 - PullRequest
       22

html-теги ветки symfony2

9 голосов
/ 03 ноября 2011

Я передаю переменную в свой шаблон ветки в Symfony2, эта переменная может содержать <br /> html-теги, я пытался создать расширение (функцию), но переменная все еще экранируется.Вывести переменную ветки, которая допускает тег <br />?Есть ли простое решение, чтобы просто разрешить белый список разрешенных тегов в определенных шаблонах?

Я искал о песочницах для веток, но я не уверен, является ли это моим решением.1009 * edit: Я все еще хочу экранировать переменную, но разрешить только тег <br />.

Ответы [ 5 ]

38 голосов
/ 08 февраля 2012

На самом деле, вы можете использовать встроенную функцию PHP strip_tags следующим образом:

{{ var|striptags('<br>')|raw }}

Вы можете разрешить несколько тегов со следующим кодом:

{{ var|striptags('<br><p>')|raw }}
3 голосов
/ 26 декабря 2012

Вы можете сделать так:

{{ text | striptags('<p><b><br') | raw }}

Например,

<br>

не сбежит

<br> and <br />

и

<p>

не сбежит

<p> and </p>

и т. Д.

1 голос
/ 06 ноября 2011

Изначально я думал, что можно написать собственные стратегии перехода, чтобы вы могли сделать что-то вроде этого:

{{ var|escape('html-custom') }}

К сожалению, это не так. Доступны только стратегии html и js. Они жестко запрограммированы в функции twig_escape_filter(), определенной в файле класса Twig_Extension_Core.

Кажется, что вы можете написать собственное расширение с новым фильтром:

{{ var|raw|customescape }}

Вот пример пользовательского расширения ветки и как зарегистрировать его в Symfony: Symfony2 расширение ветки

0 голосов
/ 10 июля 2013
{{ var|nl2br }}

и / или

{{ var|raw|nl2br }}

Ссылка nl2br

0 голосов
/ 20 августа 2012
{{ var|striptags('<br>')|raw }} 

работает нормально, но я не знаю, как передать массив в php-функцию strip_tags с помощью этого фильтра веток.

и

{{ var|striptags(['<br>', '<b>'])|raw }}

и

{% set allow = ['<br>', '<b>'] %}
{{ var|striptags(allow)|raw }}

выдает исключение «преобразование массива в строку» во время рендеринга шаблона.

Также будьте осторожны, чтобы php-функция strip_tags не экранировала атрибут html, например, «onclick».

...