Как сформировать меню pdoMenu из всех контекстов?

Всем привет. Может кто-нибудь подсказать как блоку вывода меню с определённым контекстом вывести название контекста? Сейчас меню выгружено полностью таким образом:

{'!pdoMenu' | snippet : [
                'parents' => 0,
                'startId' => 0,
                'context' => 'web,store,bezbflava,b1,sb1'
                'tplOuter' => '@INLINE <ul {$classes} data-scrollable="true"><li class="nav-item nav-header">{$context}</li> {$wrapper}</ul>',
                'outerClass' => 'navbar-nav',
                'tpl' => '@INLINE <li class="nav-item"><a href="{$link}" {$classes} {$attributes}><i class="la {$link_attributes}"></i><span>{$menutitle}</span></a>{$wrapper}</li>',
                'rowClass' => 'nav-link',
                'level' => 2
            ]}

Нужно чтобы оно приняло такой вид:

<ul class="navbar-nav" data-scrollable="true">
                <li class="nav-item nav-header">Context 1</li>
                <li class="nav-item"><a href="/" class="nav-link active"><i class="la la-home"></i><span>Пункт меню (context 1)</span></a></li>
                <li class="nav-item"><a href="{$_modx->makeUrl(12)}" class="nav-link"><i class="la la-diamond"></i><span>Пункт меню (context 1)</span></a></li>
                <li class="nav-item"><a href="{$_modx->makeUrl(14)}" class="nav-link"><i class="la la-music"></i><span>Пункт меню (context 1)</span></a></li>
                <li class="nav-item"><a href="artists.html" class="nav-link"><i class="la la-microphone"></i><span>Пункт меню (context 1)</span></a></li>
                <li class="nav-item"><a href="stations.html" class="nav-link"><i class="la la-bullseye"></i><span>Пункт меню (context 1)</span></a></li>
                <li class="nav-item nav-header">Context 2</li>
                <li class="nav-item"><a href="analytics.html" class="nav-link"><i class="la la-bar-chart"></i><span>Пункт меню (context 2)</span></a></li>
                <li class="nav-item"><a href="favorites.html" class="nav-link"><i class="la la-heart-o"></i><span>Пункт меню (context 2)</span></a></li>
                <li class="nav-item"><a href="history.html" class="nav-link"><i class="la la-history"></i><span>Пункт меню (context 2)</span></a></li>
                <li class="nav-item nav-header">Context 3</li>
                <li class="nav-item"><a href="events.html" class="nav-link"><i class="la la-calendar"></i><span>Пункт меню (context 3)</span></a></li>
                <li class="nav-item"><a href="event-details.html" class="nav-link"><i class="la la-newspaper-o"></i><span>Пункт меню (context 3)</span></a></li>
                <li class="nav-item"><a href="add-event.html" class="nav-link"><i class="la la-pencil-square-o"></i><span>Пункт меню (context 3)</span></a></li>
                <li class="nav-item nav-header">Context 4</li>
                <li class="nav-item"><a href="error.html" class="nav-link load-page"><i class="la la-times-circle-o"></i><span>Пункт меню (context 4)</span></a></li>
                <li class="nav-item"><a href="blank.html" class="nav-link"><i class="la la-file"></i><span>Пункт меню (context 4)</span></a>
                </li>
            </ul>
SEQUEL.ONE
03 июня 2020, 12:05
modx.pro
377
0

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

Наумов Алексей
03 июня 2020, 13:44
0
Вызвать 5 раз pdoMenu
    SEQUEL.ONE
    03 июня 2020, 13:51
    +1
    Зачем? Я решил уже:

    {'!pdoMenu' | snippet : [
                    'parents' => '30,31,33,34,35',
                    'displayStart' => 1,
                    'context' => 'web,store,bezbflava,b1,sb1',
                    'tplOuter' => '@INLINE <ul {$classes} data-scrollable="true">{$wrapper}</ul>',
                    'outerClass' => 'navbar-nav',
                    'tpl' => '@INLINE <li class="nav-item"><a href="{$link}" {$classes} {$attributes}><i class="la {$link_attributes}"></i><span>{$menutitle}</span></a>{$wrapper}</li>',
                    'rowClass' => '{if $_modx->context.key != $_modx->resource.context}noajax{/if} nav-link',
                    'tplStart' => '@INLINE <li class="nav-item nav-header">{$menutitle}</li>{$wrapper}',
                    'level' => 2,
                    'where' => [
                        'class_key:!=' => 'msProduct'
                    ]
                ]}
    Нужно добавить параметры:

    'displayStart' => 1
    и

    'tplStart' => '@INLINE <li class="nav-item nav-header">{$menutitle}</li>{$wrapper}',
    а в параметр parents вставить id's созданных документов и все пункты меню перетащить в эти разделы:

    'parents' => '30,31,33,34,35',
    Ну и на последок включить системную настройку:

    use_frozen_parent_uris
    а после у всех вложенных ресурсов второго уровня «Заморозить URI». Profit =)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2