We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 48775
    • 3 Posts
    есть такая структура:

    1
    2
    -3
    -8
    4


    Нужно из этого построить одноуровневое меню без пункта 8, но с пунктом 3.

    [[Wayfinder? &startId=`0` &level=`1` &includeDocs=`3`]]


    не работает, не выводит вообще ничего.
      • 49529
      • 196 Posts
      А вы попробуйте убрать &includeDocs и отрегулировать видимость с помощью пунка "Показывать в меню" у нужных вам ресурсов.
        • 49912
        • 23 Posts
        Для построения меню удобнее использовать pdoMenu Безумкина.. Его можно настроить как душе угодно.
          • 48775
          • 3 Posts
          whitebyte, похоже придется так и делать. Но очень много пунктов скрывать придется, а мне ещё для подразделов меню делать нужно и там придется выводить скрытые пункты, что при последующей доработке не оставит места для маневров.

          wolframcheg, я с него и начинал. Но его поведение идентично wayfinder. Поэтому и решил воспользоваться wayfinder. Если знаете как сделать с помощью pdoMenu, покажите. Я для себя сделал вывод, что это невозможно.
            • 49912
            • 23 Posts
            [[pdoMenu?
            &level=`1`
            &parents=`0,2`
            &resources=`-8`
            &tplInner=`@INLINE [[+wrapper]]`
            &tplParentRowHere=`@INLINE <li [[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>`
            &tplParentRowActive=`@INLINE <li ><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>`
            ]]
              • 48775
              • 3 Posts
              Круто, работает. Так и не понял, почему у меня не получалось. Наверно с шаблоном что-то не так делал. Мне ещё этот самый 8-ой элемент нужно первым поставить. Наверно можно статикой в outerTpl добавить(конкретно для этого пункта показывать активность не требуется), а иначе никак. Пока ждал вашего ответа напили самописный сниппет.

              <?php
              $objects = $modx->getCollection('modResource','id IN ('.$ids.') and published = 1');
              $cont = '';
              $currentId = $modx->resource->get('id');
              $idArr = explode(',', $ids);
              while(count($idArr) > 0)
              {
                  $id = intval(array_shift($idArr));
                  if(isset($objects[$id]))
                  {
                      $ids = $modx->getChildIds($currentId,3,array('context' => 'web'));
                      $object = $objects[$id];
                      if($id == $currentId || in_array($currentId, $modx->getChildIds($id,3,array('context' => 'web'))))
                      {
                          $cont .= '<li class="active">';
                      }
                      else
                      {
                          $cont .= '<li>';
                      }
              
                      $cont .= '<a href="'.$modx->makeUrl($object->get('id')).'">'.$object->get('menutitle').'</a></li>';
                  }
              }
              
              return $cont;
              


              Он выводит одноуровневым меню любые элементы структуры, при чем в том порядке, в котором я их задал в списке. В любом случае спасибо вам за ответ
                • 49912
                • 23 Posts
                Ну если 8й всегда будет первым и активность не требуется то можно и в tplOuter прописать.