Замена Wayfinder на pdoMenu
Привет!
Прошу прощения за нубство, но не понял, как заменить такую конструкцию от Wayfinder и UltimateParent на подобную от pdoMenu и pdoField:
Заменил на такую конструкцию, но результат не тот:
Это работает, но с UltimateParent
Что я делаю не так?
Прошу прощения за нубство, но не понял, как заменить такую конструкцию от Wayfinder и UltimateParent на подобную от pdoMenu и pdoField:
[[+wf.docid:is=`[[UltimateParent? &id=`[[+wf.docid]]`]]`:then=`topLevel`:else=`subLevel`]]Заменил на такую конструкцию, но результат не тот:
[[+id:is=`[[pdoField? &id=`[[+id]]`]]`:then=`topLevel`:else=`subLevel`]]Это работает, но с UltimateParent
[[+id:is=`[[UltimateParent? &id=`[[+id]]`]]`:then=`topLevel`:else=`subLevel`]]Что я делаю не так?
Комментарии: 7
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Конструкция
выдает просто ID текущего ресурса.
Как я понимаю, логика такая: «если ID открытого ресурса такой же как у пункта меню, то вывести topLevel, иначе subLevel»?
Если так, то вообще не надо огород городить:
Или я не понял задачу?
Можно, например, использовать атрибуты ссылки документов, дописав в элементы верхнего уровня «topLevel», а в вызове pdoMenu проверять уже его наличие.
Или же решить задачу вообще методами css:
?
Вы можете замерить разницу, используя следующие плейсхолдеры где-нибудь в шаблоне:
Также есть дополнение debugParser, выполняющий схожий функционал (но более развернутый).
Вот его вывод:
и чанк navbar.pt.row
Эта конструкция работает. В ней проверяется, не верхний ли это уровень меню. Если да, подставляется класс dropdown и , если нет, класс: dropdown dropdown-submenu. Собственно, ничего вроде бы сложного.
В документацию pdoMenu вникнуть сложно, параметр tplParentRow перекрывает всё. Как использовать параметры (и какие) для внутренних контейнеров с потомками, не нашёл. Параметр tplCategoryFolder вообще что-то неизведанное, не цепляется никоим образом. Да и всё равно проверку ставить для классов: dropdown или dropdown dropdown-submenu.
Может кто что-нибудь подскажет?
Хочется все инструменты из одной коробки.