Подскажите с выводом категорий

Здравствуйте.

Помогите разобраться. Нужно вывести категории товаров MS2.
примерно так:
Категория (1)
	Подкатегория
		Товар
		Товар
		Товар
	Подкатегория
		Товар
		Товар
		Товар
Для наглядности привожу пример


На нем то что нужно, а именно категория под ней пошли товары, потом опять категория и товары.
Может у кого то был опыт вывода товаров в таком виде.
Пробовать выводить сниппетом msProduct но он выводит только товары. Думал получится с помощью pdoResources но не нашел как изменить шаблон родителей (подкатегорий)

Очень нужна помощь(

Живой пример www.dns-shop.ru/catalog/88/korpusa/
Максим
01 октября 2014, 17:02
modx.pro
5
9 039
0

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

Василий Наумкин
02 октября 2014, 07:05
0
Тут несколько вариантов:
1. Вызов pdoResources по категориям, а в чанке вызов msProducts для категории.
2. Вызов pdoMenu с leftJoin свойств товара msProductData.
3. Свой сниппет
    Максим
    02 октября 2014, 07:50
    0
    Спасибо за ответ. Василий скажите нет ли у вас времени написать такой сниппет)? благодарность 2 000 руб
      Василий Наумкин
      02 октября 2014, 08:02
      0
      К сожалению, сейчас времени нет.
        Максим
        02 октября 2014, 08:10
        0
        очень жаль. вы бы не могли дать подсказку как с помощью pdoMenu и leftJoin вывести свойства товара?
    Sergey Leleko
    02 октября 2014, 12:44
    0
    Присоединяюсь к вопросу! Мне тоже надо аналогичным образом вывести товары ) Готов как-то объединить усилия!
      Илья Уткин
      02 октября 2014, 12:59
      0
      [[pdoResources?
        &parents=`0`
        &where=`{"class_key":"msCategory"}`
        &tpl=`tpl.category.list`
      ]]

      Чанк tpl.category.list

      <h3>[[+pagetitle]]</h3>
      [[msProducts? &parents=`[[+id]]`]]
        Максим
        02 октября 2014, 13:08
        0
        Спасибо за ответ, скажите а если категорий будет много и количество вызовов msProducts будет постоянно повторяться это не скажется на скорости?
        Евгений
        09 июня 2025, 16:11
        0
        Спасибо, Илья, способ рабочий, пытаюсь его прикрутить к немного усложненной задаче: надо вывести все товары одного производителя и разбить их по категориям. Пока дошел до такого:
        На странице вызываю
        [[pdoResources?
          &parents=`2`
          &where=`{"class_key":"msCategory"}`
          &tpl=`tpl.category.list`
          &limit=`0`
        ]]
        В чанке tpl.category.list вызов с фильтрацией по нужному производителю
        <h3>[[+pagetitle]]</h3>
        [[!msProducts?
        &includeContent=`1`
        &tpl=`tpl.msProducts.row`
        &parents=`[[+id]]`
        &where=`{ "Vendor.id:=":3 }`
        &sortby=`Data.price`
        &sortdir=`DESC`
        &limit=`0`
        ]]
        В итоге выводится куча категорий без товаров и некоторые категории где товары есть. А вот как сначала получить все товары нужного производителя (с этим проблем нет), и уже по ним получить список родителей (категории) и выводить только те категории, где есть товары и сами товары пока понять не могу.
        Sergey Leleko
        09 октября 2014, 21:51
        0
        Я немного дописал у себя:

        [[pdoResources?
          &parents=`[[pdoField? &id=`[[*id]]` &field=`id` &topLevel=`[~id~]`]]`
          &where=`{"class_key":"msCategory"}`
          &tpl=`tpl.category.list`
        ]]
        Такой код позволит настроить вывод дочерних подкатегорий с товарами в них в зависимости от клика по главной категории… Как-то так.
          Игорь Терентьев
          04 октября 2018, 12:28
          2
          0
          Вот так можно присоединить msProductData к pdoMenu и выбрать необходимые поля:

          {'pdoMenu' | snippet : [
              'parents' => $_modx->resource.id,
              'select' => [
                  'modResource' => '*',
                  'Data' => 'price,old_price,article',
              ],
              'leftJoin' => [
                  'Data' => [
                      'class' => 'msProductData',
                      'alias' => 'Data',
                      'on' => 'Data.id = modResource.id',
                  ],
              ],
          ]}
            Trying
            18 июня 2019, 12:29
            0
            Добрый день,

            А как в этом pdoMenu коде подключить и вывести также и msProductOptions, то есть те опции которые мы можем создавать сами?

            А также c msProductData работает только [[+thumb]] и [[+image]], в msProducts работало и {$file['medium']} в Media Sources оформлены так:
            {
            «small»:{«w»:200,«h»:130,«q»:100,«zc»:«1»,«bg»:«ffffff»},
            «medium»:{«w»:400,«h»:260,«q»:100,«zc»:«1»,«bg»:«ffffff»},
            «big»:{«w»:600,«h»:390,«q»:100,«zc»:«1»,«bg»:«ffffff»}
            }

            Тут возможно подключить?

            Спасибо!
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          13