Обновления партнерских модулей Битрикс

В этом посте узнаем, какие файлы обновляются при обновлении партнерских модулей и как  можно заблокировать обновления модуля навечно.

Нередко бывает в нашей работе, когда для решения поставленной задачи приходится изменять какой-нибудь партнерский модуль, иногда даже переписывать хорошенько приходится, но тут встает вопрос о потере и блокировке его обновлений, т.к. при установке обновлений затрутся либо все, либо только измененные разработчиком файлы модуля.

С партнерскими модулями ни все так страшно, некоторые даже не влияют на работу Битрикс, просто фиксируются в системе, что установлены, а все остальное делают на сайте компоненты, т.е. вообще никак не влияют на Битрикс.

А вот Битрикс модули изменять запрещено! Ни в коем случае не трогайте, при обновлении Битрикс все вернется к исходному состоянию, если не сломается что-нибудь или не начнет глючить.

Что обновляется при установке обновлений модуля Битрикс?

Я, как разработчик модуля, могу выгружать как только измененные файлы модуля, так и абсолютно все файлы, а обновляются всегда следующие папки, в которых лежат и компоненты модуля и сами модули, как партнерские, так и Битрикс, разные только пространства имен:

  • /bitrix/modules/ - тут живут и обновляются все модули и установочные файлы в подпапках install
  • /bitrix/components/ - тут обновляются только компоненты
  • /bitrix/js/ - тут обновляются только javascript-ы
  • /bitrix/images/ - тут обновляются только картинки
  • /bitrix/admin/ - тут обновляются административные страницы, если такие есть у модуля
  • /bitrix/wizards/ - тут обновляются всякие мастера

Для наглядного примера расскажу, что обновляется в модуле Форма обратной связи + конструктор форм
В моем модуле обновляется всего три папки и все их содержимое:

  • /bitrix/modules/api.feedback/
  • /bitrix/components/api/main.feedback/
  • /bitrix/js/api.feedback/

Где api - это мое партнерское зарезервированное пространство имен, уникальное для Тюнинг-Софт, никто им не может воспользоваться, все компоненты от всех моих модулей будут устанавливаться и обновляться в этом пространстве имен.

Но как всегда бывает, везде есть  исключения, перечисленные выше папки соответствуют архитектуре Битрикс, но партнеры могу и еще куда-нибудь закинуть файлик модуля и обновлять его, для примера, в корне сайта может быть обновляемая папка /ajax/ или тот же шаблон сайта в /bitrix/templates/ , тут уже кто на что горазд получается или смотря какая задача у модуля.

Как заблокировать обновления модуля в случае, если он был изменен?

Если вы изменили партнерский модуль, то конечно лучше заблокировать его обновления, т.к. даже если не Вы, то владелец сайта, или даже другой разработчик может обновить его, не зная, что он изменялся и все полетит к чертям, а если нет резервной копии сайта, пиши пропало..

Чтобы заблокировать обновления как моего модуля, так и любого другого, найдите в соответствующем модуле в установочной папке файл version.php
/bitrix/modules/api.feedback/install/version.php

И замените версию модуля на какое-нибудь больше число, до которого модуль не сможет дорасти, например, вместо  версии 2.2.0 впишите версию 1000 и модуль больше не будет просить обновлений.


До изменений модуль еще просил обновлений

Страница обновления модулей в Битрикс

После того, как мы прописали версию модуля 1000, он перестал просить обновлений.

Страница обновления модулей в Битрикс

Заключение

Если того требует задача и Вы изменяете партнерский модуль, то вот таким способом вы обезопасите себя и своего клиента от неприятных ситуаций и возможных проблем, блокируйте обновления и спите спокойно.

Имя *
Логин (мин. 3 символа)
E-mail *
*— обязательные для заполнения поля
Логин или e-mail
TUNING-SOFT.RU Разработка умных веб-сервисов