Jump to content

Fix Extensions Uninstaller - исправление деинсталлятора дополнений в Opencart 3x [support]


AlexDW
 Share

Go to solution Solved by AlexDW,

Recommended Posts

  • Solution

Fix Extensions Uninstaller - исправление деинсталлятора дополнений в Opencart 3x

Просмотр файла

В Opencart 3x сделано удобное удаление установленных дополнений через встроенный деинсталлятор.
Удаление дополнения происходит в один клик и пользователям теперь не нужно вычищать его файлы вручную.

При создании дополнений многие авторы используют отдельные папки, общие для файлов своих дополнений (например для своих библиотек в system/library, скриптов в catalog/view/javascript и тд)
или используют универсальные файлы, содержащиеся в каждом их дополнении.

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


Баги деинсталлятора в Opencart 3x:
1. Если ряд дополнений использует свою собственную общую папку, которой нет в движке по умолчанию - такая папка создается при установке первого дополнения и привязывается к нему в таблице oc_extension_path в момент создания.
При этом, при установке последующих дополнений, использующих данную папку - привязки не происходит, так как папка уже есть

Но при удалении именно того дополнения, к которому произошла привязка папки - ПАПКА БУДЕТ УДАЛЕНА СО ВСЕМ СОДЕРЖИМЫМ, т.е. фактически со всеми другими файлами, которые могут не иметь отношения к удаляемому дополнению, и использовать эту общую папку для хранения своих файлов.

2. Если в ряде дополнений используются какие-либо общие файлы (например универсальные вспомогательные классы, библиотеки и тд) - удаление такого дополнения через деинсталлятор приведет к удалению этих общих файлов

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

Данный патч устраняет эти проблемы
после его применения при удалении дополнений через штатный деинсталлятор будет учитываться уникальность использования удаляемых файлов/папок другими имеющимися дополнениями


актуален для движков ocStore / Opencart версий 3000-303x

 

Link to comment
Share on other sites

Доброго дня!

 

У меня на сборке OpenCart Русская-Сборка, мод работает не корректно. После удаления ненужного модуля, удаляет файл header.twig находящийся по пути admin/view/template/common/header.twig в чем причина не знаю. При удалении штатными средствами такого не происходит. Проверить на иных дистрибах пока не могу.

Opencart 3.0.3.8-rs2 (Русская Сборка)

PHP 7.3.*

Link to comment
Share on other sites

Здравствуйте

 

модуль здесь ни при чем

 

и вот почему:

1. встроенный в Opencart 3x деинсталлятор для удаления файлов дополнений берет данные из таблицы oc_extension_path

2. данные о файлах попадают в эту таблицу при установке дополнения только когда файл/папка есть в архиве и при этом его еще нет в каталоге движка

 

файл admin/view/template/common/header.twig является штатным файлом движка

и его отсутствие сразу бы привело к неработоспособности админки

 

соответственно, искать проблему нужно в других используемых дополнениях / правках кода движка или БД

 

тем более что данный патч НЕ удаляет файлы, а наоборот - проверяет их на уникальность и ЗАПРЕЩАЕТ удаление, если файл/папка используются еще каким-то другим дополнением кроме удаляемого

Link to comment
Share on other sites

  • 8 months later...

я поставил данное дополнение на 2 сайта, на 3.03.2  и 3.03.8 , сказать что я кучу дополнений поставил и потом ради интереса удалял нет, парочку старых ненужных удалил с первого и один с нового сайта, все вроде ок, ничего не слетает, все вроде работает. раньше при удалении бывало сайт падал из-за ошибки, надеюсь с этим дополнением больше таких проблем не будет, автору спасибо!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...