Способы доработки тиражки
Традиционной подход
Изменения вносятся:
- В шаблон сайта в
/bitrix/templates/ - В компоненты внутри
/bitrix/components/citrus/
Чем плох?
Нет возможности установить обновление тиражки с исправлниями и новыми функциями.
Для обновления файлов публичной части и файлов шаблона сайта требуется повторый запуск Мастера установки, а он перезаписывает все файлы публички и/или шаблона. Конечно, при этом теряются все дорабокти в них.
Вносить изменения в компоненты модуля в /bitrix/components/citrus в корне неправильно! Эти файлы будут перезаписаны после установки обновлений модуля на странице Marketplace — Обновление решений.
Использовать в тиражках другое пространство имен нет возможности: по требованиям Marketplace оно должно совпадать с кодом партнера (у нас —
citrus).
Какие есть варианты?
Папку /bitrix лучше вообще не трогать: все доработки вносить в /local и только в те файлы шаблона или компоненты, которые неоходимо изменить.
1. Вообще не менять файлы в /bitrix/components/citrus и типовом шаблоне сайта
Как ни странно, вполне жизнеспособный вариант. Для своих решений всегда можно внести изменения и в шаблон, и в стандартные компоненты, выпустив их при этом в обновлениях модуля для всех клиентов. Можно договориться, и добавить способ кастомизации без изменения стандартных файлов (пример).
2. Работать только в /local
При этом в /local может оказаться не так уж много измененных файлов, и повторить в них изменения из /bitrix, прилетевшие с обновлением будет не сложно.
3. Держать модуль тиражки в системе контроля версий
После каждого обновления, будет наглядно видно какие изменения произошли в мастере тиражки в части шаблона и публичной части. Их можно будет вручную повторить на файлах проекта.
Это, наверное, самый простой, и в то же время самый затратный по времени способ. Придется скурпулёзно объединять изменения по доработкам и изменения, прилетевшие в новой версии.
4. Самый надежный способ
- Требует определенной подготовки проекта и неплохих навыков работы с
git. - Проект должен находиться в системе контроля версий с самого начала — еще до каких-либо изменений
- Потребуется две ветки:
- текущая типовая версия тиражки (вообще без доработок),
- ветка проекта со всеми доработками.
Для установки достаточно будет:
- Переключиться на типовую ветку
- Установить обновления модуля тиражки
- Запустить мастер с перезаписью файлов публичной части
- Закоммитить изменения в типовую ветку
- Переключиться на ветку проекта и слить в неё изменения из типовой ветки