Как организовать меню индивидуально для внутренних страниц категории?
Есть три категории:
1) Для физлиц
2) Для юрлиц
3) Фин организациям
Внутри каждой категории есть несколько вложенных страниц, 1/2/3 уровня
Необходимо сделать чтобы на всех внутренних страницах выводилось меню которое заполнено в ресурсе категории.
Например
1) Для физлиц
> карты (выводится меню для физлиц)
>>карта 1 (выводится меню для физлиц)
2) Для юрлиц
> карты (выводится меню для юрлиц)
>>карта 1(выводится меню для юрлиц)
и тд.
Думал сделать через tv следующим образом:
1) заполнить меню в Для физлиц а в дочерних проверять родителя на соответствие шаблону, например
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 уровня ну очень жестко, и очень много запросов к БД, может есть более лаконичное решение? Комментарии: 3
{$_modx->getParentIds($_modx->resource.id)}
Выводит массив родителей начиная с первого уровня, буду делать так
Если верно понял, то стоит посмотреть на параметры top и topLevel сниппета pdoField. С его помощью выбрать id корневого раздела и передать в pdoMenu в параметр parents
у меня меню реализовано через migx, поэтому вариант с гетпарентс наверно будет для меня удобнее
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.