Как сделать вывод подменю только у одного пункта меню?

В MODX для вывода подменю только у одного пункта меню можно использовать условные теги в шаблоне или сниппете меню.

Предположим, у вас есть меню с помощью чанка или через сниппет pdoMenu. Для вывода подменю только у одного пункта меню, вам необходимо пройти циклом по пунктам меню и проверить, является ли текущий пункт активным и/или имеет подменю.

Вот пример реализации этой логики с использованием сниппета pdoMenu:

[[pdoMenu?
  &parents=`0`
  &level=`2`
  &tpl=`MainMenuTpl`
  &activeClass=`active`
  &hereClass=`active`
  &currentClass=`active`
  &levelClass=`dropdown-menu`
  &subRowTpl=`SubMenuTpl`
  &subClass=`dropdown`
]]

где:

- &parents указывает, на каком уровне меню начать вывод;
- &level определяет глубину меню, включая уровни подменю;
- &tpl задает шаблон для основного пункта меню;
- &activeClass, &hereClass, &currentClass устанавливают классы активного пункта меню;
- &levelClass задает класс для уровня подменю;
- &subRowTpl указывает шаблон для пункта подменю;
- &subClass устанавливает класс для подменю.

Теперь для вывода подменю только у одного пункта меню, вы можете изменить ваш шаблон SubMenuTpl, чтобы он выводил подменю только для определенного пункта меню с помощью условия.

Вот пример изменения шаблона SubMenuTpl:

[[+class:is=`active`:then=`
  <ul class="submenu">
    [[+subMenu]]
  </ul>
`:else=``]]

В этом примере, если пункт меню является активным (то есть текущей страницей) или имеет подменю, то будет выводиться соответствующий ul и содержимое подменю ([[+subMenu]]). В противном случае, ничего не будет выводиться.

Не забудьте также добавить CSS стили, чтобы задать внешний вид подменю.