wayfinder, phx и слайдер
Всем привет. Нужна помощь.
Есть такая конструкция для горизонтального меню (табы слайдера): [[!Wayfinder? &startId=`1` &includeDocs=`2,3,4,5,6`]], есть её «дополнение» для вертикального меню (вертикальное меню в слайдере): [[$[[*id:is=`2`:then=`123`]]]] (в 123 живёт WF для вертикального меню отдельно взятой табы). Когда идёт переход по пункту меню вертикальному, теряется фокус "...id:is=.....", так как id становится другой и вертикальное меню пропадает, пока не жахнешь по какой-нибудь табе слайдера. Кстати, при переходе по любому пункту другого меню (не слайдера), разумеется, вертикальное меню слайдера тоже пропадает.
Вопрос: Как бы не терять этот фокус — сделать, чтобы вертикальное меню оставалось, а не пропадало?
П.С.
Уверен, есть и вообще другой способ организации меню слайдера, но его я не думал.
Есть такая конструкция для горизонтального меню (табы слайдера): [[!Wayfinder? &startId=`1` &includeDocs=`2,3,4,5,6`]], есть её «дополнение» для вертикального меню (вертикальное меню в слайдере): [[$[[*id:is=`2`:then=`123`]]]] (в 123 живёт WF для вертикального меню отдельно взятой табы). Когда идёт переход по пункту меню вертикальному, теряется фокус "...id:is=.....", так как id становится другой и вертикальное меню пропадает, пока не жахнешь по какой-нибудь табе слайдера. Кстати, при переходе по любому пункту другого меню (не слайдера), разумеется, вертикальное меню слайдера тоже пропадает.
Вопрос: Как бы не терять этот фокус — сделать, чтобы вертикальное меню оставалось, а не пропадало?
П.С.
Уверен, есть и вообще другой способ организации меню слайдера, но его я не думал.
Комментарии: 34
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
попробуйте [[+id]], если я правильно понимаю суть вашего меню)
всмысле где вызывается [[$[[*id:is=`2`:then=`123`]]]], в шаблоне для wf?
можно так тогда:
[[$[[*id:is=`2`:or:if=`[[*parent]]`:is=`2`:then=`123`]]]]
есть параметры такие: *id — текущий документ, *parent — родитель текущего документа
еще есть сниппет ultimateparent — самый первый родитель документа)
я просто в ступоре от таких нагромождений)
если есть такая конкретика, не проще статично сделать в html коде? а для вывода названий, например, использовать fastfield
Слайдер обычный — горизонтальные табы+вертикальное меню+контеное поле.
То есть, по факту, вот тут: modx.pro/help/762/#comment-6785, Вы всё верно сказали и вся «проблема» крылась в моём незнании, как отрабатывается условие parent.
И хотя такая конструкция оставляет брешь в случае, если мы находимся в parent отлчном от любого parent слайдера, в данном случае, в силу некоторой специфики построения дерева ресурсов, она достаточна.
Так что, так или иначе — спасибо за помощь, Сергей.
да парент только текущего родителя,
выше я писал modx.pro/help/762/#comment-6737
что есть еще сниппет ultimateparent — вот он цепляет всех родителей, его из репризитория скачать можно
То есть, если мы имеем ресурсы 1,2,3,4,5,6,7,8,9, где каждое чётное число есть контейнер с детьми, которые в свою очередь есть тоже контейнер с детьми, а условия ( [[$[[*id:is=`2`:or:if=`[[*parent]]`:is=`2`:then=`123`]]]] и [[$[[*parent:is=`0`:then=`321`]]]] ), мы получаем проблему всех остальных парентов, кроме 2 и 0. То есть для документов с парент 2_2, 4_2 (и глубжее) итд условия работать не будут.
ультимайт парент, с вложенностью поможет, а так же будет работать и на странице с id = 2
мне все сложно понять, что вы там намутили))
делайте проще:
1. берете листок бумаги.
2. слева «да», справа «нет».
3. выписываете условия при которых должно показываться или нет.
4. переводите в код.
1. Есть сайт. У него два основных меню никак не связанные с п.2.
2. На сайте есть слайдер у которого есть горизонтальные (ресурсы контейнеры) и вертикальные (ресурсы контейнеров для горизонтального меню слайдера) меню, а так же поле контента.
3. Каждое вертикальное меню зависит от своего пункта горизонтального меню слайдера
3. Горизонтальное меню слайдера вывожу WF, указывая при помощи includeDocs, какие ресурсы-контейнеры выводить.
4. Вертикальное — при помощи условий.
5. [[$[[*id:is=`q`:or:if=`[[*parent]]`:is=`q`:then=`чанк_выводящий вертикальное меню данного пункта горизонтального меню слайдера`]]]].
6. На данный момент всё работает как надо, за исключением ситуации, когда мы жмакаем на пункт вертикального меню — подгружается ещё одно вертикальное меню (их становится сразу два) из чанка, который мы указываем тут: [[$[[*id:ne=`q`:and:ne=`w`:and:ne=`e`:and:ne=`r`:and:ne=`t`:then=`чанк, выводящий вертикальное меню которое показывается в случае, если это условие нарушено — если пользователь жмакнул на пункт меню одного из основных меню сайта (см п.1)`]]]]
7. Перечитал написанное, решил завтра сходить к психиатру)