🧱 Суть
component_epilog.php – специальный файл шаблона компонента, который выполняется после подключения template.php.
Он используется для действий, которые должны произойти после формирования HTML, например:
- подключение дополнительных файлов;
- установка заголовков страницы;
- регистрация JavaScript;
- изменение свойств страницы;
- выполнение завершающего кода.
В отличие от result_modifier.php, этот файл не предназначен для подготовки данных к отображению.
📦 Проблема
Иногда после вывода компонента требуется выполнить дополнительные действия.
Например:
- изменить заголовок страницы;
- подключить JavaScript;
- установить мета-теги;
- передать данные другим компонентам.
Если делать это в template.php, логика отображения смешивается с логикой страницы.
✅ Решение
Использовать component_epilog.php для выполнения действий после вывода шаблона.
Так шаблон остаётся ответственным только за HTML.
💻 Код
Где находится файл
component_epilog.php располагается рядом с шаблоном:
templates/
└── cards/
├── template.php
├── result_modifier.php
├── component_epilog.php
├── style.css
└── script.jsФайл является необязательным.
Если его нет – Битрикс просто завершает работу компонента.
Когда выполняется
Последовательность работы компонента:
IncludeComponent()
│
▼
component.php
│
▼
result_modifier.php
│
▼
template.php
│
▼
component_epilog.php
│
▼
Конец работы компонентаДоступные переменные
В файле доступны:
$arResult
$arParams
$APPLICATIONЭто позволяет использовать уже подготовленные данные и работать со страницей.
Изменение заголовка страницы
Например:
<?php
$APPLICATION->SetTitle("Новости");После выполнения изменится заголовок страницы.
Установка свойств страницы
Можно установить произвольное свойство:
<?php
$APPLICATION->SetPageProperty(
"description",
"Последние новости компании"
);Эти свойства затем используются в шаблоне сайта.
Подключение JavaScript
Например:
<?php
\Bitrix\Main\Page\Asset::getInstance()->addJs(
SITE_TEMPLATE_PATH . "/js/news.js"
);Файл будет подключён после работы компонента.
Подключение CSS
Аналогично можно добавить стили:
<?php
\Bitrix\Main\Page\Asset::getInstance()->addCss(
SITE_TEMPLATE_PATH . "/css/news.css"
);Использование данных компонента
Например:
<?php
if ($arResult["COUNT"] > 0) {
$APPLICATION->SetPageProperty(
"newsCount",
$arResult["COUNT"]
);
}Здесь используются данные, подготовленные ранее компонентом.
Когда использовать
component_epilog.php подходит для:
- изменения параметров страницы;
- подключения ресурсов;
- выполнения завершающих действий;
- передачи информации шаблону сайта;
- кода, который должен выполниться после вывода HTML.
Частые ошибки
Подготавливать данные для шаблона
Плохо:
$arResult["COUNT"] = count($arResult["ITEMS"]);Этим должен заниматься result_modifier.php.
Выводить HTML
Плохо:
echo "<h1>Новости</h1>";После вывода шаблона добавлять HTML обычно не имеет смысла.
Получать данные из базы
Плохо:
CIBlockElement::GetList(...);Получение данных относится к component.php.
Выполнять бизнес-логику
component_epilog.php предназначен для завершающих действий, а не для основной логики компонента.
Путать с result_modifier.php
Это одна из самых распространённых ошибок.
result_modifier.php– изменяет$arResultдо вывода.component_epilog.php– выполняется после вывода шаблона.
🎯 Вывод
component_epilog.phpвыполняется послеtemplate.php- Используется для завершающих действий после работы компонента
- Подходит для изменения свойств страницы и подключения ресурсов
- Не предназначен для подготовки данных или вывода HTML
- Вместе с
component.php,result_modifier.phpиtemplate.phpпомогает разделить ответственность между этапами работы компонента
🔗 Связано
- Битрикс. result_modifier.php
- Битрикс. Шаблоны компонентов
- Битрикс. Переопределение шаблонов компонентов
- Битрикс. Компоненты Bitrix: что это и как работают
- Битрикс. Вызов компонентов через IncludeComponent()
- Битрикс. Жизненный цикл страницы Bitrix
- footer
- Битрикс. Архитектура 1С-Битрикс и структура проекта