Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Битрикс Битрикс
23.09.2018

Битрикс. Выводим свойство типа html/текст в нужном нам месте

В 1С-Битрикс свойства типа «HTML/Текст» часто выводятся некорректно.

Вместо HTML-разметки на странице могут отображаться:

  • теги <p> <br> и другие;
  • &quot; и другие спецсимволы.

Для корректного вывода HTML-свойства я использую:

<?=htmlspecialcharsBack(
    $arItem["PROPERTIES"]['Ваше_свойство']["VALUE"]["TEXT"]
)?>

Что делает htmlspecialcharsBack

Функция:

htmlspecialcharsBack()

преобразует HTML-сущности обратно в нормальный HTML-код.

Почему это важно

Битрикс часто сохраняет HTML в экранированном виде:

<strong>Текст</strong>

Без:

htmlspecialcharsBack()

браузер покажет теги текстом.

В своих проектах я использую серверную инфраструктуру Timeweb Cloud

VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb Cloud
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

Какой тип свойства нужен

Свойство инфоблока должно быть:

HTML/Текст

Как получить текст свойства

Для HTML-свойств Битрикс хранит данные в:

$arItem["PROPERTIES"]["CODE"]["VALUE"]["TEXT"]

А тип содержимого:

$arItem["PROPERTIES"]["CODE"]["VALUE"]["TYPE"]

Пример свойства HTML

В админке Битрикс:

<p>Текст</p>

<strong>Жирный</strong>

После вывода через:

htmlspecialcharsBack()

HTML будет корректно обработан браузером.

Полный пример

<div class="content">

    <?=htmlspecialcharsBack(
        $arItem["PROPERTIES"]["TEXT_HTML"]["VALUE"]["TEXT"]
    )?>

</div>

Проверка существования свойства

Лучше сразу делать проверку:

<?if (!empty(
    $arItem["PROPERTIES"]["TEXT_HTML"]["VALUE"]["TEXT"]
)):?>

    <?=htmlspecialcharsBack(
        $arItem["PROPERTIES"]["TEXT_HTML"]["VALUE"]["TEXT"]
    )?>

<?endif;?>

Альтернативный способ

Иногда используют:

<?=$arItem["PROPERTIES"]["CODE"]["~VALUE"]["TEXT"]?>

Но:

htmlspecialcharsBack()

обычно работает стабильнее и понятнее.

Где используется такой вывод

  • SEO-тексты;
  • описания разделов;
  • контент инфоблоков;
  • дополнительные блоки;
  • характеристики товаров;
  • контент страниц.

Важно про безопасность

Используйте:

htmlspecialcharsBack()

только:

  • для доверенного HTML;
  • контента из админки;
  • редакторов Bitrix.

Не выводите таким способом:

  • данные пользователей;
  • непроверенный HTML.

Итог

Для корректного вывода свойства типа HTML/Текст в 1С-Битрикс удобно использовать:

<?=htmlspecialcharsBack(
    $arItem["PROPERTIES"]['CODE']["VALUE"]["TEXT"]
)?>

Это позволяет:

  • правильно выводить HTML;
  • обрабатывать теги браузером;
  • избежать отображения HTML-кода текстом.
120 просмотров

Если возникли сложности

Помогу разобраться с настройкой, исправить ошибки и реализовать решение под ваш проект.

Поддержка сайтов на 1С-Битрикс

Поддержка сайтов на 1С-Битрикс: быстрое решение ошибок, консультации, обучение сотрудников и сопровождение сайта. 
Резервирую время под ваш проект для оперативной помощи и стабильной работы сайта.
Подробнее
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

Без инфоцыганства и мотивационных цитат — только практика, кейсы и рабочие решения для бизнеса и веб-разработки.

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться