Серия 11: Как работают компоненты, модификация работы штатных компонентов

В этой серии расскажу как работают компоненты 1С-Битрикс "под капотом" как вносить модификации в работу штатных компонентов не вмешиваясь в их работу и не лишаясь обновлений 1С-Битрикс.

Из документации к 1С-Битрикс
Компонент: это логически завершённый код, предназначенный для извлечения информации из инфоблоков и других источников и преобразования её в HTML-код для отображения в виде фрагментов web-страниц. Состоит из собственно компонента (контроллер) и шаблона (представление). Компонент, с помощью API одного или нескольких модулей, манипулирует данными. Шаблон компонента выводит данные на страницу.

Файл component_epilog.php - инструмент для модификации данных работы компонента с включенным кешированием. Создается разработчиком самостоятельно.

Файл result_modifier.php - инструмент для модификации данных работы компонента произвольным образом. Создается разработчиком самостоятельно. Работает при выключенном кешировании.

Передать в component_epilog.php данные которые не передаются компонентом по умолчанию:

$cp = $this->__component; // объект компонента
if (is_object($cp)) {
    // в arResult component_epilog передадим все отображаемые свойства
    $cp->SetResultCacheKeys(array(
            'DISPLAY_PROPERTIES'
        )
    );
}

Чеклист:

  • Как работают компоненты.
  • Что такое component_epilog.php и result_modifier.php.
  • Добавление своей логики в работу компонента.
Полная версия серии на Boosty: Смотреть
Гость июля 11, 2024 4:14 pm
Михаил, подскажите пожалуйста, бывают ли такие ситуации в которых все равно придется снимать компонент с поддержки или вносить изменения в ядро битрикса?  
Михаил Базаров июля 12, 2024 10:28 am
Когда иначе совсем ни как, а функционал нужен.
Снятие компонента, туда сюда, бывает оправданным.

А вот модификации ядра реально - если иначе вообще ни как не решить задачу. За все время работы у меня такой ситуации не было ни разу.