Корректная работа 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` — все заработает, но это плохая идея, тогда все подкатегории сразу же лепятся…
Помогите пожалуйста понять, что я делаю не так…
Николай
01 апреля 2013, 16:27
modx.pro
3 599
0

Комментарии: 12

Николай
01 апреля 2013, 20:33
0
Для тех мест где не требуются под категории я выкрутился
    [[getResources? &tpl=`menuhead` &limit=`0` &depth=`1` &parents=`7` &sortby=`{«menuindex»:«ASC»}`]]
Но, а как быть где есть под категории?
    Мордынский Николай
    01 апреля 2013, 22:22
    0
    Если вам нужно светить подкатегории текущего раздела — выпадающее меню или типо того, то это скорее верстка, а не вайфайндер.

    Вайфайндер текущий раздел (если в шаблоне указано выводить классы) помечает как active — делаем его через css видимым остальные не видимые — это обще принятая практика по идее. Погугли на тему выпадающих меню.

    Если тебе вообще не нужно выводить разделы потомков то есть свойство &level оно указывает глубину выборки от текущего ресурса. ставишь единичку и выдаст только дочерние документы.

    А настраивать вайфайндер чтобы он тебе рулил выводом дочерних ресурсов по фильрту, это секас.(будит нагружать страницу да еще пару вызовов)

    И какая разница где находится вывод WF если ты ему жестко определяешь с какой страницы начинать работать [[Wayfinder? &startId=`7` &hideSubMenus=`1` &outerClass=`navleft`]] startId тут у тебя говорится что ты выводишь дочерние документы лоя 7 ресурса если нужно текущи документ выводить то вообще убериего или поставь *id
      Николай
      01 апреля 2013, 23:08
      0
      Вот смотрите.

      Панель управления 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 вообще не будет работать.
        Мордынский Николай
        02 апреля 2013, 00:22
        0
        ну я вижу эти 2 вызова меню что вы в итоге то иметь хотите какое что должно показать
          Николай
          02 апреля 2013, 00:24
          0
          В итоге должно быть два меню, но мы имеем только одно, второе не работает из за &hideSubMenus=`1`, которое если убрать — то все заработает…
            Мордынский Николай
            02 апреля 2013, 00:31
            0
            Показал 3 примера как выводит level свои классы в wf лучше непихай а добавляй в css те которые выводит сам wf first last active

            Что бы разделить верстку просто в отделиные дивы бери и назначай каждому свой class, и свойства
              Николай
              02 апреля 2013, 00:34
              0
              Да, но смотрите. Подменю теперь отображается всегда, а нужно чтобы отображалось ТОЛЬКО когда мы находимся в том документе, который выступает в роли контейнера…
              Ведь если меню \ подменю будет несколько сотен, то это все на экране будет крейне не красиво смотреться…
                Мордынский Николай
                02 апреля 2013, 00:36
                0
                Смотир код который тебе генерирует вайфайндер, все вложенные li делаешь
                display:none ,а .active display:block
                или как там еще надо… у вложенных блоков еще таким же образом правила прописываешь и формируешь работу меню, css мощный инструмент стоит почитать vespa-moto.ru/ вот смотри как работает это
                  Николай
                  02 апреля 2013, 00:45
                  0
                  Ага, понял вас, а то что с &hideSubMenus=`1` все пропадает это баг или фича? Просто это параметр полностью избавил бы от написания CSS правил…
                    Мордынский Николай
                    02 апреля 2013, 00:50
                    0
                    CSS правила нужно писать а не избавлятся от них, &hideSubMenus=`1` вообще никогда не использовал динамическая генерация меню при обновлении страницы бцит грузить сайт а CSS в любом случае в браузере кешируются.

                    Такими темпами ты придешь, к тому что у тебя страница каталога будит по 10 секунд открыватся
                    Мордынский Николай
                    02 апреля 2013, 00:45
                    0
                    [[!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 сейчас я еще меньше настроек делаю это сайт на котором я учился
                      Николай
                      02 апреля 2013, 01:11
                      0
                      Понял, спасибо, буду смотреть…
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        12