К содержанию

Вывод товаров с определенным цветом

Вывод товаров определенного цвета:
[[!msProducts?
	&parents=`0`
	&innerJoin=`{"Options":{"class":"msProductOption"}}`
	&groupby=`msProduct.id`
	&where=`{"Options.key":"color","Options.value:IN":["Белый","Белая"]}`
]]
Вывод товаров с нужным именем файла-изображения:
[[!msProducts?
	&parents=`0`
	&innerJoin=`{"msProductFile":{"alias":"File","on":"msProduct.id = File.product_id"}}`
	&groupby=`msProduct.id`
	&where=`{"File.name:LIKE":"%IMG_0049%"}`
]]
Не больше 2х LIKE, если не знаешь точного имени:
&where=`{"File.name:LIKE":"%file1%","OR:File.name:LIKE":"%file2%"}`
или сколько угодно в IN, если знаешь:
&where=`{"File.name:IN":["file1.jpg","file2.jpg"]}`
Wassi Wassinen
Wassi Wassinen
27 сентября 2014, 18:23
modx.pro
5 944
Реклама

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

Wassi Wassinen
Wassi Wassinen Проверенный
27 сентября 2014, 22:24
''
    Wassi Wassinen
    Wassi Wassinen Проверенный
    27 сентября 2014, 23:18
    Разобрался. Дело было в скобках. :)
      Володя
      Володя Эксперт
      27 сентября 2014, 23:40
      так уж написал бы как правильно то для истории…
        Wassi Wassinen
        Wassi Wassinen Проверенный
        27 сентября 2014, 23:52
        &where=`{«Data.color»: Венге}`
    Wassi Wassinen
    Wassi Wassinen Проверенный
    27 сентября 2014, 23:52
    Что-то я подзабыл, как через OR выводить несколько значений.
      Wassi Wassinen
      Wassi Wassinen Проверенный
      29 сентября 2014, 13:55
      Как выяснилось — ответ не найден. Если есть, что подсказать — добра вам и благодарностей. :)
        Mihan
        Mihan Старожил
        29 сентября 2014, 14:01
        У меня такая же проблема. Почему-то where в сниппете mfilter2 не применяется.
          Wassi Wassinen
          Wassi Wassinen Проверенный
          29 сентября 2014, 14:06
          Тут нужен Василий. :)
          Wassi Wassinen
          Wassi Wassinen Проверенный
          29 сентября 2014, 15:34
          Отцы, не проходите мимо. Расскажите как добиться результата. ''
            Wassi Wassinen
            Wassi Wassinen Проверенный
            29 сентября 2014, 16:23
            Запрос, который по-идее должен работать — не работает:
            &where=`[[{"Data.color:LIKE":"%Белая%", "OR:Data.color:LIKE":"%Белый%"]]}`
              Василий Наумкин
              Василий Наумкин Администратор
              29 сентября 2014, 17:21
              Ну так JSON то написан с ошибкой — проверяй bezumkin.ru/utils/json
                Володя
                Володя Эксперт
                29 сентября 2014, 17:44
                дак даже если без ошибки у него разъве получится выбрать — "%Белая%"?
                  Василий Наумкин
                  Василий Наумкин Администратор
                  29 сентября 2014, 17:59
                  Получится, там же строка с JSON.

                  Но правильнее, конечно, так:
                  [[!msProducts?
                  	&parents=`0`
                  	&innerJoin=`{"Options":{"class":"msProductOption"}}`
                  	&groupby=`msProduct.id`
                  	&where=`{"Options.key":"color","Options.value:IN":["Белый","Белая"]}`
                  ]]
                    Wassi Wassinen
                    Wassi Wassinen Проверенный
                    29 сентября 2014, 22:35
                    Спасибо, Василий. За инструмент — что-то позабыл про него. И за пример — сам бы не додумался. Василий, подскажи еще один момент — используя присоединение таблиц, можно построить более сложный запрос и искать в имени файлов по галерее изображений каждого продукта? И если да, как это сделать?

                    Заранее благодарен.
                      Василий Наумкин
                      Василий Наумкин Администратор
                      30 сентября 2014, 00:05
                      Найди 10 отличий с предыдущим примером.
                      [[!msProducts?
                      	&parents=`0`
                      	&innerJoin=`{"msProductFile":{"alias":"File","on":"msProduct.id = File.product_id"}}`
                      	&groupby=`msProduct.id`
                      	&where=`{"File.name:LIKE":"%IMG_0049%"}`
                      ]]
                        Wassi Wassinen
                        Wassi Wassinen Проверенный
                        30 сентября 2014, 11:18
                        Закинул спасибо.
                          Василий Наумкин
                          Василий Наумкин Администратор
                          30 сентября 2014, 11:26
                          На здоровье!
                            Wassi Wassinen
                            Wassi Wassinen Проверенный
                            30 сентября 2014, 11:29
                            Спасаешь. :)
                          Wassi Wassinen
                          Wassi Wassinen Проверенный
                          30 сентября 2014, 11:29
                          Василий, а как построить этот запрос по аналогии предыдущего — чтобы можно было выбирать сразу несколько имен файлов?
                            Василий Наумкин
                            Василий Наумкин Администратор
                            30 сентября 2014, 11:46
                            Или не больше 2х LIKE, если не знаешь точного имени:
                            &where=`{"File.name:LIKE":"%file1%","OR:File.name:LIKE":"%file2%"}`
                            или сколько угодно в IN, если знаешь:
                            &where=`{"File.name:IN":["file1.jpg","file2.jpg"]}`

                            Больше 2х LIKE использовать не получится, потому что иначе ключ массива «OR:File.name:LIKE» в условии будет повторяться и значение в нём — затираться.
                              Wassi Wassinen
                              Wassi Wassinen Проверенный
                              30 сентября 2014, 11:48
                              Понял. Спасибо еще раз!
                        Pavel
                        Pavel Старожил
                        04 декабря 2018, 16:19
                        А как сделать вывод такого же цвета, как у товара на странице?
                  Сергей Карпович
                  27 января 2021, 09:38
                  Подскажите как, в вывод товаров подставить значение опции текущего товара.
                  Сниппет вывожу на странице товара.
                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    23