Получение полного списка полноразмерных картинок
Добрый день! У меня к вам такой вопрос, как можно получить полный список полноразмерных картинок конкретного товара?
Стандартный чанк tpl.msGallery.outer выглядит так:
Стандартный чанк tpl.msGallery.outer выглядит так:
<div id="msGallery">
<a rel="fancybox" href="[[+url:default=`/assets/components/minishop2/img/web/ms2_big.png`]]" target="_blank">
<img src="[[+360x270:default=`/assets/components/minishop2/img/web/ms2_medium.png`]]" width="360" height="270" alt="" title="" id="mainImage" />
</a>
<div class="row">
[[+rows]]
</div>
</div>
В данном случае картинка из переменной +320x270 это и есть крупная картинка, остальные мини-картинке формируются в другом чанке tpl.msGallery.row, собственно параметр [[+rows]] и говорит об этом. Не знаю особенностей MiniShop2, потому и спрашиваю, возможно ли, получить как-то массивом или списком переменных эти оригинальные картинки? Комментарии: 9
Полноразмерная картинка это [[+url]]. В вызове галереи укажите пустой &tplOuter=`` и &tpl=`@INLINE [[+url]]` — получится чисто список ссылок.
Спасибо за ответ, но хотел отметить, что в сниппете msGallery нету параметра &tpl. Это первое. А второе когда я делаю таким образом: [[!msGallery? &tplOuter=`` &tplRow=`@INLINE [[+url]]`]], то про просто трижды выводит адрес главной картинки… если заменяю на [[+360x270]] то выводит трижды картинку такого размера. В общем не то, я хотел. Мне нужно получить список полноразмерных картинок, одна из которых хранится в [[+url]].
Если это вызывается внутри msProducts, то возможно url перезаписывается, тогда надо чанк tplRow сделать неинлайновым. Что вообще выводится можно посмотреть, сделав пустым чанк &tplRow=`` — должен вывестись массив через print_r. По крайней мере так обычно у Василия).
Да если делаешь пустой чанк &tplRow, то просто выводит весь массив данных какой там есть… в том числе и картинки-ссылки. Вопрос лишь в том, как дернуть из этого массива в чанке нужные поля, в моем случае [[+url]], ведь в чанке нельзя логику писать.
Ну вот если в массиве нужные поля есть, то и делай, как я говорил, в чанке, который указан в &tplRow просто [[+url]] или какое там нужное поле увидишь среди вывода массива. Через pdoResources вызов аналогичен.
Спасибо, сделал так: [[!msGallery? &tplOuter=`[[+rows]]` &tplRow=`[[+url]]`]] в итоге выводит полный список полноразмерных картинок. Ответ, твой помог). Лайкнул его.
[[!pdoResources?
&class=`msProductFile`
&where=`{"product_id":10, "parent":0}`
&sortby=`id`
&sortdir=`asc`
]]
parent = 0 — это выборка именно большой картинки, потому что у превьюшек parent всегда не 0, а id существующей картинки. Ну а product_id понятно что — id нужного товара.Друзья, осваивайте уже pdoTools.
Просто в чанке по умолчанию было использовано как раз [[!msGallery?]] для вывода картинок, вот и подумал, что можно так сделать. Все равно не до конца понял, как с помощью [[!pdoResources?]] вывести список больших картинок? parent же принимает только одно значение, соответственно вернет наверное опять одну картинку просто…
msGallery выводит готовую галерею картинок, а не как ты хочешь.
Поэтому, нужно работать напрямую с базой данных сниппетом pdoResources. Параметр &class указывает, что мы запрашиваем не modResource (документы), а msProductFile (картинки).
И здесь не параметр &parent (родитель документа), а условие в &where (фильтрация по колонке таблицы msProductFile).
Если тебе все это непонятно, но хочется понять — рекомендую мой платный курс по созданию сайта в MODX, в частности уроки про pdoTools.
Поэтому, нужно работать напрямую с базой данных сниппетом pdoResources. Параметр &class указывает, что мы запрашиваем не modResource (документы), а msProductFile (картинки).
И здесь не параметр &parent (родитель документа), а условие в &where (фильтрация по колонке таблицы msProductFile).
Если тебе все это непонятно, но хочется понять — рекомендую мой платный курс по созданию сайта в MODX, в частности уроки про pdoTools.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.