Не могу разобраться с countChildren в pdomenu
Вызываю pdoMenu так:
Категория
— подкатегория (8 шт.)
Но при выставленном &countChildren=`1` для подкатегорий применяется &tplParentRow, а не &tplInnerRow, если поставить &countChildren=`0` — то все ок, кроме подсчета товаров.
Я может как-то не так использую параметры шаблонов, но прям не могу ничего придумать, как сделать, что бы заработало.
[[pdoMenu?
&parents=`3`
&level=`2`
&tplInner=`@INLINE <ul class="dropdown-menu"> [[+wrapper]]</ul>`
&tplOuter=`@INLINE <ul class="nav navbar-nav">[[+wrapper]]</ul>`
&tplParentRow=`@INLINE <li[[+classes]]><a class="dropdown-toggle" data-toggle="dropdown" href="[[+link]]" [[+attributes]]>[[+menutitle]]<span></span></a>[[+wrapper]]</li>`
&tplInnerRow=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]] <span>([[+children]] шт.)</span></a>[[+wrapper]]</li>`
&countChildren=`1`
&hereClass=`active open`
]]
Суть проблемы вот в чем — у меня двух двухуровневое меню в котором первый уровень — дропдаун меню, которое при клике не переходит, а разворачивает подкатегории. В которых и должен происходить подсчет внутренних документов типа:Категория
— подкатегория (8 шт.)
Но при выставленном &countChildren=`1` для подкатегорий применяется &tplParentRow, а не &tplInnerRow, если поставить &countChildren=`0` — то все ок, кроме подсчета товаров.
Я может как-то не так использую параметры шаблонов, но прям не могу ничего придумать, как сделать, что бы заработало.
Комментарии: 9
этот баг можно повторить и в текущей версии (2.9.0)
А почему вы решили что это баг? Вроде логичное поведение…
ок, описываю ситуацию:
есть меню в каталоге, у части разделов есть подкатегории. У всех есть товары.
— Категория 1
— Категория 2
— подкатегория 1
— подкатегория 2
— Категория 3
и у всех необходимо считать дочерние ресурсы.
Выставляем параметр и тогда для всех пунктов (1 и 2 уровня) параметр parentClass срабатывает.
Казалось бы логично, мы же считаем для всех подпункты, но на практике parentClass необходим только для Категория 2.
И тут уже не понятно, баг это или фича.
есть меню в каталоге, у части разделов есть подкатегории. У всех есть товары.
— Категория 1
— Категория 2
— подкатегория 1
— подкатегория 2
— Категория 3
и у всех необходимо считать дочерние ресурсы.
Выставляем параметр и тогда для всех пунктов (1 и 2 уровня) параметр parentClass срабатывает.
Казалось бы логично, мы же считаем для всех подпункты, но на практике parentClass необходим только для Категория 2.
И тут уже не понятно, баг это или фича.
У категории 1, как и у категории 2, имеются дочерние ресурсы.
Соответственно они являются папками (контейнерами, родителями).
Разница только в том что у категории 2 эти ресурсы имеют тип «категория», а у категории 1 — «товар».
Не может быть так, чтобы у категории 1 имелось 20 ресурсов (товаров) внутри, но она бы не являлась при это родителем (контейнером)!
Соответственно они являются папками (контейнерами, родителями).
Разница только в том что у категории 2 эти ресурсы имеют тип «категория», а у категории 1 — «товар».
Не может быть так, чтобы у категории 1 имелось 20 ресурсов (товаров) внутри, но она бы не являлась при это родителем (контейнером)!
ок, я это прекрасно понимаю и вот только что это увидел, но если не использовать параметр &countChildren, то категория с подкатегориями это родитель, а категория с товарами это не родитель ))) и тогда можно parentClass использовать без проблем.
Ну так логично же, если ты отображаешь количество товаров внутри — значит это категория! раз у нее внутри определенное количество товаров!
То же самое, если ты выведешь меню с level = 1, то пункты меню не будут категориями, но если level = 2, то эти же пункты уже будут категориями (если внутри них есть товары или другие ресурсы)
П.С. Либо я туплю, либо не понимаю что ты хочешь.
То же самое, если ты выведешь меню с level = 1, то пункты меню не будут категориями, но если level = 2, то эти же пункты уже будут категориями (если внутри них есть товары или другие ресурсы)
П.С. Либо я туплю, либо не понимаю что ты хочешь.
не хочу тратить ничье время впустую, но наверное лучше разобраться до конца.
Вызов меню
Если убрать параметр countChildren (не меняя другие параметры)
то parent остаётся только у категорий с подкатегориями.
Может так и задумано, но мне кажется что countChildren не должен влиять на parentClass.
Вызов меню
{$_modx->runSnippet('!pdoMenu', [
'parents' => 5,
'level' => 2,
'templates' => '4',
'outerClass' => 'side-menu',
'countChildren' => 1,
'parentClass' => 'parent'
])}
При таком вызове класс parent будет у всех категорий.Если убрать параметр countChildren (не меняя другие параметры)
то parent остаётся только у категорий с подкатегориями.
Может так и задумано, но мне кажется что countChildren не должен влиять на parentClass.
Как это не должен?
Еще влияет на это и:
Тоже самое и с параметром:
и с
Не знаю, может меня логика подводит…
Еще влияет на это и:
'templates' => '4'
Убери этот параметр и у категорий, у которых ранее не было класса «parent», этот класс появится, т.к. внутри появятся пункты с товарами!Тоже самое и с параметром:
'level' => 2,
Когда level = 1 класса «parent» нет, когда 2 и более, то у тех же пунктов уже добавляется «parent».и с
'countChildren' => 1,
по аналогииНе знаю, может меня логика подводит…
ты считаешь что должен влиять, я считаю что не должен.
Ну не понимаю я почему подсчет дочерних должен влиять на parentClass.
Как бы технически то я понимаю почему, а вот практически не очень.
В общем предлагаю тему закрыть.
Тут скорей всего от задач зависит. Мне было бы удобно чтобы не влияло, кому-то наоборот.
Но судя по посту не у одного меня возникает эта путаница.
Благодарю за дискуссию
Ну не понимаю я почему подсчет дочерних должен влиять на parentClass.
Как бы технически то я понимаю почему, а вот практически не очень.
В общем предлагаю тему закрыть.
Тут скорей всего от задач зависит. Мне было бы удобно чтобы не влияло, кому-то наоборот.
Но судя по посту не у одного меня возникает эта путаница.
Благодарю за дискуссию
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.