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