Проблемка с дополнительными свойствами товаров

Создаю дополнительные свойства товаров через админку в minishop2 (2.2.0-pl2), подключаю к нужному каталогу, все работает и выводится, но присутствует проблема с полями типа «Список с автодополнением». При создании нового товара или при сохранении существующего, с незаполненными полями этого типа, приводит к появлению в них пустых опций, которые при заполнении приходится удалять, иначе они там остаются…




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

Есть мысли как это можно поправить и главное где?
Дмитрий
13 ноября 2015, 17:09
modx.pro
1 904
0

Комментарии: 8

Дмитрий
17 ноября 2015, 18:36
0
Напишите хотя бы, это только у меня данная проблема, или это особенность работы доп. полей…
    Василий Наумкин
    17 ноября 2015, 19:30
    0
    Не замечал такого ни разу.

    Выглядит так, как будто товары были забиты каким-то скриптом импорта, и он надобавлял таких пустых значений.
      Дмитрий
      17 ноября 2015, 19:44
      0
      такое происходит при создании нового товара в ручную, никаких модификаций или доп скриптов не используется… в базе данных в таблице ms2_product_options после сохранения нового товара присутствуют все ключи доп полей с пустыми значениями. Если напрямую из базы удалить ключи относящиеся к этим спискам, в админке эти пустые значения исчезают, но при первом же сохранении они добавляются в базу снова…
      единственное отличие от чистой установки, это то что сперва стояла версия minishop2 2.3, потом прочитал что она поддерживаться не будет, деинсталировал и установил 2.2
      сейчас попробую сделать чистую установку и проверить на ней.
        Василий Наумкин
        17 ноября 2015, 19:44
        0
        Может быть, проблема как раз в этом.
          Дмитрий
          17 ноября 2015, 20:14
          0
          не из-за этого… другой сайт, тот же хостинг, полностью чистая установка modx 2.4.2, из модулей minishop 2.2.0-pl2 и pdoTools 2.1.13-pl
          добавил 1 доп. поле, при сохранении товара с незаполненным полем и обновлением страницы все так же вылезает пустая опция в этом поле…
          (единственное что смущает, после сохранения товара и попытке перейти на другую страницу или обновить, вылетает окно что есть не сохраненные данные, хотя я думаю это не относится к текущей проблеме..)
            Василий Наумкин
            17 ноября 2015, 20:15
            0
            Не относится.

            Ну, значит это косяк в miniShop2.2.
              Дмитрий
              17 ноября 2015, 20:25
              0
              ясно… значит буду добавлять поля через плагины, ну или поковыряюсь в коде minishop, может получится решить проблему.
              спаисбо
    Дмитрий
    17 ноября 2015, 23:30
    1
    +1
    Нашел решение! Оставлю тут, может кому пригодится.
    В файле 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 прекращают сохранятся дополнительные поля с пустыми значениями. И соответственно пропадают пустые опции в админке.
    Точно гарантировать, что это не сломает ничего другого я не могу, но пока по всем моим тестам работает так как надо. Да и чисто технически хранить для каждого товара все его пустые доп. поля как-то не логично…
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8