Вывести одним запросом товары minishop2 и обычные страницы

Всем привет!

Столкнулся с интересной проблемой. Необходимо вывести на одной странице товары магазина и страницы новостей. Эдакий совместный, перемешанный поток.

Вывожу через pdoPage в котором element msProducts. Выводит товары магазина но не выводит новости… Понимаю, что msProduct заточен на вывод товаров но, если я верно понимаю документацию, класс msproduct это расширенный класс modresource — должен же забирать и те и те?

[[pdoPage?
    &element=`msProducts`
    &ajaxMode=`button`
    &parents=`3,4`
	&tpl=`catalog-item`
	&tplCondition=`template`
	&conditionalTpls=`{
	   "7":"feed-item",
	   "10":"catalog-item"
	}`
	&limit=`20`
    &sortby=`menuindex`
	&sortdir=`ASC`
    &processTVs=`1`
    &includeTVs=`tickerBookType,bookAuthor,bookAuthorAuto,autorFirstBookLetter,authorImage,newsStyleSelector,directShowViaMsProducts`
    &tvPrefix=``
]]

Причём, для страницы автора делают тот же вывод но с фильтрацией по ТВ — работает

[[pdoPage?
    &element=`msProducts`
    &ajaxMode=`button`
    &parents=`3,4`
	&tpl=`catalog-item`
	&tplCondition=`template`
	&conditionalTpls=`{
	   "7":"feed-item",
	   "10":"catalog-item"
	}`
	&limit=`20`
    &sortby=`menuindex`
	&sortdir=`ASC`
    &processTVs=`1`
    &includeTVs=`tickerBookType,bookAuthor,bookAuthorAuto,autorFirstBookLetter,authorImage,newsStyleSelector,directShowViaMsProducts`
    &tvPrefix=``
    &tvFilters=`bookAuthorAuto==[[*id]]|%||bookAuthorAuto==%|[[*id]]|%||bookAuthorAuto==%|[[*id]]||bookAuthorAuto==[[*id]]`
]]

Я запутался. Подскажите, пожалуйста, возможные решения.

Да, я понимаю, что могу в element поставить pdoResources он будет выводить все ресурсы но не будет автоматом подтягивать изображения из карточки товара и цены…

UPD: Для тех, кто будет искать решение, вот правильный leftJoin и select. Всё оказалось проще, не надо мудрить.

&leftJoin=`{
                     "msProductData": {
                       "class":"msProductData",
                       "alias":"data",
                       "on": "data.id = msProduct.id"
                     }
                  }`
                  &select=`{
                     "msProduct":"*",
                     "data":"price,old_price,image"
                  }`
Nikita
26 апреля 2020, 21:54
modx.pro
215
0

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

Баха Волков
26 апреля 2020, 23:42
0
должен же забирать и те и те?
Нет

Да, я понимаю, что могу в element поставить pdoResources он будет выводить все ресурсы но не будет автоматом подтягивать изображения из карточки товара и цены…
Все верно, забираете через pdoResources с джойном картинок и всего остального
    Nikita
    27 апреля 2020, 02:26
    0
    Спасибо за подсказку. Получилось.
    Но пошли дубли товаров, не могу понять где ошибка…

    [[pdoPage?
        &element=`pdoResources`
        &parents=`3,4`
    	&tpl=`catalog-item`
    	&tplCondition=`template`
    	&conditionalTpls=`{
    	   "7":"feed-item",
    	   "10":"catalog-item"
    	}`
    	&limit=`20`
        &sortby=`publishedon`
    	&sortdir=`DESC`
        &processTVs=`1`
        &includeTVs=`tickerBookType,bookAuthor,bookAuthorAuto,autorFirstBookLetter,authorImage,newsStyleSelector,directShowViaMsProducts`
        &tvPrefix=``
        &class=`msProduct`
                    &leftJoin=`{
                         "image": {
                           "class":"msProductFile",
                           "alias":"image", 
                           "on": "image.product_id = msProduct.id AND image.rank=0"
                         },
                         "msProductData": {
                           "class":"msProductData",
                           "on": "msProductData.id = msProduct.id"
                         }
                      }`
                      &select=`{
                         "msProduct":"*",
                         "image":"image.url as image",
                         "msProductData":"price,old_price"
                      }`
        &showLog=`1`
    ]]
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2