minishop2 сортировка по полю color
        Приветствую,
подскажите на выводе
в саму таблицу сохраняется в виде json как я вижу, в фильтр тоже могу вбить в формате json цвет
вопрос как правильно отсортировать по цветам фильтр
{«Data.color:LIKE»:"%цвет%"} не работает..., пробовал название цвета переводить в json, тоже не работает
где то еще вычитал что можно напрямую вводить типа
не могу найти чтото документации по сортировке
видел гдето что можно поле color плагином перевести в текстовый формат,
если это сделать, сортировка заработает? например если через запятую вводить а потом лайками искать?
    
    
                                                                                
            подскажите на выводе
[[!pdoPage:empty=`Ничего не найдено...`? &element=`msProducts`&where=``]] 
[[!+page.nav]]Как правильно прописать в условие where, один или два цвета,в саму таблицу сохраняется в виде json как я вижу, в фильтр тоже могу вбить в формате json цвет
вопрос как правильно отсортировать по цветам фильтр
{«Data.color:LIKE»:"%цвет%"} не работает..., пробовал название цвета переводить в json, тоже не работает
где то еще вычитал что можно напрямую вводить типа
(Data.color LIKE '%цвет%') ANS some = elseно тож не сработало, или такой формат для where для pdotools?не могу найти чтото документации по сортировке
видел гдето что можно поле color плагином перевести в текстовый формат,
если это сделать, сортировка заработает? например если через запятую вводить а потом лайками искать?
Комментарии: 11
                Если у товаров несколько цветов, то получится ерунда. А вообще, все JSON поля копируются в msProductOption.
Так что нужно просто присоединить этот класс и сортировать по нему:
                    Так что нужно просто присоединить этот класс и сортировать по нему:
[[!msProducts?
	&parents=`0`
	&leftJoin=`{
		"msProductOption":{
			"class":"msProductOption",
			"on":"msProductOption.key = 'color' AND msProductOption.product_id = msProduct.id"
		}
	}`
	&select=`{
		"msProduct":"*",
		"msProductOption":"value as color"
	}`
	&sortby=`msProductOption.value`
	&sortdir=`ASC`
	&tpl=`@INLINE <p>[[+pagetitle]] [[+color]]</p>`
	&showLog=`1`
]]Источник вдохновения — bezumkin.ru/training/course2/3006/            
                Приветствую,
спасибо — выдает результат, но я не правильно видимо сформулировал вопрос
я имел ввиду есть ли возможность сделать выборку по определенному цвету или цветам? с помощью where в приведенном коде не срабатывает, либо я не правильно пробую:
так?
тоесть по нескольким цветам нельзя будет выбирать?
                    спасибо — выдает результат, но я не правильно видимо сформулировал вопрос
я имел ввиду есть ли возможность сделать выборку по определенному цвету или цветам? с помощью where в приведенном коде не срабатывает, либо я не правильно пробую:
так?
&where=`{"Data.color":"название цвета"}`Если у товаров несколько цветов, то получится ерунда.
тоесть по нескольким цветам нельзя будет выбирать?
                что то подобное возможно реализовать из коробки?
                    &where=`{"Data.color:IN":["цвет 1","цвет 2"]}`или нужно дописывать?            
                Data — это автоматически присоединённая таблица msProductData, в которой цвета записаны JSON строкой. Из JSON ты ничего не выберешь, потому что для MySQL это просто строка.
Нужно выбирать из таблицы msProductData, и я уже показал тебе, как её присоединять. Даже ссылку дал на объяснение принципов работы.
Дальше давай сам.
                    Нужно выбирать из таблицы msProductData, и я уже показал тебе, как её присоединять. Даже ссылку дал на объяснение принципов работы.
Дальше давай сам.
                то есть из сниппета msProducts можно это сделать? без правок исходного кода?
я пытаюсь понять просто, можно из него сделать это или проще свой сниппет написать, потому что явные способы не срабатывают…
мало ли кто-то уже делал, зачем мне велосипед изобретать?)
                    я пытаюсь понять просто, можно из него сделать это или проще свой сниппет написать, потому что явные способы не срабатывают…
мало ли кто-то уже делал, зачем мне велосипед изобретать?)
                Естественно, можно. Я уже всё рассказал, осталось только сложить и подумать.
Или думать не хочется, хочется готовое решение?
                    Или думать не хочется, хочется готовое решение?
                окей)
если честно не хочется разбираться вот в этих сортировках с помощью json)
а прямой запрос можно как то прописать?
                    если честно не хочется разбираться вот в этих сортировках с помощью json)
а прямой запрос можно как то прописать?
                Ну не хочется, так не хочется.
Удачи!
                    Удачи!
                запрос
Василий, есть документация по этим json запросам где нибудь?
                    &where=`{"msProductOption.value":"цвет"}`работает, кому пригодится.Василий, есть документация по этим json запросам где нибудь?
                А вот эта ссылка тебя чем не устраивает? bezumkin.ru/training/course2/3006/
Есть еще вот такая
rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.where
                    Есть еще вот такая
rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.where
                Всех с прошедшими праздниками!
Привет, Василий.
подскажи, хочу выдавать в результат поиска только товары, например, по связям имеющих главную роль («master»). Но при этом, чтобы был поиск по «slave».
можно так сделать?
вот что пробую:
судя по всему у меня и гдето здесь есть ошибка, пытаюсь вывести хотя бы id главного товара — не выходит.
                    Привет, Василий.
подскажи, хочу выдавать в результат поиска только товары, например, по связям имеющих главную роль («master»). Но при этом, чтобы был поиск по «slave».
можно так сделать?
вот что пробую:
[[!msProducts:empty=`Ничего не найдено...`?
	&parents=`[[*id]]`
	&where=`[[!filterGenerate]]`
	
	&leftJoin=`{
		"msProductOption":{
			"class":"msProductOption",
			"on":"msProductOption.key = 'color' AND msProductOption.product_id = msProduct.id"
		}
	}
	`
	&rightJoin=`{
		"msProductLink":{
			"class":"msProductLink",
			"on":"msProductLink.slave = msProduct.id"
		}
		
	}`
	&select=`{
		"msProduct":"*",
		"msProductLink":"master as id",
		"msProductOption":"value as color",
		
	}`
	&link=`1`
	&groupby=`msProductLink.master`
	&sortby=`msProductOption.value`
	&sortdir=`ASC`
	&tpl=`tpl.msProducts.row`
	&showLog=`1`
]]немогу допереть, можно ли подставить, при групировке, в вывод товара, значения из продукта который является основным, тоесть master?судя по всему у меня и гдето здесь есть ошибка, пытаюсь вывести хотя бы id главного товара — не выходит.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.