Вывод товаров в плэйсхолдеры по id
Может быть кто-нибудь уже сталкивался с ситуацией, когда нужно вывести товары в плэйсхолдеры не по порядковому номеру, а по ID?
Комментарии: 5
Еще бы понять, о чем речь.
Дело вот в чем. Пытаюсь по прежнему побороть вот какую ситуацию. На странице товара я вызываю списки комплектующих, которые разбиты на Бутстраповские табы. То есть по категориям. Помимо этого к каждой категории комплектующих этого товара выбирается определенное описание (которое подходит для нескольких других товаров). То есть конструкция выглядит сейчас так:
Для того, чтобы несколько ускорить процесс выборки, сначала получаю список категорий сопутствующих комплектующих. Делаю через pdoResources, он, в итоге, быстрее:
Для того, чтобы несколько ускорить процесс выборки, сначала получаю список категорий сопутствующих комплектующих. Делаю через pdoResources, он, в итоге, быстрее:
[[pdoResources?
&parents=`149`
&limit=`0`
&fastMode=`1`
&tpl=`@INLINE [[+parent]]`
&outputSeparator=`,`
&toPlaceholder=`prts`
&select=`{"modResource":"parent"}`
&innerJoin=`{
"Link":{"class":"msProductLink",
"alias":"Link",
"on":"modResource.id = Link.slave AND Link.link = 1"}
}`
&where=`{"Link.master":[[*id]]}`
&groupby=`parent`
]]
Потом запускаю еще один, который генерирует табы:[[pdoResources? &parents=`149` &depth=`0` &links=`1`
&tpl=`tpl.pdoResources.prts` &sortby=`menuindex`
&select=`id,pagetitle,alias,uri` &limit=`no` &sortdir=`asc`
&resources=`[[+prts]]`
]]
Ну и собственно tpl.pdoResources.prts:<div class="tab-pane" id="[[+alias]]">
[[pdoResources? &parents=`[[+id]]` &depth=`0` &fastMode=`1`
&includeTVs=`Systems.hros` &tvFilters=`Systems.hros==%[[*id]]%`
&select=`longtitle,content` &tpl=`@INLINE
<h4>[[+longtitle]]</h4>
<p class="small">[[+content]]</p>
`
]]
[[msProducts? &parents=`[[+id]]` &link=`[[+links]]` &master=`[[*id]]` &limit=`0`
&tpl=`tpl.msProducts.quick.tile` &includeThumbs=`360x270` &sortby=`menuindex`
&-select=`{"msProduct":"pagetitle,article"}`
&wrapIfEmpty=`0` &tplWrapper=`@INLINE
<div class="row">[[+output]]</div>
<p class="small"><a href="[[+uri]]" target="_blank" title="Перейти на страницу «[[+pagetitle]]»">
Все [[+pagetitle:lcase]] →</a>
</p>`
]]
</div>
Но по скорости работы эта конструкция, мягко скажем, не очень шустрая…
Как минмум, не нужно использовать &tvFilters, а переписать всё на &where.
А как максимум — писать свой сниппет, который реализует эту логику без кучи вложенных в чанки сниппетов.
И что мешало сразу вот это расписать в вопросе?
А как максимум — писать свой сниппет, который реализует эту логику без кучи вложенных в чанки сниппетов.
И что мешало сразу вот это расписать в вопросе?
Ну, свой сниппет пока не осилю, а за &tvFilters спасибо.
Вот и подумалось, что можно было бы все данные вытянуть, разложить по плэйсхолдерам, а потом использовать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.