Junior Компоненты: использование Обязательно

Кастомизация шаблона: template.php, result_modifier, epilog

Шаблон компонента включает верстку template.php, предварительную обработку данных result_modifier.php и файл component_epilog.php, исполняемый на каждом хите независимо от кеша. Установка заголовков страницы, цепочки навигации и мета-тегов обязана производиться в эпилоге, иначе при отдаче данных из кеша они будут потеряны.

1 разработчик прошёл

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    template.php — основной шаблон
  • 2
    result_modifier.php — модификация данных
  • 3
    component_epilog.php — после шаблона
  • 4
    style.css, script.js — ресурсы

Материалы

Проверь себя

Скопировали шаблон news.list в /local/templates/main/components/bitrix/news.list/cards/, а сайт показывает старую вёрстку. Почему?

Во втором аргументе IncludeComponent осталась пустая строка, и ядро ищет .default. Шаблон выбирается по имени папки: либо назвать копию .default, либо указать cards в вызове.

В result_modifier.php вызвали SetTitle(): на разработке работает, на проде заголовок пустой. Где причина?

result_modifier.php выполняется только при сборке кеша вместе с шаблоном; на закешированном хите его нет. Заголовок, цепочку навигации и всё, что нужно на каждом хите, ставят в component_epilog.php.

Чем $arResult в component_epilog.php отличается от $arResult в template.php?

В эпилоге массив приходит из кеша, и в нём только ключи из SetResultCacheKeys() в class.php плюс $templateData, который шаблон собрал перед кешированием. В template.php доступен весь $arResult вместе с правками result_modifier.

Зачем копировать шаблон целиком, если нужно поменять один класс в разметке?

Шаблон — неделимая папка: ядро подключает template.php, style.css и script.js из одного места, частично переопределить его нельзя. Копия в /local под своим именем переживёт обновления, правка в /bitrix/components — нет.

Не сходится?

Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.

Знаете материал лучше?

Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти