Возможно ли такое сделать на pdoMenu?

Есть категории и подкатегории. Количество подкатегорий различно. Возможно ли вывести с помощью pdoMenu меню такого вида?:

Категория
Подкатегория 1
Подкатегория 2
Подкатегория 3
<обертка>
Подкатегория 4
Подкатегория 5
и т.д.
</обертка>

т.е. те категории у которых idx>3 дополнительно оборачивать в див? Или все таки надо будет самому «колхозить» с проверками через pdoResources? Или может есть другие способы вывода?
Владимир Бабусенко
26 января 2016, 07:24
modx.pro
1 716
0

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

Павел Романов
26 января 2016, 12:22
+1
В шаблоне подкатегории ставите в самом начале:
[[+idx:is=`4`:then=`<обертка>`]]

В вызов добавляете
&countChildren=`1`

В шаблоне категории в конце после [[+wrapper]] добавляете:
[[+children:gt=`3`:then=`</обертка>`]]
    Владимир Бабусенко
    26 января 2016, 14:55
    0
    Павел, вчера вначале именно так и пытался сам сделать, но у меня что не сработало. Попробую еще раз. Спасибо.
      Владимир Бабусенко
      27 января 2016, 13:16
      0
      Павел, в общем предложенное решение работает. Причина почему у меня не срабатывало, была в том что я прописывал фильтры в @INLINE. После как вынес html в чанки фильтры сработают. Спасибо за помощь.
        Павел Романов
        27 января 2016, 13:24
        0
        Не за что, обращайтесь )
          Владимир Бабусенко
          29 января 2016, 10:02
          0
          Эх… не долго счастье длилось. К сожалению данное решение не подойдет. А причина в countChildren. К сожалению он считает все вложеные ресурсы, а не те которые мы выбираем в pdoMenu. При наполнение подкатегорий товарами, children всегда будет возвращать большее значение, чем нам нужно.
            Павел Романов
            29 января 2016, 12:25
            0
            А если исключить товары:
            &templates=`-5`
            где 5 — шаблон товара?
              Владимир Бабусенко
              29 января 2016, 12:56
              0
              Не пробовал, думаю не помогут никакие такие манипуляции и countChildren будет считать все вложения, независимо от того как мы будем ограничивать, соответственно выдавать не тот результат. Написал свой сниппет, но мое любопытсво взяло вверх, и попробовал все таки через pdoMenu.
              Решил по другому с помощью idx и class=«last»
              В обертеке (&tplInnerRow) подкатегории сделал на них проверки.
              Перед оборачивание проверял если idx = 4 открывал <обертка>
              после оборачивания проверял если класс last, то проверяем еще что idx >3(что бы не закрыть того чего не открывали) тогда закрываем </обертка>

              Вроде красиво получилось…

              [[+idx:is=`4`:then=`<div class="display-none">`]]
              
              <div class="item">
                  <a href="[[+link]]" class="solid">[[+menutitle]]</a>
              </div>
              
              [[+classes:is=`class="last"`:then=`
              	[[+idx:gt=`3`:then=`
              		</div>
              		<a href="" class="dotted show-user" data-alt="Скрыть">Все подкатегории</a>
              	`]]
              `]]
      Григорий Коленько
      26 января 2016, 12:30
      0
      Лучше свой сниппет написать с выводом pdofetch
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      9