Проблемка с дополнительными свойствами товаров
Создаю дополнительные свойства товаров через админку в minishop2 (2.2.0-pl2), подключаю к нужному каталогу, все работает и выводится, но присутствует проблема с полями типа «Список с автодополнением». При создании нового товара или при сохранении существующего, с незаполненными полями этого типа, приводит к появлению в них пустых опций, которые при заполнении приходится удалять, иначе они там остаются…
В базе данных у этих полей как и у всех остальных данные просто пустые, но если добавить значение к этому полю не удаляя пустое, то создается еще одна строка с новыми данными, а пустая остается… Т.е. похоже что при выводе/сохранении отсутствует фильтрация для таких полей и пустое значение считается элементом списка, что не сильно удобно в конечном использовании…
Есть мысли как это можно поправить и главное где?
В базе данных у этих полей как и у всех остальных данные просто пустые, но если добавить значение к этому полю не удаляя пустое, то создается еще одна строка с новыми данными, а пустая остается… Т.е. похоже что при выводе/сохранении отсутствует фильтрация для таких полей и пустое значение считается элементом списка, что не сильно удобно в конечном использовании…
Есть мысли как это можно поправить и главное где?
Комментарии: 8
Напишите хотя бы, это только у меня данная проблема, или это особенность работы доп. полей…
Не замечал такого ни разу.
Выглядит так, как будто товары были забиты каким-то скриптом импорта, и он надобавлял таких пустых значений.
Выглядит так, как будто товары были забиты каким-то скриптом импорта, и он надобавлял таких пустых значений.
такое происходит при создании нового товара в ручную, никаких модификаций или доп скриптов не используется… в базе данных в таблице ms2_product_options после сохранения нового товара присутствуют все ключи доп полей с пустыми значениями. Если напрямую из базы удалить ключи относящиеся к этим спискам, в админке эти пустые значения исчезают, но при первом же сохранении они добавляются в базу снова…
единственное отличие от чистой установки, это то что сперва стояла версия minishop2 2.3, потом прочитал что она поддерживаться не будет, деинсталировал и установил 2.2
сейчас попробую сделать чистую установку и проверить на ней.
единственное отличие от чистой установки, это то что сперва стояла версия minishop2 2.3, потом прочитал что она поддерживаться не будет, деинсталировал и установил 2.2
сейчас попробую сделать чистую установку и проверить на ней.
Может быть, проблема как раз в этом.
не из-за этого… другой сайт, тот же хостинг, полностью чистая установка modx 2.4.2, из модулей minishop 2.2.0-pl2 и pdoTools 2.1.13-pl
добавил 1 доп. поле, при сохранении товара с незаполненным полем и обновлением страницы все так же вылезает пустая опция в этом поле…
(единственное что смущает, после сохранения товара и попытке перейти на другую страницу или обновить, вылетает окно что есть не сохраненные данные, хотя я думаю это не относится к текущей проблеме..)
добавил 1 доп. поле, при сохранении товара с незаполненным полем и обновлением страницы все так же вылезает пустая опция в этом поле…
(единственное что смущает, после сохранения товара и попытке перейти на другую страницу или обновить, вылетает окно что есть не сохраненные данные, хотя я думаю это не относится к текущей проблеме..)
Не относится.
Ну, значит это косяк в miniShop2.2.
Ну, значит это косяк в miniShop2.2.
ясно… значит буду добавлять поля через плагины, ну или поковыряюсь в коде minishop, может получится решить проблему.
спаисбо
спаисбо
Нашел решение! Оставлю тут, может кому пригодится.
В файле core/components/minishop2/model/minishop2/msproductdata.class.php 48 строку, вот эту:
После чего в таблицу базы ms2_product_options прекращают сохранятся дополнительные поля с пустыми значениями. И соответственно пропадают пустые опции в админке.
Точно гарантировать, что это не сломает ничего другого я не могу, но пока по всем моим тестам работает так как надо. Да и чисто технически хранить для каждого товара все его пустые доп. поля как-то не логично…
В файле core/components/minishop2/model/minishop2/msproductdata.class.php 48 строку, вот эту:
if (!empty($value) || (is_array($options) && array_key_exists($key, $options))) {
меняем на if (!empty($value)) {
После чего в таблицу базы ms2_product_options прекращают сохранятся дополнительные поля с пустыми значениями. И соответственно пропадают пустые опции в админке.
Точно гарантировать, что это не сломает ничего другого я не могу, но пока по всем моим тестам работает так как надо. Да и чисто технически хранить для каждого товара все его пустые доп. поля как-то не логично…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.