К содержанию

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

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

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


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

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

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

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

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

      Чанк tpl.category.list

      <h3>[[+pagetitle]]</h3>
      [[msProducts? &parents=`[[+id]]`]]
        Максим
        Максим Старожил
        02 октября 2014, 13:08
        Спасибо за ответ, скажите а если категорий будет много и количество вызовов msProducts будет постоянно повторяться это не скажется на скорости?
          Илья Уткин
          Илья Уткин Администратор
          02 октября 2014, 13:28
          Да, скажется, конечно
          Евгений
          Евгений Старожил
          09 июня 2025, 16:11
          Спасибо, Илья, способ рабочий, пытаюсь его прикрутить к немного усложненной задаче: надо вывести все товары одного производителя и разбить их по категориям. Пока дошел до такого:
          На странице вызываю
          [[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
          Sergey Leleko Проверенный
          09 октября 2014, 21:51
          Я немного дописал у себя:

          [[pdoResources?
            &parents=`[[pdoField? &id=`[[*id]]` &field=`id` &topLevel=`[~id~]`]]`
            &where=`{"class_key":"msCategory"}`
            &tpl=`tpl.category.list`
          ]]
          Такой код позволит настроить вывод дочерних подкатегорий с товарами в них в зависимости от клика по главной категории… Как-то так.
            Игорь Терентьев
            Игорь Терентьев Проверенный
            04 октября 2018, 12:28
            Вот так можно присоединить 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
              Trying Старожил
              18 июня 2019, 12:29
              Добрый день,

              А как в этом 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