Вывод по 5 товаров в каждой категории

Хочу реализовать на главной страницы вывод всех категорий, с возможностью показать под каждой из них 5 товаров.
Возможно, уже кто-то реализовывал.

Пример:
Категория 1
-товар
-товар
-товар
-товар
-товар
Категория 2
-товар
-товар
-товар
-товар
-товар
Категория 3
-товар
-товар
-товар
-товар
-товар
Пробовал сначала получить все категории, а потом уже вставить в чанк, еще один снипет:
[[pdoResources?
      &parents=`0`
      &where=`{"class_key":"msCategory"}`
      &tpl=`tpl.category.list`
]]
[[msProducts?
        &parents=`[[+id]]`
        &limit=`5`
  ]]
Но все вешает базу данных.
Так же хотел вызвать подобным запросом, но запрос очень тормозной получается, плюс не понятно, как к нему присоединить категории:
select t1.* from modx_site_content t1 join (select parent, substring_index(group_concat(id order by id ASC), ',', 5) x 
from modx_site_content t2 WHERE t2.class_key = 'msProduct' group by parent) t on t.parent = t1.parent and find_in_set(t1.id,x) ORDER BY parent ASC
Роман
06 мая 2021, 16:46
modx.pro
542
0
Поблагодарить автора Отправить деньги

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

Наумов Алексей
06 мая 2021, 16:50
0
Да все правильно, сначала вызываем pdoResources, чтобы вывести категории. В parents указываем id корневого раздела, depth = 0.
А внутри в чанке вызываем msProducts, parents = $id, depth уже в зависимости от вашего сайта… наверное тоже 0.
    Александр Мельник
    10 мая 2021, 14:21
    0
    вам не нужно вызывать pdoResources а ниже msProducts.
    Вам нужно вызвать msProducts в чанке tpl.category.list
      Роман
      10 мая 2021, 17:59
      +1
      Это и так понятно. Просто думал оптимизировать как-то это одним запросом. А так 400 запросов к базе, при долгом кол-ве категорий. ))) только пока кэш выручает.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3