Как вывести дочерние ресурсы вместе с их родителем через 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>'
]}
Выводится только:— Дочка
— Дочка
— Дочка
— Дочка
А мне надо:
— Родитель
— Дочка
— Дочка
— Дочка
— Дочка
Комментарии: 4
'displayStart' => 1
Тогда выведется вот такой 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>
а в добавок всегда подсвечивается активный пункт у родителя…
ну по логике вы же находитесь внутри родителя, поэтому он и активный, в документации есть tpl для этого пункта — tplStart
Пока нашел только такое решение:
1. Настроил правильный вывод HTML.
2. Поместил пункт родителя в конце списка!
4. Стили для активных пунктов меню:
Вот так вот, товарищи, бэкэнд + css = профит :)
<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 = профит :)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.