Files
obsidian/Магазин обуви (apelsincom)/Компоненты и шаблоны компонентов.md
T
2026-07-06 13:05:56 +03:00

56 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Компоненты и шаблоны компонентов
Компонент в Битриксе — готовый блок, который что-то выводит (каталог, меню, форму). На этом сайте **своих компонентов нет** (`/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)]]