Задача
Нужно внести изменения стандартный модуль ядра Drupal.
Решение
Внесение улучшений в модули ядра Друпал ведет к ... улучшению модулей ядра Друпал!
Проблемы возникают, когда нужно обновить ядро Друпал...
Варианты решений
Создание патча (заплаты)
- Вносите изменения в модуль ядра
- Создаете патч, который сохраняет ваши изменения
- При обновлении изменений - применяете ваш патч
Клонирование модуля ядра
- Создайте клон модуля одним из способов:
- Переносите папку ядра из папки /modules с модулем в папку /sites/all/modules. Этот способ проще.
- Измените название модуля, чтобы не было конфликта с ядерным модулем. Этот способ лучше.
- Вносите изменения в код модуля
При обновлении папка с вашим измененным модулем перезаписана не будет и изменения потеряны не будут. Для обновления модуля можно использовать патч или вручную перенести изменения, если их не много.
Внесение изменений в CVS на drupal.org
- Изменить модуль
- Создать патч
- Опубликовать его на странице модуля в разделе "Issue". Если автор сочтет изменение полезным - он включит его в следующий релиз модуля.
Вывод
Самый лучший вариант для развития Друпал - это клонировать модуль, сделать патч и опубликовать его на drupal.org.
Комментарии
Ценный совет. Спасибо. Периодически сталкиваюсь с необходимостью что-то изменить в ядре. Для себя выработал подход с документированием всех изменений и последующим ручным переносом своих изменений в обновленные модули (для переноса пользуюсь компаратором Araxis Merge).
Araxis Merge это платная утилита под винду и мак: http://www.araxis.com/merge-overview.html
В юниксах это делается командой: diff