В этой серии расскажу как работают компоненты 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
Михаил, подскажите пожалуйста, бывают ли такие ситуации в которых все равно придется снимать компонент с поддержки или вносить изменения в ядро битрикса?
![](/upload/resize_cache/forum/avatar/35f/30_30_2/111111.jpg)
Михаил Базаров июля 12, 2024 10:28 am
Когда иначе совсем ни как, а функционал нужен.
Снятие компонента, туда сюда, бывает оправданным.
А вот модификации ядра реально - если иначе вообще ни как не решить задачу. За все время работы у меня такой ситуации не было ни разу.
Снятие компонента, туда сюда, бывает оправданным.
А вот модификации ядра реально - если иначе вообще ни как не решить задачу. За все время работы у меня такой ситуации не было ни разу.