[miniShop2] Версия 2.4.11

Немного поработал с имеющимся списком github.com/bezumkin/miniShop2/pulls
Разобрал что смог и вот список изменений:
— в список заказов добавлена работа с контекстом
— исправлена ошибка загрузки сторонних классов если папка core вынесена за пределы веб сервера
— исправлено обновление стоимости заказа при создании заказа из админки
— исправлена работа опций-чекбоксов в админке
— расширен функционал работы с деревом категорий опций
— расширен функционал работы с деревом категорий товара
— исправлена обработка опций продукта
и другие мелкие правки…


Что нового?
— работа с контекстом в списке заказов


— расширен функционал работы с деревом категорий опций, за что спасибо Bournwog


— аналогично расширен функционал работы с деревом категорий товара


— исправлена обработка опций продукта
Ранее опция в зависимости от кол-ва значений представляла из себя строку, либо массив. Кто то не бился с тем что опции не выводятся. Вообщем теперь опция всегда массив.

И другие мелкие правки, спасибо всем кто принимал в этом участие.

ps. Новая версия скоро будет доступна в репозитории магазина. Тестируем, отписываемся.
Всем спасибо!
Володя
16 июня 2017, 11:39
modx.pro
6 598
+22
Поблагодарить автора Отправить деньги

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

Василий Наумкин
16 июня 2017, 15:01
+9
Новая версия уже в репозитории.

Выражаю Володе огромную благодарность за разбор завалов с pull-request в репозитории miniShop2!
Антон
16 июня 2017, 17:02
-4
Делайте уже новую платную ветку минишопа с годовой техподдержкой от Володи.
Марат Марабар
16 июня 2017, 17:12
+2
Володь, спасибо за работу, но ссылку, наверное, надо давать за закрытые pull request github.com/bezumkin/miniShop2/pulls?q=is%3Apr+is%3Aclosed
    Володя
    16 июня 2017, 17:25
    +3
    пожалуйста.
    да кому интересно разберется…
    Андрей
    17 июня 2017, 13:24
    0
    проблема с сортировкой опций решена в этом выпуске?
      Володя
      17 июня 2017, 13:29
      0
      конкретнее пожалуйста
        Андрей
        17 июня 2017, 13:32
        0
        В админке товара опции перемешиваются на вкладке свойства товара. В результате невозможно сделать нормально наценки. не знаю от чего это зависит, но ставлю опции в порядке возрастания: 800,1000,1200,1400,1600 а после сохранения вижу: 1000,1200,1400,1600,800.
        Это приводит к тому, что переходя в товар из каталога мы видимо бОльшую цену виду того, что размер 1000 стоит первым и он с наценкой.
          Володя
          17 июня 2017, 13:53
          0
          В результате невозможно сделать нормально наценки. не знаю от чего это зависит, но ставлю опции в порядке возрастания: 800,1000,1200,1400,1600 а после сохранения вижу: 1000,1200,1400,1600,800.
          этот момент да, ранее я вносил сортировку для опций, было
          sort($options)
          теперь же ее убрал, так что да опции должны быть в том порядке что заносятся в админке.
            Андрей
            17 июня 2017, 14:04
            0
            Это с новой версии Минишопа стало все нормалек? Или ранее уже было?
              Володя
              17 июня 2017, 14:07
              +2
              вы спрашиваете
              проблема с сортировкой опций решена в этом выпуске?
              логично что про эту я вам и отвечаю.
              да, с новой версией
      Eugene Generalov
      17 июня 2017, 13:54
      0
      Подскажите как теперь правильно выводить опции, если значение одно?
      {$option.0}
        Володя
        17 июня 2017, 14:06
        1
        +2
        Подскажите как теперь правильно выводить опции, если значение одно?
        варианты
        {$option.0}
        {$option[0]}
        другие варианты…
          Антон
          17 июня 2017, 16:12
          0
          Я думаю, Евгений спрашивает про глюк если только одна опция в товаре, а в другом товаре может быть несколько опций этой же опции.
            Володя
            17 июня 2017, 16:25
            +1
            задавая вопрос конкретизируйте… вероятность нужного ответа будет выше.
            спрашивает про глюк если только одна опция в товаре, а в другом товаре может быть несколько опций этой же опции
            если опции выводятся через сниппет msOptions, то он предполагает что опции это массив, что и было поправлено.
            если опции выводятся через сниппет msProductOptions , то там имеется ключ option.value что имеет значение как и раньше, потому что изменения его никак не коснулись.

            возможно Евгений имел в ввиду еще какой контекст, тогда возможен еще какой либо вариант…
              Дмитрий Храмов
              19 июня 2017, 02:24
              0
              Что нужно сделать, чтобы обратно вернуть.
              Опции вытаскивались через сниппет из другого контекста — теперь не вытаскиваются.
                Дмитрий Храмов
                19 июня 2017, 02:41
                0
                option.value выручило.
                Там где опция не массив (одно значение)
                Перелопачивание сайта началось
                option[0] — не работает, option.0 тоже — использую феном
                  Володя
                  19 июня 2017, 07:28
                  0
                  option[0] — не работает, option.0 тоже — использую феном
                  не верю.

                  добавьте просто join к опции и все будет нормально
                  {$option|join}
        Илья
        20 июня 2017, 17:42
        0
        Здравствуйте коллеги.

        Есть сайт, стоит minishop2.2 и заведены опции для товаров (32 штуки).

        Для подключения импорта/экспорта обновил минишоп до последней версии.

        Получил интересную ошибку — в админке все опции есть, для категории включены, в товаре заполнены, но выводя в чанке msProduct.content
        [[+price_vosst]]получаю ровным счётом ничего.

        В чём может быть проблема?
          Володя
          20 июня 2017, 17:55
          1
          0
          [[+Option.value]]
          {$option.value}
          {$option|join}
          {$option.0}
            Илья
            20 июня 2017, 18:10
            0
            Спасибо! а то я чуть инфаркт не схватил!
              Илья
              20 июня 2017, 18:18
              0
              Ещё вопрос — куда то делись фото из gallery при выводе в карточке.

              чанк такой
              <div id="msGallery">
                  <div class="fotorama">
              	<a rel="fancybox" href="[[+url:default=`/assets/components/minishop2/img/web/ms2_big.png`]]" target="_blank">
              		<img src="[[+360x270:default=`/assets/components/minishop2/img/web/ms2_big.png`]]"  alt="" title="" id="mainImage" style="max-width:100%"/>
              	</a>
              	<div class="row">
              		[[+rows]]
              	</div></div>
              </div>
              в src получаю (unknown)

              что в нём не так?
                Володя
                20 июня 2017, 20:30
                0
                Посмотрите формат чанка под новую версию. У вас он от старой
                  Илья
                  21 июня 2017, 09:35
                  0
                  Здравствуйте,

                  А где можно посмотреть?

                  Пока документации не нарыл…
                  src="{$file['360x270']}"
                  выдало тот же результат…
                      Илья
                      21 июня 2017, 09:52
                      0
                      Этот чанк так и есть.

                      Вопрос был по tpl.msGallery.outer. Это в общем то его код был в первом сообщении.

                      tpl.msGallery совпадает с тем что дали Вы.
                        Володя
                        21 июня 2017, 09:55
                        0
                        Вопрос был по tpl.msGallery.outer. Это в общем то его код был в первом сообщении.
                        он более не используется
                        docs.modx.pro/components/minishop2/update#Переход-с-2.2-на-2.3
                          Илья
                          21 июня 2017, 10:02
                          0
                          удалил лишние чанки, ровно то же самое…
                            Илья
                            21 июня 2017, 10:04
                            0
                            Возможно ещё в этом ошибка, в консоле нашёл следующую строку
                            Uncaught ReferenceError: miniShop2Config is not defined
                            По сути пока используется как каталог, заказа пока нет, но может это важно…
                              Володя
                              21 июня 2017, 10:13
                              0
                              Возможно ещё в этом ошибка, в консоле нашёл следующую строку
                              Uncaught ReferenceError: miniShop2Config is not defined
                              да
                                Илья
                                21 июня 2017, 10:23
                                0
                                Спасибо за терпение, просто не внимательно сделал шаблон.
                                Володя
                                21 июня 2017, 10:28
                                +1
                                Спасибо за терпение, просто не внимательно сделал шаблон.
                                На пустырнике...)
                Влад
                20 июня 2017, 23:45
                0
                не понимаю как выводить теперь дополнительные опции?
                [[msProductOptions?&onlyOptions=`order`]]
                вот так не выводит…

                Чанк
                {foreach $options as $option}
                    <div class="uk-grid">
                        <label class="uk-width-1-2">{$option.caption}:</label>
                        <div class="uk-width-1-2">
                            {if $option.value is array}
                                {var $values = ''}
                                {foreach $option.value as $value}
                                    {var $values = $values ~ $value ~ ', '}
                                {/foreach}
                                {$values | preg_replace : '#, $#': ''}
                            {else}
                                {$option.value}
                            {/if}
                            {$option.measure_unit}
                        </div>
                    </div>
                {/foreach}
                  Володя
                  21 июня 2017, 09:18
                  0
                  так же как и раньше, если у вас что то не выводится, верните чанк в исходное состояние и проверьте…
                    Влад
                    21 июня 2017, 10:36
                    0
                    Стандартный чанк тоже ничего не выводит
                    {foreach $options as $option}
                        <div class="form-group">
                            <label class="col-md-2 control-label">{$option.caption}:</label>
                            <div class="col-md-10 form-control-static">
                                {if $option.value is array}
                                    {$option.value | join : ', '}
                                {else}
                                    {$option.value}
                                {/if}
                            </div>
                        </div>
                    {/foreach}
                    Я в своем вообще только классы менял
                      Влад
                      21 июня 2017, 10:37
                      0
                      У меня раньше выводилось вот так [[+order]], вы выше писали про [[+Option.value]]
                      {$option.value}
                      {$option|join}
                      {$option.0}

                      В моем случае это как должно выглядеть вообще не понимаю…
                        Володя
                        21 июня 2017, 10:40
                        0
                        У меня раньше выводилось вот так [[+order]], вы выше писали про [[+Option.value]]
                        {$option.value}
                        {$option|join}
                        {$option.0}
                        это если вы выводите опции напрямую например на странице продукта или в чанке сниппета msProduct
                        В моем случае это как должно выглядеть вообще не понимаю…
                        так как в стандартном чанке. Если у вас чтото не выводится смотрите внимательнее может где ошиблись. Проверяйте…
                          Влад
                          21 июня 2017, 10:57
                          0
                          То есть на странице продукта я могу прописать {$order.value} или как использовать данные конструкции реально не понимаю, весь вечерь вчера сидел перещалкал по разному и снипетом и напрямую нифига не выводит
                            Володя
                            21 июня 2017, 11:01
                            0
                            есть обычный синтаксис тегов MODX и есть fenom, всюду где вы видите одинарные скобки {} это феном, читать тут docs.modx.pro/components/pdotools/parser#Шаблонизатор-Fenom
                            на странице продукта теги будут работать если вы включите шаблонизатор в настройках.

                            с помощью привычных для вас тегов это будет выглядеть как
                            [[*order.value]]
                            [[+order.value]]
                              Влад
                              21 июня 2017, 11:05
                              0
                              Да конечно я знаю про феном, просто нифига не выводит)
                              [[*order.value]]
                              [[+order.value]]
                              даже так!!!
                              Что мне делать то? Ошибок в логах никаких, и повторюсь до обновы все работало хорошо!
                                Володя
                                21 июня 2017, 11:07
                                0
                                Да конечно я знаю про феном, просто нифига не выводит)

                                где кто и как не выводит.
                                в сниппете msProductOptions?
                                там все осталось без изменений.
                                  Влад
                                  21 июня 2017, 11:09
                                  0
                                  Вообще никак, я же говорю перепробывал уже все, не знаю куда глядеть тупо не выводит, и СНИПЕТОМ и НАПРЯМУЮ на странице
                                  Володя
                                  21 июня 2017, 11:24
                                  0
                                  ну тогда и я незнаю…
                                  Влад
                                  21 июня 2017, 11:31
                                  0
                                  Ну я же пишу вот так не выводит [[*order.value]] и так тоже [[+order.value]], снипетом msProductOptions с использованием стандартного чанка тоже не выводит!

                                  Проверил на другом магазе там в шаблоне просто прописал [[+order.value]], все работает, а на этом вообще не хочет выводить!!!
                                  Володя
                                  21 июня 2017, 11:35
                                  0
                                  может нет опции с таким ключем order?
                                  Влад
                                  21 июня 2017, 11:46
                                  0
                                  есть конечно щас настроил что через [[+order.value]] выводит опцию order в каталоге, в превью карточки товара или как там это называется) mSearch2 тоже прекрасно видит эту опцию, а вот внутри товара никак вообще не выводит…
                                  Володя
                                  21 июня 2017, 12:09
                                  0
                                  а вот внутри товара никак вообще не выводит…
                                  неверю…
                                  Иван Бондаренко
                                  24 июня 2017, 14:57
                                  0
                                  Володя, привет. Я только что попробовал вызвать опцию товара на его странице в поле контент. Опция текстовое поле содержит 1 значение. Сайт специально создал на хостинге Modhost с нуля. Чистый…

                                  Из всех вариантов
                                  [[+steel.value]]
                                  {$steel.value}
                                  {$steel|join}
                                  {$steel.0}
                                  {$steel[0]}
                                  {$steel.value|join}
                                  {$steel|join}
                                  {$steel.0|join}
                                  {$steel[0]|join}

                                  Работает только первый. Феном парсер включен…

                                  Доступы s10068.h8.modhost.pro/manager/
                                  s10068
                                  kYV4lh1et2Xm
                                  Володя
                                  24 июня 2017, 15:26
                                  +1
                                  могу посоветовать вдумчиво прочесть про docs.modx.pro/components/pdotools/parser

                                  Володя
                                  24 июня 2017, 15:28
                                  +2
                                  у предыдущий оратора тоже ничего не выводилось, а оказалось просто не там менял вызов…
                                  потому давайте завязывать с паникой и внимательней проверяйте что и где пишите.
                                  Спасибо за понимание!
                                  Иван Бондаренко
                                  24 июня 2017, 15:53
                                  0
                                  Спасибо, разобрался. Привык уже к старому поведению опций. Затупил.
                                  На странице товара теперь будет так, как для остальных полей

                                  {$_modx->resource.steel.0}
                                  {$_modx->resource.steel|join}
              Илья
              21 июня 2017, 11:25
              0
              Здравствуйте,

              От клиента получил интересный вопрос — можно ли создать учётку только для обновления файлов галереи?

              Т.е. по правам все остальные поля карточки товара закрыты.
                Василий Наумкин
                21 июня 2017, 12:43
                0
                Галерея требует разрешение msproductfile_save, msproductfile_list и msproductfile_generate, так что, наверное, можно выдать только их юзеру, а всё остальное он поменять не сможет.

                Но я так не пробовал, проверяйте.
                  Илья
                  21 июня 2017, 13:07
                  0
                  Здравствуйте, Василий.

                  А есть возможность при этом скрыть видимость оставшихся полей через права? т.е. юзер зайдя в карточку товара увидит только вкладку галерея?
                    Василий Наумкин
                    21 июня 2017, 13:12
                    0
                    Конечно есть! Пиши код на ExtJS и подключай его через плагин на загрузку страницы товара.
                Михаил
                29 июня 2017, 15:51
                0
                Добрый день.
                Обнаружил сегодня такую проблему на сайте:
                На странице оформления заказа неработает {$delivery.payments | json_encode}. Оплаты к тоставке подвязаны, если указать у msOrder пустой шаблон они видны, также если написать, например так {$delivery.payments[0]}, то есть вывести первый элемент списка тоже выводит, а вот так как указал вначале, категорически отказывается работать… выдает пустоту при этом и ошибок никаких нет.
                Помогите пожалуйста разобраться хоть куда смотреть… Заранее спасибо
                Константин Ильин
                01 июля 2017, 14:37
                0
                Володя, такой вопрос:

                Создал я опцию «Цвет». Мне необходимо вывести ее например на английском, т.е. «Color».
                joxi.ru/82Qpan0sjWDe9m

                Например с mSearch2 все понятно — добавить в лексикон en:
                Если вы добавили новый фильтр и он отображается непонятной длинной надписью на английском — это значит, что её нужно добавить в словарь mSearch2.

                Если есть решение, то как оно будет работать с msOptionPrice2?
                  Володя
                  01 июля 2017, 14:51
                  +1
                  Создал я опцию «Цвет». Мне необходимо вывести ее например на английском, т.е. «Color».
                  joxi.ru/82Qpan0sjWDe9m
                  естественно волшебства не будет.
                  Вы либо используете названия заданные в админке, само собой они на одном языке, либо используйте лексиконы, создав соответствующие записи на необходимых языках. Либо еще какой то свой удобный вам вариант.

                  Сергей Глазунов
                  21 июля 2017, 02:49
                  0
                  Василий, Володя, большое спасибо за обновы!
                  Поставил только вчера, пока тестируем.
                  Тоже только после обновы все ОПЦИИ в категориях перестали выводится, чуть глаза не выпали от испуга…
                  Так же перебирал все варианты пока не наткнулся на эту страничку, оказывается надо было добавить к опции .value
                  Было: [[+marka]]
                  Стало: [[+marka.value]]


                  Другие варианты:
                  {$marka.0} — Выводит
                  {$marka.[0]} — Не выводит
                  {$marka|join} — Выводит

                  Как лучше выводить, в чем разница?
                  Подскажите еще пожалуйста, как сортировать вывод по опциям? Очень прошу!
                  modx.pro/help/11109/
                  Давно создавал тему по этому вопросу, так и не разобрался и ни кто не помог :(
                    Дмитрий Суворов
                    26 июля 2017, 13:15
                    0
                    У меня выводит только исключительно через {$_modx->resource.cloth.0}, а другие перечисленные методы работать не хотят чего-то (PHP 7.1.7)
                      Stan Ezersky
                      28 июля 2017, 15:11
                      0
                      Тоже заметил, что просто опцию, типа [[+option]] больше не выведешь
                      lineharo
                      27 июля 2017, 22:01
                      0
                      Непонятное поведение с чекбоксами в опциях товаров. Если чекбокс без галочки, то значение из БД удаляется и при фильтрации optionFilters запрос выдаёт ответ 0.
                      Пробовал так (чекбокс — infoString, curr_format работает нормально):
                      'optionFilters'=>'{
                             "curr_format:=":"888.88",
                             "infoString:!=":"1"
                          }'
                      так
                      'optionFilters'=>'{
                             "curr_format:=":"888.88",
                             "infoString:=":"0"
                          }'
                      и так:
                      'optionFilters'=>'{
                             "curr_format:=":"888.88",
                             "infoString:=":""
                          }'
                      Не работает. Это баг или нужно по-другому действовать?
                        Володя
                        27 июля 2017, 22:42
                        0
                        А чего непонятного? По-моему вы суть уловили. Если нет чекбокса — нет и значения.
                          lineharo
                          27 июля 2017, 22:45
                          0
                          А как тогда отфильтровать опции у которых снята галочка?
                            Володя
                            28 июля 2017, 11:38
                            +1
                            вероятно как
                            'optionFilters'=>'{
                                   "curr_format:=":"888.88",
                                   "infoString":null
                                }'
                              lineharo
                              28 июля 2017, 13:25
                              0
                              Да. Так работает, спасибо!
                        Mark
                        20 августа 2017, 16:01
                        0
                        Ребят, а как выводить опции товара если в них массив, из чанка… никак не работает что то…
                          Mark
                          20 августа 2017, 18:29
                          0
                          Отвечаю! Включить в опциях работу fenom на страницах! )))) pdoTools
                          Василий Столейков
                          13 сентября 2017, 06:40
                          0
                          — расширен функционал работы с деревом категорий опций
                          У вас на скриншоте видно как нормально работают вложенные категории. А почему у меня они не работают так:

                          То есть в вкладке Категории они не раскрываются и не показывают вложенные категории в категориях.

                          P.S. Каталог был недавно перенесен на miniShop2. Был сменен class_key у ресурсов и show_in_tree.
                            Володя
                            13 сентября 2017, 10:50
                            +1
                            P.S. Каталог был недавно перенесен на miniShop2. Был сменен class_key у ресурсов и show_in_tree.
                            ты сам пишешь что каталог был перенесен… по моему логично что если это работает в обычной ситуации, а у тебя нет нужно проверить что и как ты перенес.
                            проверь show_in_tree и isfolder, чудес то не бывает.
                            Дмитрий
                            15 октября 2017, 13:11
                            0
                            в новой версии, в корзине возникла ошибка «Cannot read property 'length' of undefined» joxi.ru/DmBgx8OhN8JBD2
                            в админке доставка и оплата включены, если кликнуть по «Самовывоз» появляется «Оплата наличными» joxi.ru/J2bx3g8i4o0L7r
                            Может вопрос не совсем сюда, можно ли настроить валидацию формы на данной странице без доставки и оплаты, спасибо.
                              Володя
                              15 октября 2017, 13:23
                              0
                              в новой версии, в корзине возникла ошибка «Cannot read property 'length' of undefined» joxi.ru/DmBgx8OhN8JBD2
                              у вас нет поля оплаты, об этом и есть ошибка. Проверьте чанк заказа, либо у вас версия php < 5.4
                              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                              79