Битрикс отложенные функции SetPageProperty и ShowProperty

Очень полезный инструмент, который не так очевиден начинающим разработчикам — отложенные функции Битрикса.

Что такое отложенные функции Битрикса и как их применять

Давайте разберем на простом примере, в какой последовательности идет сбор итогового HTML:
1. подключается «ядро» системы, и загружаются различные классы, методы, константы и т.д.
2. HTML записывается в буфер, и пока что никуда не выводится
3. При помощи инструмента отложенных функций, мы отмечаем место в HTML, в которое потому будет записано последнее установленное значение, например:

шаг 3, это как раз и есть ShowProperty, если вы знакомы с Битриксом, то вы наверняка писали в коде:

ShowTitle() это такая же самая отложенная функция, как и ShowProperty. На этом шаге мы задали «метку».
4. в коде компонента, или на странице, вы задаете значение для вашей «метки» при помощи SetPageProperty.

С теорией разобрались, теперь перейдем к практическому примеру:
Задача. Необходимо добавить в body динамический класс, который будет задаваться либо в коде страницы, либо в компоненте (помните, в компоненте, у которого используется кеш, задавать можно только в component_epilog.php, иначе, с включенным кешем будет ошибка).

Решаем задачу. В body пишем такой код (знак «=» или echo ставить не нужно):

Поставили метку, идем дальше. В коде задаем SetPageProperty (вы могли применять эту функцию для title, description, keywords):

$APPLICATION->GetProperty(‘CLASS’) — применяется гораздо реже, и не вернет вам ничего, если SetPageProperty будет установлен ниже вызова GetProperty. Применяется очень редко, поэтому решайте сами нужен ли он вам 🙂

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *