Как получить меню с производителями?

Добрый день.
Есть сайт РегионТоргСервис. Там в меню (пункт каталог) идут пункты меню, а потом производители. Подскажите, пожалуйста, как это реализовать. Никак не соображу! Спасибо!
Алексей
23 мая 2023, 15:14
modx.pro
246
0

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

Dan
Dan
23 мая 2023, 20:12
0
Можно с помощью pdoResources + пара джойнов.
В parents указываете id категории, внутри которой надо искать производителей. В tpl цифра 2 в ссылке — это id страницы каталога (замените на свой id). Если на странице каталога есть mFilter2 и у него есть фильтр по производителям, то при переходе будет сразу активирован нужный фильтр.
{'!pdoResources' | snippet : [
    'parents' => 11,
    'class' => 'msProduct',
    'innerJoin' => '{
        "Data":{ "class":"msProductData","on":"Data.id = msProduct.id"},
        "Vendor":{ "class":"msVendor","on":"Vendor.id = Data.vendor" }
    }',
    'select' => '{"Vendor":"name,id"}',
    'tpl' => '@INLINE <a href="{2 | url : [] : ["vendor" => $id]}">{$name}</a>',
    'groupby' => 'name'
]}
    Алексей
    24 мая 2023, 08:52
    0
    Спасибо за ваш ответ, но это не то. У вас выводятся все производители, а мне надо что-бы в меню у каждой категории выводились производители этой категории. Вывод нужен в меню, на всех страницах. Пока удалось вывести только на странице категории.
      Dan
      Dan
      24 мая 2023, 09:29
      0
      Как раз таки это не все, а производители внутри одной категории. Я же расписал все в комменте.
      Вообще для меню этот скрипт конечно будет огромный, я бы скорее написал кастомный сниппет.
        Алексей
        24 мая 2023, 10:17
        0
        Спасибо еще раз. Сейчас обсуждаю вывод. Вы сможете написать сниппет?
          Dan
          Dan
          24 мая 2023, 10:39
          0
          Возможно я поторопился и кастомный сниппет может по скорости не будет лучше. Принцип подразумевал следующий:
          1) Получаем коллекцию категорий товаров
          2) Пробегаемся через коллекцию и получаем имеющихся производителей в каждой категории, путем запрос к msVendor с джойном msProduct.
          3) Добавляем в вывод

          Протестите вызов pdoResources, который я написал в комменте. Если он не критично влияет на скорость загрузки страницы, то можно и его оставить.
            Алексей
            24 мая 2023, 10:42
            0
            Я понял. Попробую потестить.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    6