4.8 KiB
Компоненты и шаблоны компонентов
Компонент в Битриксе — готовый блок, который что-то выводит (каталог, меню, форму). На этом сайте своих компонентов нет (/local/components/ пуст). Вместо этого используются штатные компоненты Битрикса, но с переопределёнными шаблонами, которые лежат в шаблоне сайта:
local/templates/custom/components/bitrix/<компонент>/<шаблон>/
Именно здесь ведётся почти вся фронтовая доработка. Логику вывода правят тут, а не в ядре.
Из чего состоит шаблон компонента
Файлы внутри папки шаблона (стандарт Битрикса — полезно знать):
| Файл | За что отвечает |
|---|---|
template.php |
сама вёрстка (HTML + вывод $arResult) |
result_modifier.php |
правка данных $arResult перед выводом — «серверная логика» шаблона |
component_epilog.php |
код после кэша (то, что не должно кэшироваться) |
.parameters.php |
параметры шаблона для админки |
style.css / script.js |
стили и скрипт шаблона |
lang/ |
языковые фразы |
[!tip] Где искать логику Раз своего
init.phpнет, «где данные подхватываются и меняются» смотрите вresult_modifier.phpиcomponent_epilog.phpконкретного шаблона. Это местная замена серверных обработчиков.
Переопределённые компоненты витрины
| Компонент | Активный шаблон | Где используется | Инфоблок |
|---|---|---|---|
bitrix:catalog |
catalog_custom |
каталог /catalog/ (комплексный: список, карточка, фильтр) |
2 |
bitrix:catalog.section |
custom, custom_similar |
списки товаров, «похожие» | 2 |
bitrix:catalog.element |
custom |
карточка товара (template.php ~35 КБ, script.js) | 2 |
bitrix:catalog.section.list |
aside_menu, home_categories, popular_categories, custom_tags |
боковое меню и блоки категорий | 2 |
bitrix:catalog.smart.filter |
custom, catalog-custom |
умный фильтр | 2 |
bitrix:news.list |
custom_main_slider |
баннер-слайдер на главной | слайдер |
bitrix:form.result.new |
feedback |
форма (заявка/обратная связь) | веб-форма |
bitrix:menu |
custom, footer_custom |
верхнее и нижнее меню | — |
bitrix:search.page |
custom_input, custom_page |
поиск в шапке и на странице поиска | 2 |
bitrix:breadcrumb |
custom |
хлебные крошки | — |
bitrix:main.include |
— | подключение областей из /include/ |
— |
Какой компонент к какому адресу — в Маршрутизация и ЧПУ (apelsincom); модель данных каталога — в Инфоблоки и каталог (apelsincom).
Include-области
Мелкие переиспользуемые куски вёрстки — в public_html/include/, подключаются через bitrix:main.include. Там: логотип (logo*.php), баннер (main_banner.php), SEO-текст (sect_bottom.php), копирайт, соцсети, кнопки маркетплейсов (ozon_btn.php, wb_btn.php), тексты (info.php, feedback.php), «просмотренные товары». Правятся файлом или областью в админке.
[!warning] Грабли шаблонов
- Рядом с активными шаблонами (
custom) лежат исходныеbootstrap_v4из решения eShop. Правите не тот — изменений не видно. Всегда сверяйтесь, какой шаблон указан в вызове компонента.- В
catalog.smart.filter/customлежит мусорный файл-дубльtemplate copy 1.php— не рабочий, легко перепутать сtemplate.php.
См. также
- Шаблон custom
- Инфоблоки и каталог (apelsincom)
- Маршрутизация и ЧПУ (apelsincom)
- Известные проблемы и рекомендации (apelsincom)