В этой серии расскажу как работают компоненты 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: Смотреть
Снятие компонента, туда сюда, бывает оправданным.
А вот модификации ядра реально - если иначе вообще ни как не решить задачу. За все время работы у меня такой ситуации не было ни разу.