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

Вывод товаров определенного цвета:
[[!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
27 сентября 2014, 18:23
modx.pro
11
4 958
0

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

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

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

                    Заранее благодарен.
                      Василий Наумкин
                      30 сентября 2014, 00:05
                      1
                      0
                      Найди 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
                        30 сентября 2014, 11:18
                        0
                        Закинул спасибо.
                        Wassi Wassinen
                        30 сентября 2014, 11:29
                        0
                        Василий, а как построить этот запрос по аналогии предыдущего — чтобы можно было выбирать сразу несколько имен файлов?
                          Василий Наумкин
                          30 сентября 2014, 11:46
                          2
                          0
                          Или не больше 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
                            30 сентября 2014, 11:48
                            0
                            Понял. Спасибо еще раз!
                      Pavel
                      04 декабря 2018, 16:19
                      0
                      А как сделать вывод такого же цвета, как у товара на странице?
                Сергей Карпович
                27 января 2021, 09:38
                0
                Подскажите как, в вывод товаров подставить значение опции текущего товара.
                Сниппет вывожу на странице товара.
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  23