Обнаружил не логичное с моей точки зрения, но очевидно сейчас мне объяснят в чём я не прав, поведение метода savesettings плагина доставки (применительно к ShopScript). Смысл проблемы в том, что даже если, в процессе эволюции кода какой-то параметр стал не актуален, то он из БД не удаляется. Другими словами, когда методу savesetting передаётся массив того, что надо сохранить, то он это сохранит, но то, что исчезло - не удалит. В результате, если набор параметрво динамически меняется при каждом сохранении, то использовать принцип проверки на наличие и отсутствие параметра не возможно. В предельном случае его можно было бы обнулить, но тогда надо ещё и помнить что за параметры удалялись.
Или я что-не так опять делаю? Как сделать так, чтобы исчезали те параметры, которые не передали методу savesettings?
Сам себе отвечу. В методе savesettings перед сохранением добавил
Такой способ некорректен, т. к. плагины доставки являются системными, а значит, могут использоваться и другими приложениями, а не только Shop-Script. Пока таких других приложений нет, ваш способ будет работать, а после их появления снова будут возникать проблемы.
А для чего нужна такая проверка и очистка? Если так не делать, возникают проблемы? Или вы заботитесь о размере базы данных пользователей?
Да. Возникают проблемы.
Вообще-то плагин хоть и системный, но свои настройки хранит только в параметрах приложения. Причём каждый экземпляр плагина хранит свои. Плагин то подключается именно в приложении. Если не верите - посмотрите в каких таблицах хранятся настройки.
Вот именно. Вы показали, как можно удалить настройки для приложения shop. А когда появится приложение store, также использующее плагины доставки и хранящее их настройки в своей таблице store_plugin_settings, вы добавите ещё одну похожую строку в свой плагин?
Причём вы можете никогда не узнать о существовании такого приложения, пока/если оно не будет опубликовано в магазине Webasyst. А значит, ваш плагин в этом приложении может работать некорректно.
Поскольку разработчикам сил хватает только в форуме по пустякам языком чесать, а вопросы как решить проблему и почему оно не работает времени нет, то да. Будем в плагины костыли вставлять. Из всего многообразия приложений предлагаемых, плагин доставки нужен только магазинам.
Вы бы вместо флуда на вопрос почему виснет метод фетч при генерации страницы сеттингс ответили. Логист даёт. 150 пунктов, а таблицу настроек ваш движок может не зависая построить только для 138. А дальше виснет полностью без сообщений и таймаутов
Не надо так.