Некоторые вопросы по pdoMenu

Здравствуйте. Сейчас я делаю многоуровневый каталог, и в некоторых местах у меня возникают непонятные вещи.

Структура каталога примерно такая:

Фирма-производитель
-- Категория
---- Подкатегория
------ Подподкатегория :)
-------- Товар
… и так далее.

Сам код вывода на данный момент выглядит вот так:
[[pdoMenu? 
&displayStart=`[[~id]]`
&parents=`[[~id]]`
&includeTVs=`vendorImage` 
&sortby=`menutitle`
&sortdir=`ASC` 
&levelClass=`level`
]]
Есть два затруднения:
1. Почти у каждой фирмы-производителя есть логотип, который хотелось бы вывести. Как это сделать только для неё, то есть для верхнего уровня списка? И что делать, если логотипа нет?
2. Из-за того, что вложенность категорий разная, возможно ли как-то «указать» pdoMenu чтобы она последнему уровню UL-LI (который непосредственно показывает товары) присваивала какой-то особенный класс? Ну, или, например, конкретно каждому товару (то есть конечному пункту в этой всей пищевой цепочке?) :)


PS: Возможно я совершенно неправ и делаю велосипед, но может быть вы порекомендуете какие-то дополнения модэксовские в которых каталог уже предусмотрен? Мне, в принципе, нужна каталогизация, желательно фильтрация по каким-то параметрам, учитывая то, что у разных категорий может быть набор своих параметров и так далее. Как я понимаю, подобные штуки умеет minishop2 но я очень сомневаюсь, что он встанет на уже рабочий проект.
Евгений
21 мая 2014, 07:15
modx.pro
3 090
0

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

Алексей Ерохин
22 мая 2014, 01:19
+1
1)
&tplStart Чанк оформления корневого пункта, при условии, что включен &displayStart. По умолчанию: @INLINE <h2[[+classes]]>[[+menutitle]][[+wrapper]]

прописываете сюда нужный плейсхолдер и к нему модификатор default

2)
&lastClass Класс последнего пункта меню. По умолчанию: last
3)
&displayStart=`[[~id]]`
&parents=`[[~id]]`
это что-то не то, [[~id]] не даст Вам ничего, а нужен идентификатор(ы) (число)
    Евгений
    22 мая 2014, 02:44
    0
    Спасибо. То есть мне нужно получить, например, &displayStart=`4,16,32`, где 4,16,32 — корневые «узлы» каталога? А как?
      Алексей Ерохин
      22 мая 2014, 02:49
      +1
      [[pdoResources? &returnIds=`1`]]
      условия придумайте сами — это может быть родитель определенный (через &parents и &depth, либо шаблон (через &where). docs.modx.pro/components/pdotools/snippets/pdoresources
        Евгений
        22 мая 2014, 03:24
        0
        Спасибо. Остался последний вопрос: как в череде бесконечных UL/LI определить, что это последний во вложенности, это возможно? Я имею в виду последний UL который у меня выводит непосредственно товары в категории. С помощью lastClass это можно прописать только у li, кажется.
          Василий Наумкин
          22 мая 2014, 08:10
          0
          У CSS есть для этого псевдокласс :last-child.
            Евгений
            22 мая 2014, 08:20
            0
            Как применить его вот к такой конструкции? Боюсь, что никак. Было бы замечательно, если бы последний ul можно было бы выделить каким-то классом, тогда было бы ясно чем его перехватить в CSS

            <ul>
            	<li>
            		<ul>
            			<li>
            				<ul>
            					<li>Последний пункт</li>
            				</ul>
            			</li>
            		</ul>
            	</li>
            </ul>
              Василий Наумкин
              22 мая 2014, 09:12
              +1
              Последний ul в меню выделяется так:
              .mymenu ul:last-child

              Последний li в твоём примере — так:
              .mymenu ul:last-child ul ul li:last-child

              А вообще, pdoMenu умеет показывать уровень вложенности и присваивает первым и последним элементам соответствующие классы, что упрощает задачу:
              .mymenu ul:last-child li.level-3.last
    Андрей
    24 июля 2014, 17:44
    0
    Люди, кто может подсказать. Можно ли на определенном уровне вложенности в pdoMenu использовать определенный шаблон (не просто класс)?
      AlexBleck
      11 января 2020, 01:02
      0
      Нашли ответ, тоже столкнулся)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      9