Как изменить шаблон компонента 1С-Битрикс без правки ядра
Безопасное копирование шаблона системного компонента в шаблон сайта, result_modifier.php, component_epilog.php и проверка после обновления.
Системные требования
Нужны тестовая копия проекта, доступ разработчика или администратора и резервная копия перед изменением рабочего кода.
Смотреть системные требования1. Найдите компонент и шаблон
Определите имя вызванного компонента и выбранный шаблон. Системные файлы обычно находятся в /bitrix/components/bitrix/..., но редактировать их нельзя.
В режиме правки используйте команду копирования шаблона компонента либо выполните копирование вручную с сохранением структуры.
2. Скопируйте шаблон в local
Размещайте изменённый шаблон в каталоге активного шаблона сайта:
/local/templates/site/components/bitrix/news.list/cards/Здесь bitrix — пространство имён, news.list — компонент, cards — имя вашего шаблона. В вызове передайте cards вторым аргументом.
Совет
Копируйте только шаблон отображения. Если требуется изменить выборку данных или бизнес-логику, создайте собственный компонент или расширение, а не добавляйте SQL в template.php.
3. Разделите данные и представление
template.php должен выводить готовый $arResult. Экранируйте пользовательские значения и не создавайте внутри шаблона новые запросы к базе.
CSS и JavaScript шаблона храните рядом с ним или в системе сборки проекта, чтобы зависимости были понятны.
4. Используйте result_modifier аккуратно
result_modifier.php выполняется до шаблона и подходит для лёгкого преобразования результата: группировки, форматирования и добавления вычисляемых полей.
Не загружайте там большие наборы связанных данных для каждого элемента: это создаёт проблему N+1. Лучше изменить компонент или сделать один агрегированный запрос.
5. Проверьте обновляемость
После обновления платформы сравните системный шаблон с вашей копией: поставщик мог добавить новые поля, микроразметку или исправления безопасности.
Проверьте кеш, разные группы пользователей, мобильную версию, пустой список и длинные значения. Храните шаблон в Git.
Была ли эта статья полезной?
Спасибо за ваш отзыв!