MS2: Как вывести список всех значений свойства?

Подскажите плз как получить список всех значений определённого свойства товара (например, все размеры или все цвета) в рамках заданного родителя и исключая дублирование?
Юрий Эффа
08 декабря 2013, 18:11
modx.pro
1 315
0

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

Василий Наумкин
08 декабря 2013, 22:35
0
1. Получить все товары категории
2. Получить все свойства товаров
3. Исключить дубликаты
    Юрий Эффа
    09 декабря 2013, 11:53
    0
    Логично) Я надеялся, что у кого-нибудь есть готовое решение, т.к. необходимость такого фукнционала (вроде как) очевидна…
      Василий Наумкин
      09 декабря 2013, 12:11
      0
      Если этого функционала нет — значит он не необходим. Ло-ги-ка.

      Напиши свой вариант и предложи общественности, так работает Open Source.
    Юрий Эффа
    12 декабря 2013, 00:32
    0
    Используя стандартные сниппеты, получилось сделать так:
    [[!msProducts?
    	&tpl=`tpl.option.list`
    	&hideContainers=`1`
    	&toPlaceholder=`optns`
    ]]
    [[!msUniqOptions? &input=`[[+optns]]`]]
     
    чанк tpl.option.list
    [[!msOptions?
    &product=`[[+id]]`
    &name=`size`
    &tplOuter=`@INLINE [[+rows]]`
    &tplRow=`@INLINE [[+value]]`
    ]]
     
    сниппет msUniqOptions
    $wospc = str_replace(array("\r\n", "\r", "\n", ","), '-', $input);
    $array = array_filter(explode('-', $wospc)); 
    $uniq  = array_unique($array);
    $output = '';
    foreach ( $uniq as $value ) { $output = $output.$value; }
    return $output;
     
    Я так понимаю, что вариант тормозной… Как бы первую часть сделать на php и не перегонять массив в строку и обратно)
      Василий Наумкин
      12 декабря 2013, 08:07
      0
      Ты недооцениваешь мощь msProducts
      [[!msProducts?
      	&parents=`3`
      	&innerJoin=`{
      		"msProductOption":{"alias":"msProductOption","on":"msProductOption.product_id = msProduct.id"}
      	}`
      	&select=`{"msProductOption":"value"}`
      	&where=`{"msProductOption.key":"size"}`
      	&groupby=`msProductOption.value`
      	&tpl=`@INLINE <p>[[+value]]</p>`
      	&showLog=`1`	
      ]]
        Юрий Эффа
        14 декабря 2013, 13:42
        0
        Круто! Василий, благодарю!
      Юрий Эффа
      14 декабря 2013, 15:05
      0
      Василий, курю сайт, но не нахожу… есть ли возможность в msProduct фильтрации по конкретному цвету, и каким образом при этом должен выглядеть параметр where (Что-то типа &where=`{«size»:«XXL»}`)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8