Как вывести дочерние ресурсы вместе с их родителем через pdoMenu?

Всем привет, пытаюсь вывести меню из определенного родителя, однако, выводится только его ресурсы, а родителя нет.
{'pdoMenu' | snippet : [
        'parents' => '15',
        'resources' => '',
        'level' => 0,
        'firstClass' => '',
        'lastClass' => '',
        'hereClass' => 'news-filter__active',
        'showHidden' => '1',
        'outerClass' => 'news-filter row',
        'rowClass' => 'news-filter__item',
        'tpl' => '@INLINE <li{$classes}><a href="{$link}" class="news-filter__text" {$attributes}>{$menutitle}</a></li>'
]}
Выводится только:
— Дочка
— Дочка
— Дочка
— Дочка

А мне надо:
— Родитель
— Дочка
— Дочка
— Дочка
— Дочка
Александр Янк
16 января 2018, 08:14
modx.pro
1
2 238
0

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

Евгений Webinmd
16 января 2018, 11:18
+1
'displayStart' => 1
    Александр Янк
    16 января 2018, 11:22
    0
    Тогда выведется вот такой HTML код:
    <ul class="news-filter row">
    <h2 class="news-filter__item news-filter__active">Все новости</h2>
    <ul class="">
    <li class="news-filter__item"><a href="all-news/goszakupki/" class="news-filter__text">Госзакупки</a></li>
    <li class="news-filter__item"><a href="all-news/samoregulirovanie/" class="news-filter__text">Саморегулирование</a></li>
    <li class="news-filter__item"><a href="all-news/stroitelnaya-otrasl/" class="news-filter__text">Строительная отрасль</a></li>
    <li class="news-filter__item"><a href="all-news/novosti-kompanii/" class="news-filter__text">Новости компании</a></li>
    </ul>
    </ul>
    а в добавок всегда подсвечивается активный пункт у родителя…
      Евгений Webinmd
      16 января 2018, 11:25
      0
      ну по логике вы же находитесь внутри родителя, поэтому он и активный, в документации есть tpl для этого пункта — tplStart
    Александр Янк
    16 января 2018, 12:40
    0
    Пока нашел только такое решение:

    <ul class="news-filter row">
          {'pdoMenu' | snippet : [
            'parents' => '15',
            'displayStart' => 1,
            'resources' => '',
            'level' => 0,
            'firstClass' => '',
            'lastClass' => '',
            'hereClass' => 'news-filter__active',
            'showHidden' => '1',
            'outerClass' => '',
            'rowClass' => 'news-filter__item',
            'tplOuter' => '@INLINE {$wrapper}',
            'tplStart' => '@INLINE {$wrapper} <li{$classes}><a href="{$link}" class="news-filter__link">{$menutitle}</a></li>',
            'tpl' => '@INLINE <li{$classes}><a href="{$link}" class="news-filter__link" {$attributes}>{$menutitle}</a></li>'
          ]}
        </ul>
    Что я сделал:

    1. Настроил правильный вывод HTML.

    2. Поместил пункт родителя в конце списка!

    <ul>
        <li>— Дочка</li>
        <li>— Дочка</li>
        <li>— Дочка</li>
        <li>— Дочка</li>
        <li class="active">— Родитель</li>
    </ul>
    3. Далее ul задал стили:
    ul {
      display: flex;
      flex-wrap: wrap-reverse;
      flex-direction: row-reverse;
      justify-content: flex-end;
    
      padding-left: 0;
      margin-bottom: 0;
      list-style: none;
    }
    Вся идея в первой половине, с помощью flexbox я задал направление пунктам меню.

    4. Стили для активных пунктов меню:
    .active {
      // стили для активного пункта
    }
    
    .active  ~ .active {
        //перестиливаем стили активного меню
    }
    В активном пункте говорится, что все элементы после него, с активным классом будут перестилены.

    Вот так вот, товарищи, бэкэнд + css = профит :)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4