Замена 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 открытого ресурса такой же как у пункта меню, то вывести topLevel, иначе subLevel»?
Если так, то вообще не надо огород городить:
                    Конструкция
[[UltimateParent? &id=`[[+wf.docid]]`]] выдает просто ID текущего ресурса.Как я понимаю, логика такая: «если ID открытого ресурса такой же как у пункта меню, то вывести topLevel, иначе subLevel»?
Если так, то вообще не надо огород городить:
[[+id:is=`[[*id]]`:then=`topLevel`:else=`subLevel`]]Или я не понял задачу?            [[pdoField? &id=`[[+id]]` &topLevel =`0`]] — но вызывать в каждом пункте меню такую проверку не лучшим образом скажется на производительности. Лучше вообще пересмотреть подход к решению.Можно, например, использовать атрибуты ссылки документов, дописав в элементы верхнего уровня «topLevel», а в вызове pdoMenu проверять уже его наличие.
                UPD: 
Или же решить задачу вообще методами css:
                    Или же решить задачу вообще методами css:
.container > .ul {} //topLevel
.container > .ul .ul {} //subLevel            
                Благодарю, но CSS не подоходит. Требуется интегрировать готовое решение. На сколько затормозит сайт при использовании проверки
                    [[pdoField? &id=`[[+id]]` &topLevel =`0`]]?            
                Зависит от количества выводимых пунктов pdoMenu -> каждый пункт = один запрос к базе.
Вы можете замерить разницу, используя следующие плейсхолдеры где-нибудь в шаблоне:
Также есть дополнение debugParser, выполняющий схожий функционал (но более развернутый).
                    Вы можете замерить разницу, используя следующие плейсхолдеры где-нибудь в шаблоне:
[^qt^] - время на запросы к базе данных
[^q^] - запросов к базе данных
[^p^] - время на работу PHP скриптов
[^t^] - общее время на генерацию страницы
[^s^] - источник содержимого (база или кэш)Также есть дополнение debugParser, выполняющий схожий функционал (но более развернутый).
                А чем работающий вариант не устраивает?
                    [[+id:is=`[[UltimateParent? &id=`[[+id]]`]]`:then=`topLevel`:else=`subLevel`]]            
                Вопрос в выпадающем бутстрап-меню с вложенными меню, вот его код:
В документацию pdoMenu вникнуть сложно, параметр tplParentRow перекрывает всё. Как использовать параметры (и какие) для внутренних контейнеров с потомками, не нашёл. Параметр tplCategoryFolder вообще что-то неизведанное, не цепляется никоим образом. Да и всё равно проверку ставить для классов: dropdown или dropdown dropdown-submenu.
Может кто что-нибудь подскажет?
                    <ul class="nav navbar-nav">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown 1<b class="caret"></b></a>
          <ul class="dropdown-menu">
            <li><a href="#">Dropdown Link 1</a></li>
            <li><a href="#">Dropdown Link 2</a></li>
            <li><a href="#">Dropdown Link 3</a></li>
            <li class="divider"></li>
            <li class="dropdown dropdown-submenu">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown Link 4</a>
              <ul class="dropdown-menu">
                <li><a href="#">Dropdown Submenu Link 4.1</a></li>
                <li><a href="#">Dropdown Submenu Link 4.2</a></li>
              </ul>
            </li>
            <li class="dropdown dropdown-submenu">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown Link 5</a>
              <ul class="dropdown-menu">
              <li><a href="#">Dropdown Submenu Link 5.1</a></li>
              <li class="dropdown dropdown-submenu"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown Submenu Link 5.4</a>
                <ul class="dropdown-menu">
                  <li><a href="#">Dropdown Submenu Link 5.4.1</a></li>
                  <li class="dropdown dropdown-submenu"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown Submenu Link 5.4.3</a>
                    <ul class="dropdown-menu">
                      <li><a href="#">Dropdown Submenu Link 5.4.3.1</a></li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>Вот его вывод:[[pdoMenu?
          &startId=`0`
          &parents=`0`
          &level=`10`
          &firstClass=``
          &lastClass=``
          &tplOuter=`@INLINE <ul[[+classes]]>[[+wrapper]]</ul>`
          &outerClass=`nav navbar-nav`
          &tplParentRow=`navbar.pt.row`
          &parentClass=`dropdown`
          &innerClass=`dropdown-menu`
        ]]и чанк navbar.pt.row<li class="[[+id:is=`[[UltimateParent? &id=`[[+id]]`]]`:then=`dropdown`:else=`dropdown dropdown-submenu`]]">
  <a id="[[+id]]" href="[[+link]]" class="dropdown-toggle" data-toggle="dropdown">
    [[+menutitle]]  
    [[+id:is=`[[UltimateParent? &id=`[[+id]]`]]`:then=`<b class="caret"></b>`:else=``]]
  </a>
  [[+wrapper]]
</li>Эта конструкция работает. В ней проверяется, не верхний ли это уровень меню. Если да, подставляется класс dropdown и <b class="caret"></b>, если нет, класс: dropdown dropdown-submenu. Собственно, ничего вроде бы сложного.В документацию pdoMenu вникнуть сложно, параметр tplParentRow перекрывает всё. Как использовать параметры (и какие) для внутренних контейнеров с потомками, не нашёл. Параметр tplCategoryFolder вообще что-то неизведанное, не цепляется никоим образом. Да и всё равно проверку ставить для классов: dropdown или dropdown dropdown-submenu.
Может кто что-нибудь подскажет?
А чем работающий вариант не устраивает?Хочется все инструменты из одной коробки.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.