организация многоуровнего каталога на pdoResources Новый

Дополнение: pdoTools

мне необходим 3ёх уровневый каталог. я реализовал вывод 1ого уровня ресурсов каталога, теперь как сделать, что бы выводил подкаталог при выборе из первого уровня. так понимаю это нужно верно прописать ссылки в чанке вывода сниппета, не могу найти инфу по данному вопросу
вот мой чанк вывода ресурсов из каталога:


вот вызов сниппета:

[[!pdoResources?
&showHidden=`1`
&parents=`2`
&depth=`0`
&tpl=`catalogtpl`
&includeTVs=`catalog_img`
&limit=`30`]]

чего не хватает что бы выводились ресурсы из подкаталогов?
27 сентября 2016, 15:55    Андрей   
0    784 0

Комментарии (8)

  1. Дмитрий Касаткин 27 сентября 2016, 16:02 # +1
    Если я правильно понял, то вам нужно всего лишь не жестко указать родителя, а динамически:
    &parents=`2`
    замените на
    &parents=`[[*id]]`
    или
    &parents=`[[*parent]]`
    Вызов сниппета нужно положить в шаблон, этот шаблон применить ко всем категориям каталога.
    А к конечным товарам/услугам применить другой шаблон, не «корня» или «ветви» дерева, а «листа» (т.е. ресурса, у которого дочерних нет)
    1. Дмитрий Касаткин 27 сентября 2016, 16:04 # +1
      А если вам на одной странице нужен вывод всего этого каталога, тогда я бы использовал pdoMenu для генерации дерева, а в tpl у пунктов меню использовал бы уже pdoResources для вывода ресурсов.
      1. Андрей 29 сентября 2016, 13:33 # 0
        Дмитрий, спасибо, именно то что нужно!
        Правда, начал разбираться с pdoMenu и застрял… не пойму какие чанки из" Параметров шаблонов" необходимо указать в выводе, что бы отображались выбранные категории в 3ёхуровневом каталоге?

        и как правильно обернуть в таком случае конечный ресурс?
        1. Дмитрий Касаткин 03 октября 2016, 00:57 # 0
          не пойму какие чанки
          tpl – чанк для оформления ресурса, то есть каждого элемента li внутри ul. По умолчанию
          tplInner – чанк для обёртки внутренних пунктов меню, то есть оформляет меню 2-го уровня
          tplInnerRow – чанк обёртка внутреннего пункта меню. Оформляет li вложенные в ul в меню 2-го уровня, заменяет собой tpl
          Вам по идее вот эти нужны. Внутри tpl и/или tplInnerRow вызывайте pdoResources со своим каталогом.

          как правильно обернуть в таком случае конечный ресурс?
          Тут зависит все от того, что вы хотите от этого ресурса вывести. Если только название, то можно вообще обойтись одним pdoMenu, он и так построит дерево с названиями всех разделов и конечных пунктов.

          P.S. Советую больше экспериментировать, вы не сломаете тестовый сайт если пару раз не правильно укажете параметры, зато быстро разберетесь!
          1. Андрей 15 декабря 2016, 08:39 # 0
            Дмитрий, а можете ещё подсказать)
            если делать вывод только названий ресурсов одним pdoMenu, необходимо так же вот эти чанки заполнить tpl tplInner tplInnerRow или ещё какие-то? я указанные заполнил, но ничего не выводит…
            1. Дмитрий Касаткин 15 декабря 2016, 11:11 # 0
              Используя на всех уровнях
              &parents=`[[*id]]`
              и со стандартными чанками (т.е. без явного указания чанков) тоже не выводит?
              Экспериментируйте, я настаиваю))
              1. Андрей 15 декабря 2016, 12:19 # 0
                Дмитрий, выводит список, если делать вызов из документации pdoMenu вида:
                [[pdoMenu?
                &parents=`0`
                &level=`2`
                &tplInner=`@INLINE [[+wrapper]]`
                &tplParentRow=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]] ([[+children]])[[+wrapper]]`
                &countChildren=`1`
                ]]
                Если я указываю свои чанки — ничего не выводит. Вернее выводит только первый уровень, все что внутри — ничего… Я понимаю, что скорее всего, я что-то делаю не так. но понять не могу что…
                А есть где примеры, возможно, можно посмотреть?
    2. Андрей 27 сентября 2016, 20:13 # +1
      Чего то мне кажется что &depth=`0` нужно заменить на &depth=`2`
      Вы должны авторизоваться, чтобы оставлять комментарии.