Битрикс вывод свойства HTML/текст
Иногда при выводе пользовательского свойства в 1С-Битрикс возникает проблема:
- HTML-теги выводятся обычным текстом.
Например, если вывести свойство так:
<?=$arResult["PROPERTIES"]["символьный_код"]["VALUE"]["TEXT"];>
и в настройках свойства выбран тип:
HTML/Текст
то HTML-теги будут выводиться на странице как обычный текст.
Почему так происходит
Битрикс автоматически:
- экранирует HTML;
- защищает вывод;
- преобразует специальные символы.
Поэтому вместо:
<strong>Текст</strong>
браузер покажет:
<strong>Текст</strong>
а не жирный текст.
Правильный вывод HTML свойства
Не нужно:
- использовать htmlspecialchars_decode();
- делать str_replace();
- пытаться вручную восстанавливать HTML.
В Битрикс уже есть готовое решение.
Достаточно добавить:
~VALUE
вместо:
VALUE
Правильный код
<?=$arResult["PROPERTIES"]["символьный_код"]["~VALUE"]["TEXT"];>
Что делает ~VALUE
Поле:
~VALUE
возвращает:
- «сырое» значение свойства;
- без HTML-экранирования;
- без обработки htmlspecialchars.
В результате:
- HTML-теги корректно обрабатываются браузером.
Пример
Если в свойстве хранится:
<strong>Привет</strong>
То:
<?=$arResult["PROPERTIES"]["TEXT"]["VALUE"]["TEXT"];>
выведет:
<strong>Привет</strong>
А:
<?=$arResult["PROPERTIES"]["TEXT"]["~VALUE"]["TEXT"];>
выведет:
Привет
Где это используется
Такой вывод часто используется:
- в новостях;
- в статьях блога;
- в SEO-текстах;
- в пользовательских свойствах инфоблоков;
- в описаниях товаров и разделов.
Итог
Если HTML-свойство в Битрикс выводится вместе с тегами, используйте:
~VALUE
вместо:
VALUE
Это позволит:
- корректно выводить HTML;
- избежать лишней обработки;
- использовать встроенные возможности Битрикс.
Комментарии