pdoMenu вывод меню третьего уровня в выпадающем списке первого уровня

Доброго времени суток! Столкнулся с такой проблемой. Занимаюсь переносом сайта с MODX evo на MODX revo. И возникла проблема с переносом меню. Дерево ресурсов имеет примерно следующий вид:
  • Главная
  • Товары
    • Категория1
      • Товар1
      • Товар2
    • Категория2
      • Товар3
      • Товар4
  • О компании
  • Контакты
Но главное меню должно иметь такой вид:
  • Главная
  • Товары
    • Товар1
    • Товар2
    • Товар3
    • Товар4
  • О компании
  • Контакты
Перепробовал разные варианты уже, но они все не работают.
Если выводить меню таким образом
[[!pdoMenu?
&parents=`0`
&level=`3`
]]
Выводится полностью всё древо ресурсов.
Если исключить родительские ресурсы (Категории), то и товары из меню тоже пропадают.
Если Категории скрыть из меню, то товары также скрываются.
Категории имеют отдельный шаблон, и если добавить параметр &templates=`-6`, то товары из категорий выстраиваются в отдельное дополнительное меню первого уровня, а не в выпадающий список. И в итоге получается 3(!) меню первого уровня: основное, с товарами из первой категории и товарами из второй категории.
Скрыть категории из меню и вставить ссылки на товары тоже не могу. Во-первых, в таком случае ломается другое меню, которое находится на внутренних страницах. Во-вторых, меню уже получается не динамическим, т.е. если добавить новый товар, оно в меню не появится.
Может кто-то знает, как решить этот вопрос или сталкивался уже с подобной задачей?
Дмитрий Бородин
02 марта 2022, 23:32
modx.pro
865
0

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

Артур Шевченко
03 марта 2022, 23:05
0
Я как любитель простых решений, предлагаю выводить меню только первого уровня, при этом в чанке &tpl проверять id, и если он равен id Товары, то выводить товары сниппетом pdoResources.
    Дмитрий Бородин
    04 марта 2022, 04:41
    0
    Интересное решение, конечно, только я пока не совсем понимаю… Проверка id страницы выведет результат, в зависимости от того, на какой странице я нахожусь. Разве нет? А главное меню должно на всех страницах быть одинаковым.
      Артур Шевченко
      04 марта 2022, 14:07
      0
      А я не говорил про id страницы, у каждого пункта меню, т.к. это ресурс, есть id и при выводе меню вы проверяете равен ли id текущего пункта например 2, где 2 это id ресурса Товары, если равен, то вызываете pdoResources/pdoMenu/
    Александр Мельник
    04 марта 2022, 08:20
    +1
    Я любитель еще более простых решений) Зачем вам статичные пункты меню, такие как — о компании, контакты, формировать динамически через pdoMenu. Оставьте их в html и пропишите руками ссылки. А для формирования подменю с товарами используйте уже pdoMenu или pdoResources или msProducts и настройте их так чтобы отбирались только товары.
      Артур Шевченко
      04 марта 2022, 14:10
      0
      ну так-то да, но есть один нюанс, если заказчик, а так бывает, захочет добавить ещё раздел на первом уровне или переименовать существующий, статически выведенное меню нужно будет менять вручную, поэтому я бы так не делал, просто из-за лени)))
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5