Кастомізація шаблонів стандартних компонентів 1С-Бітрікс
Макет затверджено, верстка готова, а catalog.element виводить картку товару не за дизайном — це типовий біль інтегратора. Пряме редагування /bitrix/components/ — гарантована втрата змін при першому оновленні системи. Промисловий підхід — кастомні шаблони в /local/, які не чіпають ядро. За багато років ми перевизначили шаблони для більш ніж 50 проєктів — від інтернет-магазинів з каталогами на 100 000 товарів до корпоративних порталів. Жодного збою при оновленнях. Сертифіковані спеціалісти 1С-Бітрікс гарантують сумісність з актуальними версіями платформи. У цій статті розберемо, як створити кастомний шаблон правильно та уникнути типових помилок.
Чому не варто редагувати шаблони в /bitrix/?
Зміна файлів у /bitrix/components/bitrix/ призводить до їх заміни при встановленні оновлень. Навіть якщо оновлення не зачіпає шаблон, при наступному патчі зміни зникнуть. Коректний спосіб — перевизначення через /local/. Бітрікс шукає шаблон компонента в порядку:
-
/local/templates/<шаблон_сайту>/components/<namespace>/<компонент>/<шаблон>/ -
/local/components/<namespace>/<компонент>/templates/<шаблон>/ -
/bitrix/templates/<шаблон_сайту>/components/... -
/bitrix/components/<namespace>/<компонент>/templates/<шаблон>/
Достатньо створити потрібну структуру папок у /local/ та помістити туди перевизначений файл. Оригінал у /bitrix/ залишається недоторканим. Кастомні шаблони в 5 разів надійніші за редагування ядра — це підтверджує наш досвід. Для поглибленого вивчення рекомендую офіційну документацію по шаблонах компонентів.
| Критерій | Редагування в /bitrix/ | Кастомний шаблон в /local/ |
|---|---|---|
| Збереження при оновленнях | Губиться | Повне збереження |
| Підтримка | Хаотична, складно відстежити | Версіювання, зрозуміла структура |
| Ризик конфліктів | Високий | Мінімальний |
| Час на налаштування | Хвилини (ненадійно) | Години (надійно) |
Як безпечно кастомізувати шаблон компонента?
Розберемо на прикладі bitrix:catalog.element — картка товару. Дивимося оригінал, але не чіпаємо його:
// Оригінальний шаблон (не чіпати) // /bitrix/components/bitrix/catalog.element/templates/.default/template.php // Наш кастомний шаблон в /local/ // /local/templates/my_site/components/bitrix/catalog.element/.default/template.php // /local/templates/my_site/components/bitrix/catalog.element/.default/style.css // /local/templates/my_site/components/bitrix/catalog.element/.default/script.js У template.php доступні всі змінні, підготовлені компонентом: $arResult, $arParams, $arCurrentValues. Дивитись їх склад через \Bitrix\Main\Diag\Debug::dump($arResult) або компонент bitrix:diag.phpinfo.
Підключаємо шаблон у коді сторінки:
<?$APPLICATION->IncludeComponent( "bitrix:catalog.element", ".default", // ім'я шаблону [ "IBLOCK_TYPE" => "catalog", "IBLOCK_ID" => 12, ], false );?> Якщо потрібен окремий шаблон для конкретної сторінки або секції, створюємо шаблон з довільним ім'ям, наприклад card_v2, та вказуємо його при виклику.
Кастомізація шаблонів комплексних компонентів
Комплексні компоненти (bitrix:catalog, bitrix:news) складаються з кількох підключених компонентів. Шаблон комплексного компонента містить component_epilog.php та підпапки для підкомпонентів:
/local/templates/my_site/components/bitrix/catalog/.default/ template.php component_epilog.php bitrix/ catalog.section/ .default/ template.php catalog.element/ .default/ template.php Це дозволяє перевизначити верстку розділу та картки в межах одного шаблону каталогу.
Що таке result_modifier.php та component_epilog.php?
Два файли, які дають доступ до даних компонента без перевизначення його логіки:
result_modifier.php — виконується після основного коду компонента, до шаблону. Тут можна змінити $arResult:
// result_modifier.php if (!empty($arResult['ITEMS'])) { foreach ($arResult['ITEMS'] as &$item) { $item['PRICE_FORMATTED'] = number_format($item['CATALOG_PRICE_1'], 0, '.', ' ') . ' ₽'; } } component_epilog.php — виконується після шаблону. Використовується для фінальних маніпуляцій: встановлення заголовка сторінки, додавання breadcrumbs, підключення скриптів.
<?php // component_epilog.php $APPLICATION->SetTitle('Каталог товарів'); $APPLICATION->AddChainItem('Головна', '/'); $APPLICATION->AddChainItem('Каталог'); ?> Підключення CSS та JS у шаблоні компонента
// У template.php $this->addCSS($this->GetFolder() . '/style.css'); $this->addJS($this->GetFolder() . '/script.js'); // Або через Asset Manager для об'єднання файлів \Bitrix\Main\Page\Asset::getInstance()->addCss($this->GetFolder() . '/style.css'); Що входить у кастомізацію шаблону
- Розробка шаблонів — перевизначення всіх необхідних шаблонів під ваш макет.
- Документація — опис структури, змін та інструкція з підтримки.
- Тестування на сумісність — перевірка з актуальною версією Бітрікс та оновленнями.
- Навчання співробітників — як вносити правки без ризику.
- Підтримка після впровадження — виправлення помилок та консультації протягом місяця.
Які помилки найчастіше допускають при кастомізації?
- Редагування файлів у
/bitrix/— гарантована втрата змін. - Створення шаблону без урахування вкладеності комплексного компонента — частини каталогу не працюють.
- Ігнорування
result_modifier.php— код дублюється в шаблоні, ускладнюючи підтримку. - Використання абсолютних шляхів до файлів — проблеми при перенесенні на інший хостинг.
Терміни
| Задача | Терміни |
|---|---|
| Кастомний шаблон одного компонента (картка, список) | 4–16 годин |
| Шаблони всіх компонентів каталогу під макет | 3–5 днів |
| Кастомізація комплексного компонента з підшаблонами | 2–4 дні |
Зв'яжіться з нами, щоб обговорити ваш проєкт — ми оцінимо складність та терміни. Отримайте консультацію, якщо хочете уникнути проблем з оновленнями та отримати надійне рішення.
Офіційна документація 1С-Бітрікс по шаблонах компонентів
Наш підхід до вирішення
Кожна задача потребує індивідуального аналізу та ретельного планування. Ми не використовуємо шаблонні рішення — кожен проєкт адаптується під конкретні вимоги та існуючу інфраструктуру. Наша команда має досвід роботи з проєктами різного масштабу: від невеликих магазинів до високонавантажених платформ з мільйонами операцій на день.
Гарантії та підтримка
Ми даємо гарантію на виконану роботу терміном на 12 місяців. Протягом цього періоду виправляємо будь-які проблеми, що виникають, безкоштовно. Після завершення проєкту надаємо повну документацію та навчання для вашої команди. Технічна підтримка доступна протягом 30 днів після запуску — ми допоможемо усунути будь-які питання.







