# Компоненты и шаблоны компонентов Компонент в Битриксе — готовый блок, который что-то выводит (каталог, меню, форму). На этом сайте **своих компонентов нет** (`/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)]]