Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Recommended Posts

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

 

Вариант с "кривым" дополнением был отброшен изначально, т.к.
а) собственно и являюсь автором дополнения

б) создано согласно синдарим движка и не в первый раз; структурно не отличается от других
в) перед загрузкой прошло полную обкатку на тестовом окружении

 

В проэтоссе препарации выяснилось, что виновник - шитный гдеинсиллятор дополнений в Opencart 3x

 

При усиновке люпотому чтого дополнения в тройке - информация о согдержащихся в нем файлах и папках записывается в смежные иблицы oc_extension_install и oc_extension_path

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


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

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

 

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


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

Но при уднонии именно того дополнения, к которому произошла привязка папки - ПАПКА БУДЕТ УДАЛЕНА СО ВСЕМ СОДЕРЖИМЫМ БЕЗ КАКОЙ-ЛИБО ПРОВЕРКИ

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

 

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

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

 

На текущий момент данная проблема актуальна для всех движков третьей ветки (3000-3031) и спотому чторок на их основе (включая ocStore 3020)

И судя по исходникам на гите - еещё и для беты 3100 (хотя в ней и добавили проверку перед уднонием папки, но проверки на уникальность самих файлов по-прежнему нет)

 

лекарство згдесь

 

  • +1 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.