Релиз miniShop2 ver. 2.8.2

Всем привет!



15/03/2021 в репозитории стало доступно обновление miniShop2 до версии 2.8.2.

Что же мы подготовили в данном релизе:
Добавлено:

  • В сниппет msProducts добавлена поддержка операторов OR, AND в параметре optionFilters [PR #539]

    [[!msProducts?
            &parents=`0`
            &optionFilters=`{"width":"300", "OR:height:>=":"200"}`
    ]]

  • Концепция рефакторинга подключения скриптов уведомлений [PR #542]

    Список изменений

    1. Из дефолтного JS скрипта убрана вся логика объекта Message. Оставлены лишь вызовы методов. Своеобразный драфт для последующей перезаписи
    2. Добавлен отдельный файл message_settings. Туда перенесена вся логика объекта Message из файла default. По умолчанию работает с jGrowl но уже не пытается его подключать если библиотека не найдена. В последующем пользователи смогу переписать методы этого файла под собственные библиотеки уведомлений
    3. Добавлены системные настройки CSS и JS для подключения библиотеки уведомлений. По умолчанию туда зашит jGrowl. Ранее подключение библиотеки было вшито в скрипт и было сложнее разобраться куда и как подключать свое
  • Добавлена кнопка «Сохранить и закрыть» в окне ссылок. [PR #533]
  • Добавлена поддержка параметра return в msProducts. [PR #553]

    Теперь можно использовать:
    [[!msProducts?
        &parents=`0`
        &return=`ids`
    ]]
    [[!msProducts?
        &parents=`0`
        &return=`sql`
    ]]
    [[!msProducts?
        &parents=`0`
        &return=`json`
    ]]
    [[!msProducts?
        &parents=`0`
        &return=`chunks`
    ]]
    [[!msProducts?
        &parents=`0`
    ]]

  • Добавлена возможность заменить поле Содержимое редактором блоков ContentBlocks. [PR #529]
  • Исправлено отображение значения опции товара на странице категории товаров [PR #547]
Изменено:

  • Исправлена ошибка Recoverable error: Object of class msProductData_mysql could not be converted to string [PR #555]
  • Изменен вызов переменных в дефолтном чанке msProduct.content.fenom [PR #557]
  • Перешли на новый формат записи списка изменений keepachangelog.com/en/1.0.0/
  • Удален не используемый в HTML 5
    type="text/javascript"
Удалено:

  • Удалена не используемая библиотека `jquery.form` [PR #544]
  • Удален не используемый файл стилей old.css file [PR #552]
  • Удален deprecated метод обратной совместимости с ms1 [PR #537]
  • Удалено дублирование стилей css [PR #558]
Огромное спасибо всем, кто помог с выпуском данного релиза! А именно: @Николай Савин @Евгений Webinmd @Иван Бочкарев github.com/vasia123 @Баха Волков @Иван Климчук — без Вас ничего не получилось бы!

Обновление доступно в
По просьбам создан сбор на дальнейшее развитие miniShop2
Огромное спасибо, всем кто поддерживает и донатит!
Иван Бочкарев
15 марта 2021, 11:23
modx.pro
1
906
+28
Поблагодарить автора Отправить деньги

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

Антон Тарасов
15 марта 2021, 11:31
+5
Спасибо, @Иван Бочкарев и всем коллегам! Очень важные обновления, флагман как и прежде на плаву и набирает обороты.
Лови донат :)
    Иван Бочкарев
    15 марта 2021, 11:35
    +2
    Спасибо огромное! Ребятам закинул сразу!
    Alexey
    15 марта 2021, 13:49
    +5
    Большое спасибо! Как обычно, закинул свои пять копеек))
    Дмитрий
    15 марта 2021, 14:04
    0
    Добавлена поддержка параметра return в msProducts
    Эх, это бы, да пару лет назад :)
    Дмитрий
    16 марта 2021, 12:52
    +1
    Закинул донат!
    Nik
    Nik
    16 марта 2021, 14:44
    0
    Не могу отправить… Error «Списание с иностранных карт запрещено», карта Сбербанк (KZ). Иван как можно еще отправить кроме яндекс денег и тинькоф?
      Иван Бочкарев
      17 марта 2021, 08:13
      0
      По номеру телефона +79293654868 через Сбербанк онлайн
      Андрей
      17 марта 2021, 09:46
      0
      Не знаю, с обновлением связано или нет. Но вчера обновился и вылезает теперь такая ошибка:
      Parse error: syntax error, unexpected '=' in /core/cache/includes/elements/modsnippet/20.include.cache.php on line 111
      на 111 строке такая конструкция:
      [$operator, $key] = $components;
      Меняю на
      [$operator, $key] == $components;
      все работает, но до следующей очистки кеша.
      Помогите пожалуйста решить проблему
        Михаил
        17 марта 2021, 11:41
        0
        все работает, но до следующей очистки кеша.
        Потому что вы правите закэшированный сниппет, а вам необходимо поправить исходный.
        В админке сайта в разделе сниппеты найдите сниппет с id=20 и проделайте все тоже самое в нем
          Наумов Алексей
          17 марта 2021, 11:49
          0
          Это сниппет msProducts.
          И вопрос, я так понимаю в том, что после обновления он работать перестал…
            Иван Бочкарев
            17 марта 2021, 11:55
            0
            Для начала нужно проверить, так как извещений об ошибках в работе у обновленных сайтов не было.

            Если такие имеются — пишите, подробнее, что и как. Разберемся и исправим.

            74 — сайта обновлены. Если бы не работало — написали бы уже
          Наумов Алексей
          17 марта 2021, 11:57
          0
          что с версией php у вас на хостинге?
            Николай Савин
            17 марта 2021, 17:02
            0
            А можно узнать исходя из каких соображений вы меняете код таким образом? При чем тут сравнение?
              Николай Савин
              17 марта 2021, 17:07
              0
              Проблема скорее всего в вашей версии php.
                Артем
                17 марта 2021, 17:10
                0
                Это деструктуризация массива — шотркат для конструкции list, который доступен с PHP >= 7.1.
                Поэтому, когда ты добавляешь туда еще один знак «равно», то ломаешь код.
                Либо повышай версию php до 7.1, либо заменяй на
                list($operator, $key) = $components;
                  Наумов Алексей
                  17 марта 2021, 17:12
                  +2
                  Думаю, это стоит исправить. В описании компонента в магазине мы видим:
                  Внимание, этот компонент требует версию PHP 5.3 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
                  что явно не стыкуется с требованием 7.1
                    Иван Бочкарев
                    17 марта 2021, 17:37
                    0
                    Мы всегда рады PR 😎
                      Николай Савин
                      17 марта 2021, 19:11
                      +1
                      Тут речь про то, чтоб повысить в системных требованиях минишопа минимальную версию php
                        Артем
                        18 марта 2021, 14:03
                        +1
                        Тут речь про то, чтоб повысить в системных требованиях минишопа минимальную версию php
                        Тут речь про то, чтобы исправить шорткат на старый list, потому что никто в здравом уме не будет без мажорного релиза повышать требуемую версию php с 5.3 на 7.1.

                        P.S. Стрелочки с мобильной версии настолько удобные, что я даже случайно плюсанул тебе, ну да ладно.
                          Алиса
                          20 марта 2021, 12:31
                          0
                          Добрый день! Подскажите пожалуйста, оказываете ли помощь по modx на платной основе?
                      Андрей
                      17 марта 2021, 21:17
                      0
                      Да, проблема была в версии PHP 5.6
                      Спасибо большое!
                    Scorp Satex
                    18 марта 2021, 14:10
                    +2
                    Пожалуйста, обновите описание плагина и его требования тут: modstore.pro/packages/ecommerce/minishop2

                    Там все устарело: текст, фотки.

                    Так же было бы не плохо обновить демо версию тут: minishop2.com/

                    Движок, сам miniShop2, и включить показ админ панели miniShop2 в админке, чтобы было нагляднее как работать с заказами, опциями и т.д.

                    Это вводит в заблуждение новичков.
                      Иван Бочкарев
                      18 марта 2021, 15:26
                      0
                      Спасибо! До следующих выходных обновим.

                      Что касается демо сайта — он в работе.
                        Scorp Satex
                        05 апреля 2021, 17:08
                        0
                        Эх, так и не обновили. :(
                          Иван Бочкарев
                          05 апреля 2021, 17:13
                          +1
                          Извините, что не выполнил обещаенное. Но это сейчас горит?
                          Значит был занят другим. Но я сделаю.
                      Тодор
                      23 марта 2021, 18:17
                      0
                      По поводу параметра «return» можно както вернуть масив со значениями, или только return=>json, а потом json_decode?
                        Николай Савин
                        23 марта 2021, 19:10
                        0
                        json это и есть своеобразный массив. Нет прямого возврата массива нет, так как под капотом pdoTools который не умеет возвращать массив. Это возможно только при ручном написании сниппета
                          Александр
                          24 марта 2021, 01:09
                          +2
                          pdoTools умеет возвращать массивы. Это сниппеты modx не умеют возвращать массивы. Только строки. Точнее выражайтесь плиз :-)
                            Николай Савин
                            24 марта 2021, 10:05
                            0
                            Ну да согласен — ерунду сказал. Конкретно pdoTools тут не при чем.
                              Сергей Шлоков
                              24 марта 2021, 12:06
                              +2
                              Готов загибать пальцы, какие сниппеты из pdoTools умеют возвращать массив? Думаю, пальцев на трехпалой руке хватит и ещё 3 останется.

                              Класс pdoFetch может вернуть массив, сниппеты из pdoTools нет.

                              Точнее выражайтесь плиз :-)
                                Александр
                                24 марта 2021, 13:04
                                0
                                я и сказал что все сниппеты не могут возвращать массив. Хоть из pdoTools хоть из чего. pdoFetch входит в pdoTools.
                        Руслан
                        31 марта 2021, 16:55
                        0
                        После обновление перестал работать сайт выводит ошибку 500, HTTP ERROR 500, добавил всего лишь [[!msProducts?]]
                        Проект почти готов и после обновление придётся делать заново. Переносить всё на новую CMS,
                          Андрей
                          31 марта 2021, 17:01
                          0
                          Проект почти готов и после обновление придётся делать заново. Переносить всё на новую CMS,
                          Зачем делать заново? Посмотри серверный error.log чтобы выяснить причину ошибки.

                          p.s. Обновил уже около 20 магазинов, везде всё норм.
                            Руслан
                            31 марта 2021, 17:04
                            0
                            [2021-03-31 16:25:26] (ERROR @ /public_html/core/model/modx/modx.class.php: 1031) `[[+id]]` is not a valid integer and may not be passed to makeUrl()
                            [2021-03-31 16:25:26] (ERROR in resource 3 @/public_html/core/model/modx/modparser.class.php: 1374) Bad link tag `[[~[[+id]]]]` encountered
                            [2021-03-31 16:25:27] (ERROR @/public_html/core/model/modx/modx.class.php: 1031) `[[+id]]` is not a valid integer and may not be passed to makeUrl()
                            [2021-03-31 16:25:27] (ERROR in resource 3 @ /public_html/core/model/modx/modparser.class.php: 1374) Bad link tag `[[~[[+id]]]]` encountered
                            Наумов Алексей
                            31 марта 2021, 17:05
                            +1
                            На 99% причина в этой строчке.

                            У вас выглядит как
                            [$operator, $key] = $components;
                            а стоит заменить на
                            list($operator, $key) = $components;
                              Руслан
                              31 марта 2021, 17:07
                              0
                              хорошо, понял
                                Руслан
                                31 марта 2021, 17:13
                                0
                                она не помогла ((
                                Иван Бочкарев
                                31 марта 2021, 17:09
                                +1
                                Дополнение с обновленной версией скачали 254 раза.

                                Ошибку, что ниже указали исправили. Будет выпущенно в новом релизе.
                                  Руслан
                                  31 марта 2021, 17:13
                                  0
                                  консоле вышла такая ошибка Failed to load resource: the server responded with a status of 500 ()
                                    Иван Бочкарев
                                    31 марта 2021, 17:26
                                    0
                                    Версия php какая?
                                      Руслан
                                      31 марта 2021, 17:30
                                      0
                                      beget хостинг вроде 7.4
                                        Иван Бочкарев
                                        31 марта 2021, 17:31
                                        +1
                                        Скиньте доступы в ЛС
                                          Иван Бочкарев
                                          31 марта 2021, 17:45
                                          +1
                                          PHP Version 5.6.40 — Оказалось вот такая. Поднимите до 7.1 хотя бы
                                            Руслан
                                            31 марта 2021, 17:53
                                            0
                                            спасибо огромное всё было из за PHP Version. Поднял до 8 спасибо огромное ))
                                              Руслан
                                              31 марта 2021, 17:54
                                              0
                                              теперь буду знать ))
                                        Руслан
                                        31 марта 2021, 17:18
                                        0
                                        возможно ли откатить ка как нибудь назад?
                                      Константин Ильин
                                      04 апреля 2021, 13:32
                                      0
                                      Приветствую
                                      Столкнулся с проблемой, когда товары в разных контекстах корзина не выводила товара, даже при указании контекста в вызове.
                                      Полез в сниппет msCart, а он и не учитывал этот параметр, а брал текущий
                                      prnt.sc/113uu0p
                                      $miniShop2->initialize($modx->context->key);

                                      Дописал:
                                      $context = $modx->getOption('context', $scriptProperties, $modx->context->key);
                                      $miniShop2->initialize($context);

                                      И это не только в msCart, во всех где есть инициализация и контекст такой недочет
                                      @Иван Бочкарев, есть ли возможность поправить в след релизе? а то клиент вдруг обновится без моего ведома, а я исходник правил.
                                        Иван Бочкарев
                                        04 апреля 2021, 13:37
                                        0
                                          Николай Савин
                                          04 апреля 2021, 13:40
                                          0
                                          Нужно создать issue
                                            Алексей Смирнов
                                            04 апреля 2021, 17:18
                                            0
                                            Думаю это не баг. Просто нужно дополнить это дело предложенной настройкой и все.
                                              Константин Ильин
                                              04 апреля 2021, 17:25
                                              0
                                              Не берусь браться интерпретировать как баг, но в документации не совпадение с тем, что на самом деле.
                                              prnt.sc/113zuqe

                                              context общий параметр pdoTools
                                            Алексей Смирнов
                                            04 апреля 2021, 17:18
                                            0
                                            когда товары в разных контекстах корзина не выводила товара, даже при указании контекста в вызове.
                                            А вы хотели чтобы в одном каком-то контексте у вас были показаны товары из разных контекстов?
                                            Тогда зачем товары добавлялись из разных контекстов, если отображаются на одном каком-то определенном?
                                              Константин Ильин
                                              04 апреля 2021, 17:36
                                              0
                                              У меня Контексты это города. У каждого города свой каталог.
                                              Есть еще общие страницы которые не стоило(не хотелось) дублировать во всех контекстах, например корзина или статьи, отсюда и переключение контекста

                                              Вроде автор кода Илья Уткин
                                              // Поиск Страницы в другом контексте
                                                      if ($_SERVER['REQUEST_URI'] != '/') {
                                                          $uri = substr($_SERVER['REQUEST_URI'],1);
                                                          if (substr($uri,-5) != '.html' && substr($uri,-1) != '/') {
                                                            //$uri .= '/';
                                                          }
                                                          $resource = $modx->getObject('modResource', array('uri' => $uri, 'context_key' => $placeholders['cityContext']));
                                                          if (!empty($resource)) {
                                                              $ctx = $resource->get('context_key');
                                                          } else{
                                                              return '';
                                                          }
                                                      } else {
                                                          $ctx = 'web';
                                                      }
                                                      
                                                      if ($ctx != $modx->context->key){
                                                      	$modx->switchContext($ctx);
                                                      }
                                              например я добавил товар в контексте kazan, если я переду на «общую» страницу будет контекст web, и он ничего не отобразит в миникорзине и в корзине самой.

                                              В целом я решил вопрос по другому, написал на событие добавления, чтобы он присваивал пустой контекст в корзине. По умолчанию там присваивался текущий. Для чего хранится контекст хз, отсюда как и на что это повлияет хз, но я заказы делал — полет нормальный.
                                              case 'msOnAddToCart': 
                                                      $tmp = $cart->get();
                                                      $tmp[$key]['ctx'] = '';
                                                      $cart->set($tmp);
                                                  break;
                                            Александр Мельник
                                            05 апреля 2021, 11:10
                                            0
                                            Хочу уточнить. Много где встречал упоминание, что modx в целом и minishop в частности хорошо работают с кодировкой таблиц utf8mb4
                                            Почему я всегда при установке minishop получаю ошибку создания таблицы «ms2_options» при условии что у меня все таблицы в utf8mb4?
                                            Если таблицы в utf8 то все ок
                                            github.com/Ibochkarev/miniShop2/issues/391

                                            Чего я не понимаю?
                                            Версия minishop — последняя
                                            mySql — 5.6.39
                                              Иван Бочкарев
                                              05 апреля 2021, 12:37
                                              +1
                                              Прошу создать issue, чтобы не затерялось. Мы проверим
                                              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                              64