Проблема с выводом категорий Производителя товаров
Имеется такая картина: есть шаблон страницы производителя товаров. В нем с помощью pdoResources выводил информацию о бренде:
В самом чанке BrandPage выводил уже информацию с помощью тегов [[+name]] [[+country]] и т.д.
И в нем сделал вызов фильтра, чтобы с помощью него вывести категории, в которых есть товары этого бренда.
А по клику на категорию должен выводиться список товаров такой категории и такого бренда.
Сделал такой вывод путем
В BrandOuter просто вывел {$filters} — фильтры,
а оформление фильтра сделал вот таким:
Но такая конструкция работает не полностью.Категории выводятся, но в ссылке вместо [[+id]] пустота.
НО. Если в вызове фильтра в
Не могу понять почему не подхватывается плейсхолдер бренда.
Может есть мысли у кого-нибудь? Если не очень объяснил, могу дополнить.
Или есть вывод категорий бренда по другому, так чтобы следом опять прикрутить фильтр товаров.
{$_modx->runSnippet('!pdoResources',[
'class' => 'msVendor',
'tpl' => '@FILE chunks/Brands/BrandPage.html',
'where' => '{"resource" : '~ $_modx->resource.id ~'}'])}
В самом чанке BrandPage выводил уже информацию с помощью тегов [[+name]] [[+country]] и т.д.
И в нем сделал вызов фильтра, чтобы с помощью него вывести категории, в которых есть товары этого бренда.
А по клику на категорию должен выводиться список товаров такой категории и такого бренда.
Сделал такой вывод путем
{$_modx->runSnippet('!mFilter2',['limit' => 20,
'parents' => 2,
'element' => 'msProducts',
'where' => '{"Vendor.id": '~[[+id]]~'}',
'includeThumbs' => 'small',
'pageLimit' => 5,
'filters' => 'parent:categories',
'suggestions' => 0,
'tplOuter' => '@FILE chunks/Brands/BrandOuter.html'
'tplFilter.outer.resource|parent' => '@FILE chunks/Brands/CatFilterOuter.html',
'tplFilter.row.resource|parent' => '@FILE chunks/Brands/CatFilterRow.html'])}
В этом вызове фильтруются товары по бренду, ресурс которого равен текущему ресурсу (в условии where)и по категориям.В BrandOuter просто вывел {$filters} — фильтры,
а оформление фильтра сделал вот таким:
<li for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]] b-brand__production-item [[+id]]">
<a href="/katalog/brendyi/poisk-po-brendam/?resource|parent=[[+value]]&ms|vendor=[[+id]]" class="b-brand__production-link">[[+title]]</a>
</li>
То есть как видно, я думал отфильтровать по категориям и в запрос просто подставлять id бренда ms|vendor=[[+id]], так как дело все происходит еще на странице бренда где такой плейсхолдер доступен.Но такая конструкция работает не полностью.Категории выводятся, но в ссылке вместо [[+id]] пустота.
НО. Если в вызове фильтра в
'where' => '{"Vendor.id": '~[[+id]]~'}',
подставить просто цифру = id бренда, то все прекрасно заработает.Не могу понять почему не подхватывается плейсхолдер бренда.
Может есть мысли у кого-нибудь? Если не очень объяснил, могу дополнить.
Или есть вывод категорий бренда по другому, так чтобы следом опять прикрутить фильтр товаров.
Комментарии: 4
Пробовал заменить
'where' => '{"Vendor.id": '~[[+id]]~'}',
на'where' => '{"Vendor.id": '~$id~'}',
? 'where' => '{"Data.vendor": "'~$id~'"}',
'where' => ['Vendor.id' => $id],
А если вдруг сниппет не умеет принимать массивы, то
'where' => json_encode(['field' => $value]),
Василий, огромное спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.