Как организовать меню индивидуально для внутренних страниц категории?

Есть три категории:
1) Для физлиц
2) Для юрлиц
3) Фин организациям

Внутри каждой категории есть несколько вложенных страниц, 1/2/3 уровня

Необходимо сделать чтобы на всех внутренних страницах выводилось меню которое заполнено в ресурсе категории.


Например
1) Для физлиц
> карты (выводится меню для физлиц)
>>карта 1 (выводится меню для физлиц)
2) Для юрлиц
> карты (выводится меню для юрлиц)
>>карта 1(выводится меню для юрлиц)

и тд.

Думал сделать через tv следующим образом:
1) заполнить меню в Для физлиц а в дочерних проверять родителя на соответствие шаблону, например
{if $_modx->resource.parent | resource : 'template' == 1}
{set $menu = $_modx->resource.parent | resource : 'menu'}
{elseif $_modx->resource.parent | resource : parent | resource : 'template' == 1}
{set $menu = $_modx->resource.parent | resource : parent | resource : 'menu'}
{/if}
и так далее, но мне кажется это не совсем правильное решение, поскольку страниц вложенных может и 10 быть и тогда делать такую проверку для 10 уровня ну очень жестко, и очень много запросов к БД, может есть более лаконичное решение?
Вячеслав Варов
08 февраля 2024, 09:28
modx.pro
191
0

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

Вячеслав Варов
08 февраля 2024, 09:38
0
{$_modx->getParentIds($_modx->resource.id)}
Выводит массив родителей начиная с первого уровня, буду делать так
    Наумов Алексей
    08 февраля 2024, 10:49
    0
    Если верно понял, то стоит посмотреть на параметры top и topLevel сниппета pdoField. С его помощью выбрать id корневого раздела и передать в pdoMenu в параметр parents
      Вячеслав Варов
      08 февраля 2024, 11:10
      0
      у меня меню реализовано через migx, поэтому вариант с гетпарентс наверно будет для меня удобнее
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3