Деинсталлятор расширений
Деинсталлятор расширений — модуль для OpenCart 3 и ocStore 3, который удаляет установленные модули целиком и без следов. До удаления он показывает всё, что будет удалено: каждый файл, модификацию OCMOD, событие и запись в базе. Файлы движка и других модулей при этом защищены, а перед удалением сохраняется архив, из которого модуль можно вернуть.
Зачем он нужен
У каждой записи в истории штатного установщика OpenCart 3 есть красная корзина. Она удаляет файлы пакета вслепую. Если модуль при установке перезаписал файл движка, корзина удалит и его — магазин сломается. Папку модуля она удаляет вместе с файлами, которые туда потом положили другие модули. Настройки, события, права доступа и модификации остаются в базе, а изменённые копии удалённых файлов продолжают работать из кэша модификаций. Деинсталлятор делает ту же работу, но проверяет каждый шаг.
Что умеет модуль
- Предпросмотр перед удалением. Список файлов, папок, модификаций OCMOD, событий, расширений и записей установщика. У каждой строки статус: удалится или останется и почему. Пока вы не подтвердили удаление, в магазине ничего не меняется.
- Защита файлов движка. Встроенный перечень стандартных файлов OpenCart и ocStore 3.x. Если модуль перезаписал такой файл, деинсталлятор его не удалит.
- Защита чужих файлов. Файл, записанный за другим пакетом, остаётся на месте. Папки удаляются, только если после удаления файлов в них ничего не осталось.
- Один модуль — одна строка. После обновлений у модуля в истории установщика несколько записей. В списке они собраны в одну строку: их можно раскрыть, объединить в последнюю или удалить модуль целиком вместе со старыми версиями.
- Модификаторы без установщика. Модификации OCMOD в базе без записи установщика помечены «модификатор в БД», файлы
system/*.ocmod.xml— «отдельный XML». Их можно удалить так же, с предпросмотром и архивом. - Штатная деинсталляция. Как кнопка «Удалить» в разделе «Расширения»: вызывается собственная процедура удаления модуля (его таблицы, события, настройки), затем убираются запись расширения, настройки, экземпляры модуля с местами в схемах и права доступа.
- OCMOD и кэш модификаций. Модификации пакета удаляются, модификаторы обновляются автоматически. Изменённые копии удалённых файлов в кэше модификаций тоже удаляются.
- Архив для отката. Перед удалением сохраняется архив удалённых файлов и снимок записей базы. Он устроен как установочный пакет: модуль возвращается штатным установщиком.
- Удаление по ZIP-архиву. Для модулей, залитых по FTP: загрузите установочный архив, и деинсталлятор найдёт файлы и модификацию модуля в магазине. Файлы, изменённые после установки, помечаются отдельно.
- Проверка «хвостов». Следы модулей, удалённых раньше: события без обработчика, расширения без файлов, пустые записи установщика, модули в схемах, копии в кэше модификаций без оригинала, лишние права доступа.
- Очистка изображений. Пустые папки и неиспользуемые изображения в
image/catalog. Сначала идут папки, ниже — изображения, сгруппированные по папкам, с миниатюрами, поиском и выбором папкой: удобно, даже когда их сотни. Ссылки ищутся во всех текстовых полях всех таблиц магазина и в файлах тем. Перед удалением сохраняется архив, вместе с изображением удаляются его миниатюры из кэша. - Журнал. Каждое удаление и очистка записываются с подробным отчётом и снимком удалённых записей базы. Архивы скачиваются и удаляются из журнала.
- Руководство внутри модуля. Кнопка «?» открывает подробную инструкцию прямо в админке, интернет не нужен.
Как это работает
Модуль не меняет файлы движка и не создаёт таблиц в базе. Пункт меню «Расширения → Деинсталлятор» и кнопка-ластик у каждой записи истории установщика подключаются событиями (Events). Удаление идёт по шагам: архив, штатная деинсталляция, удаление файлов, модификаций и событий, обновление модификаторов. Перед каждым шагом пакет проверяется заново, поэтому удаляется ровно то, что было в предпросмотре.
Установка
- Загрузите архив через «Расширения → Установка расширений».
- В «Расширения → Расширения → Модули» установите «Деинсталлятор расширений».
- Откройте «Расширения → Деинсталлятор».
ВАЖНО!!! Перед процедурами не забываем всегда делать БЕКАПы
Частые вопросы
Модуль при установке заменил файл движка. Деинсталлятор его вернёт?
Нет. Деинсталлятор не удалит такой файл, чтобы магазин продолжал работать, и покажет его в списке. Оригинал нужно взять из дистрибутива вашей версии OpenCart или ocStore.
Удаляются ли таблицы модуля в базе?
Их удаляет собственная процедура удаления модуля, которую деинсталлятор вызывает. Если таблицы с кодом модуля в имени остались, они показываются для проверки. Удалять их автоматически модуль не будет.
Как вернуть удалённый модуль?
Скачайте архив из журнала и загрузите его через «Установку расширений». Файлы и модификация вернутся, модуль останется заново установить в разделе «Расширения».
Модуль залит по FTP, в истории установщика его нет.
Используйте вкладку «Удаление по ZIP»: загрузите установочный архив того же модуля. Сам архив не устанавливается и не сохраняется.
Можно ли удалить сам деинсталлятор?
Да, штатно: «Удалить» в разделе «Расширения → Модули», затем удалить его запись в истории установщика. Архивы и журнал остаются в папке storage.
Совместимость и ограничения
- OpenCart 3.0.x и ocStore 3.0.x; проверено на OpenCart 3.0.4.1 и ocStore 3.0.3.9.
- Проверено на PHP 8.2 и 8.4. Для архива и удаления по ZIP нужно расширение PHP ZipArchive.
- Русский и английский языки админки.
- Модуль не удаляет таблицы базы, не восстанавливает перезаписанные файлы движка и не трогает файлы вне папок штатного установщика.
- Не входит: OpenCart 2.x и 4.x.
Характеристики
Совместимость и технические требования.
Версии и обновления
Текущая версия и условия получения обновлений.
История изменений появится вместе со следующими версиями.
Отзывы покупателей
Подтверждённых отзывов пока нет.
Вопросы продавцу
Уточните совместимость и возможности до покупки. Не публикуйте пароли и доступы к магазину.