Вывод всех категорий определенного бренда minishop2

Добрый день! Возможно ли вывести все категории на страницу бренда, к которых есть товары с данным производителем?
Может есть готовые решения?
Дмитрий
24 октября 2023, 11:21
modx.pro
389
0

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

Дмитрий
24 октября 2023, 14:02
0
Пока в голову пришло сделать только так
{var $dateCategory = '!pdoResources' | snippet : [
                'parents'=>'13',
                'class' => 'msCategory',
                'limit' => '0',
            	'select' => [
            		"msCategory" => "*"
            		,"Product" => "Product.id as product_id"
            	],
                'innerJoin' => [
            		"Product" => [ "class" => "msProduct", "on" => "Product.parent = msCategory.id AND Product.class_key = 'msProduct' AND Product.published = 1 AND Product.deleted = 0" ],
            		"Data" => [ "class" => "msProductData", "on" => "Product.id = Data.id" ],
            		"Vendor" => [ "class" => "msVendor", "on" => "Data.vendor = Vendor.id" ]
            	],
            	'where'=> ["Vendor.name:LIKE" => '%'~ $_modx->resource.pagetitle ~'%', "class_key" => "msCategory" ] ,
            	'sortdir' => 'asc',
            	'groupby' => 'msCategory.id'
                'tpl'=>'@INLINE {$parent},{$id},'
            ]}

                    {'!pdoMenu' | snippet:[
                        'parents' => 13,
                        'resources'=> $dateCategory,
                        'level' => 2,
                        'displayStart' => 0
                        'tplOuter' => '@INLINE <div class="brand-category__items">{$wrapper}</div>',
                        'tpl' => '@INLINE <li {$classes}><a href="{$link}?vendors={$_modx->resource.brand_id}">{$pagetitle}</a>{$wrapper}</li>',
                        'tplInner' => '@INLINE <ul class="brand-category__list {$classnames}">{$wrapper}</ul>',
                        'tplParentRow' => '@INLINE <div class="brand-category__item"><div class="brand-category__inner"><p class="brand-category__name">{$menutitle}</p>{$wrapper}</div></div>'
                    ]}
Может есть более правильный способ?
    Артур Шевченко
    25 октября 2023, 15:19
    0
    По сути всё правильно, может не очень быстро, но при небольшом количестве товаров это будет незаметно.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2