Корректная работа Wayfinder
Доброго времени суток уважаемые товарищи. Нужна Ваша помощь в понимании синепта Wayfinder…
Ситуация следующая:
На странице у меня этот синепт вызываетcя более 4х раз, в одном единственном случае мне нужно выводить под категории (только на активном пункте).
В итоге что я имею, если во всех 4х разах вызова добавить hideSubMenus=`1`, то все пункты пропадут… А останутся ТОЛЬКО в том контейнере, где находится та страница, на которой мы находимся.
Тоесть Структура такова
Меню (2) (без шаблона)
— Главная (1) (шаблон «Главная страница»)
— Контакты (3) (шаблон «Страницы»)
Каталог (7) (шаблон «Категория»)
— Категория1 (8) (шаблон «Категория»)
— Категория2 (9) (шаблон «Категория»)
У Главной шаблон «Главная страница»
У остальных «Страницы» или «Категория»
Редактируя шаблон «Главная страница», я добавляю несколько вызовов
[[Wayfinder? &startId=`2` &hideSubMenus=`1` &outerClass=`navleft`]]
В этом случае Пункты отображаются. Я в это время нахожусь на странице с айди 1. Если же я меняю
[[Wayfinder? &startId=`7` &hideSubMenus=`1` &outerClass=`navleft`]]
Сам при этом находясь на странице с айди 1, то пунктов нету…
Ну и конечно убрав &hideSubMenus=`1` — все заработает, но это плохая идея, тогда все подкатегории сразу же лепятся…
Помогите пожалуйста понять, что я делаю не так…
Ситуация следующая:
На странице у меня этот синепт вызываетcя более 4х раз, в одном единственном случае мне нужно выводить под категории (только на активном пункте).
В итоге что я имею, если во всех 4х разах вызова добавить hideSubMenus=`1`, то все пункты пропадут… А останутся ТОЛЬКО в том контейнере, где находится та страница, на которой мы находимся.
Тоесть Структура такова
Меню (2) (без шаблона)
— Главная (1) (шаблон «Главная страница»)
— Контакты (3) (шаблон «Страницы»)
Каталог (7) (шаблон «Категория»)
— Категория1 (8) (шаблон «Категория»)
— Категория2 (9) (шаблон «Категория»)
У Главной шаблон «Главная страница»
У остальных «Страницы» или «Категория»
Редактируя шаблон «Главная страница», я добавляю несколько вызовов
[[Wayfinder? &startId=`2` &hideSubMenus=`1` &outerClass=`navleft`]]
В этом случае Пункты отображаются. Я в это время нахожусь на странице с айди 1. Если же я меняю
[[Wayfinder? &startId=`7` &hideSubMenus=`1` &outerClass=`navleft`]]
Сам при этом находясь на странице с айди 1, то пунктов нету…
Ну и конечно убрав &hideSubMenus=`1` — все заработает, но это плохая идея, тогда все подкатегории сразу же лепятся…
Помогите пожалуйста понять, что я делаю не так…
Комментарии: 12
Для тех мест где не требуются под категории я выкрутился
- [[getResources? &tpl=`menuhead` &limit=`0` &depth=`1` &parents=`7` &sortby=`{«menuindex»:«ASC»}`]]
Если вам нужно светить подкатегории текущего раздела — выпадающее меню или типо того, то это скорее верстка, а не вайфайндер.
Вайфайндер текущий раздел (если в шаблоне указано выводить классы) помечает как active — делаем его через css видимым остальные не видимые — это обще принятая практика по идее. Погугли на тему выпадающих меню.
Если тебе вообще не нужно выводить разделы потомков то есть свойство &level оно указывает глубину выборки от текущего ресурса. ставишь единичку и выдаст только дочерние документы.
А настраивать вайфайндер чтобы он тебе рулил выводом дочерних ресурсов по фильрту, это секас.(будит нагружать страницу да еще пару вызовов)
И какая разница где находится вывод WF если ты ему жестко определяешь с какой страницы начинать работать [[Wayfinder? &startId=`7` &hideSubMenus=`1` &outerClass=`navleft`]] startId тут у тебя говорится что ты выводишь дочерние документы лоя 7 ресурса если нужно текущи документ выводить то вообще убериего или поставь *id
Вайфайндер текущий раздел (если в шаблоне указано выводить классы) помечает как active — делаем его через css видимым остальные не видимые — это обще принятая практика по идее. Погугли на тему выпадающих меню.
Если тебе вообще не нужно выводить разделы потомков то есть свойство &level оно указывает глубину выборки от текущего ресурса. ставишь единичку и выдаст только дочерние документы.
А настраивать вайфайндер чтобы он тебе рулил выводом дочерних ресурсов по фильрту, это секас.(будит нагружать страницу да еще пару вызовов)
И какая разница где находится вывод WF если ты ему жестко определяешь с какой страницы начинать работать [[Wayfinder? &startId=`7` &hideSubMenus=`1` &outerClass=`navleft`]] startId тут у тебя говорится что ты выводишь дочерние документы лоя 7 ресурса если нужно текущи документ выводить то вообще убериего или поставь *id
Вот смотрите.
Панель управления s2722.modx-test.com/manager/
Логин s2722
Пароль QdX4zIq3bb0V
s2722.modx-test.com/
[[Wayfinder? &startId=`6` &hideSubMenus=`1` &outerClass=`navleft`]]
— [[Wayfinder? &startId=`2` &hideSubMenus=`1` &outerClass=`navleft`]]
Два Wayfinder, но отображается только один.
Суть проблемы:
Если в параметрах присутствует &hideSubMenus=`1`, но мы в это время не находимся в контейнере с этим документом — Wayfinder вообще не будет работать.
Панель управления s2722.modx-test.com/manager/
Логин s2722
Пароль QdX4zIq3bb0V
s2722.modx-test.com/
[[Wayfinder? &startId=`6` &hideSubMenus=`1` &outerClass=`navleft`]]
— [[Wayfinder? &startId=`2` &hideSubMenus=`1` &outerClass=`navleft`]]
Два Wayfinder, но отображается только один.
Суть проблемы:
Если в параметрах присутствует &hideSubMenus=`1`, но мы в это время не находимся в контейнере с этим документом — Wayfinder вообще не будет работать.
ну я вижу эти 2 вызова меню что вы в итоге то иметь хотите какое что должно показать
В итоге должно быть два меню, но мы имеем только одно, второе не работает из за &hideSubMenus=`1`, которое если убрать — то все заработает…
Показал 3 примера как выводит level свои классы в wf лучше непихай а добавляй в css те которые выводит сам wf first last active
Что бы разделить верстку просто в отделиные дивы бери и назначай каждому свой class, и свойства
Что бы разделить верстку просто в отделиные дивы бери и назначай каждому свой class, и свойства
Да, но смотрите. Подменю теперь отображается всегда, а нужно чтобы отображалось ТОЛЬКО когда мы находимся в том документе, который выступает в роли контейнера…
Ведь если меню \ подменю будет несколько сотен, то это все на экране будет крейне не красиво смотреться…
Ведь если меню \ подменю будет несколько сотен, то это все на экране будет крейне не красиво смотреться…
Смотир код который тебе генерирует вайфайндер, все вложенные li делаешь
display:none ,а .active display:block
или как там еще надо… у вложенных блоков еще таким же образом правила прописываешь и формируешь работу меню, css мощный инструмент стоит почитать vespa-moto.ru/ вот смотри как работает это
Ага, понял вас, а то что с &hideSubMenus=`1` все пропадает это баг или фича? Просто это параметр полностью избавил бы от написания CSS правил…
CSS правила нужно писать а не избавлятся от них, &hideSubMenus=`1` вообще никогда не использовал динамическая генерация меню при обновлении страницы бцит грузить сайт а CSS в любом случае в браузере кешируются.
Такими темпами ты придешь, к тому что у тебя страница каталога будит по 10 секунд открыватся
Такими темпами ты придешь, к тому что у тебя страница каталога будит по 10 секунд открыватся
[[!Wayfinder?
&startId=`[*parent]`
&level=`2`
&outerTpl=`navVespa`
&rowTpl=`navRow`
&innerTpl=`navInnerVespa`
&innerRowTpl=`navInnerRow`
&outerClass=`navМenu`
]]
navVespa<ul id="nav" [[+wf.classes]]>
[[+wf.wrapper]]
<li id="cartBox"><a id="cartLink" href="cart.html">Ваша корзина</a></li>
</ul>
navRow<li[[+wf.id]][[+wf.classes]]>[[+wf.linktext]] [[+wf.wrapper]]</li>
navInnerVespa<ul [[+wf.classes]]>[[+wf.wrapper]]</ul>
navInnerRow<li[[+wf.id]][[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]" [[+wf.attributes]]>[[+wf.linktext]]</a>[[+wf.wrapper]]</li>
Все остальное прописано в CSS сейчас я еще меньше настроек делаю это сайт на котором я учился
Понял, спасибо, буду смотреть…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.