Выборка отдельных изображнений в ms2gallery
Здравствуйте!
Возникла задача выводить в разных местах на одной странице изображения из ms2Gallery.
Т.е., в одной части страницы я делаю выборку 4-х изображений с ID 1,2,4,6, а в другой части страницы изображений с ID 3,5,7,8 и т.д.
Я задал этот вопрос в официальном разделе этого дополнения, и получил ответ от Василия. Попытался разобраться, но не смог — знаний не хватает.
Подскажите, как при помощи pdoResources присоединить из таблицы изображения с определёнными ID, возможно ли это вообще?
В описании к дополнению в качестве примера есть конструкция:
В чанке myRowTpl эти картинки выводятся так:
Спасибо!
Возникла задача выводить в разных местах на одной странице изображения из ms2Gallery.
Т.е., в одной части страницы я делаю выборку 4-х изображений с ID 1,2,4,6, а в другой части страницы изображений с ID 3,5,7,8 и т.д.
Я задал этот вопрос в официальном разделе этого дополнения, и получил ответ от Василия. Попытался разобраться, но не смог — знаний не хватает.
Подскажите, как при помощи pdoResources присоединить из таблицы изображения с определёнными ID, возможно ли это вообще?
В описании к дополнению в качестве примера есть конструкция:
[[!pdoPage?
&element=`pdoResources`
&loadModels=`ms2gallery`
&parents=`[[*id]]`
&tpl=`myRowTpl`
&leftJoin=`{
"120x90": {"class":"msResourceFile","alias":"120x90", "on": "120x90.resource_id = modResource.id AND 120x90.path LIKE '%/120x90/' AND 120x90.rank=0"}
,"360x270": {"class":"msResourceFile","alias":"360x270", "on": "360x270.resource_id = modResource.id AND 360x270.path LIKE '%/360x270/' AND 360x270.rank=0"}
}`
&select=`{
"modResource":"*"
,"120x90":"120x90.url as 120x90"
,"360x270":"360x270.url as 360x270"
}`
&showLog=`1`
]]
В этом примере мы 2 раза присоединяем таблицу галереи и выбираем превью размерами 120х90 и 360х270.В чанке myRowTpl эти картинки выводятся так:
<img src="[[+120x90]]" title="" alt="" />
<img src="[[+360x270]]" title="" alt="" />
Как будет выглядеть эта конструкция для моей задачи?Спасибо!
Комментарии: 15
[[!pdoResources?
&loadModels=`ms2gallery`
&class=`msResourceFile`
&tpl=`@INLINE [[+rank]]. <img src="[[+url]]" />`
&where=`{"resource_id":"[[*id]]","path:LIKE":"%/120x90/","active":1}`
&limit=`3`
&sortby=`FIELD(rank,1,3,5)`
&sortdir=``
]]
[[!pdoResources?
&loadModels=`ms2gallery`
&class=`msResourceFile`
&tpl=`@INLINE [[+rank]]. <img src="[[+url]]"/>`
&where=`{"resource_id":"[[*id]]", "path:LIKE":"%/120x90/","active":1}`
&limit=`3`
&sortby=`FIELD(rank,0,2,4)`
&sortdir=``
]]
Спасибо Василий!
Последний вопрос (боюсь спрашивать):
А если мой чанк вывода изображений выглядит вот так
Последний вопрос (боюсь спрашивать):
А если мой чанк вывода изображений выглядит вот так
<div id="msGallery">
<a rel="fancybox" href="[[+url:default=`/assets/ms2gallery/minishop2/img/web/ms2_big.png`]]" target="_blank" title="[[+description]]">
<img src="[[+190x143:default=`/assets/components/ms2gallery/img/web/ms2_medium.png`]]" width="190" height="143" alt="[[+name]]" title="[[+description]]" id="mainImage" />
</a>
</div>
как будет выглядеть вызов &where для оригинального изображения [[+url]]
Я тебя не понимаю. Какая связь между чанком оформления и условием выборки?
Вопрос сформулируй понятно — что ты хочешь выбрать? А вот после выборки ты уже будешь оформлять результаты.
Вопрос сформулируй понятно — что ты хочешь выбрать? А вот после выборки ты уже будешь оформлять результаты.
Вот так я вызываю изображения из галереи
А мне нужно вызвать и превью и оригинал изображения, так чтобы можно было организовать вывод fancybox галереи разбитой на части.
Спасибо за терпение!
[[!pdoResources?
&loadModels=`ms2gallery`
&class=`msResourceFile`
&tpl=`myRowTpl`
&where=`{"resource_id":"[[*id]]","path:LIKE":"%/190x143/","active":1}`
&limit=`8`
&sortby=`FIELD(rank,1,5,8,11)`
&sortdir=``
]]
Вот так выглядит чанк myRowTpl<div id="msGallery">
<a rel="fancybox" href="[[+url]]" target="_blank">
<img src="[[+190x143]]" width="190" height="143" id="mainImage" />
</a>
</div>
Сейчас я получаю в качестве основного изображения [[+url]] превью [[+190x143]]А мне нужно вызвать и превью и оригинал изображения, так чтобы можно было организовать вывод fancybox галереи разбитой на части.
Спасибо за терпение!
[[+url]] — это путь к большому изображению
[[+190x143]] — путь к превью.
В чанке показывается превью, при клике открывается большое изображение. В чем затруднение?
[[+190x143]] — путь к превью.
В чанке показывается превью, при клике открывается большое изображение. В чем затруднение?
Да, постараюсь понятнее написать:
— мне нужно сделать выборку определённых изображений из галереи, превью и оригинала.
— мне нужно сделать выборку определённых изображений из галереи, превью и оригинала.
where здесь не причем, нужно присоединять позиции через join.
И мне надоело уже все объяснять, давай дальше сам думай.
И мне надоело уже все объяснять, давай дальше сам думай.
Василий, и всё же я вынужден просить тебя помочь.
Пример который приведён на официальной странице ms2gallery у меня не работает.
Сам я разобраться не могу, три дня просидел бесполезно — нужно учится, а у меня нет времени (я прежде всего строитель и одновременно администратор сайта).
Готов оплатить за помощь!
Пример который приведён на официальной странице ms2gallery у меня не работает.
Сам я разобраться не могу, три дня просидел бесполезно — нужно учится, а у меня нет времени (я прежде всего строитель и одновременно администратор сайта).
Готов оплатить за помощь!
Я сделал вот так:
Без &sortby=`FIELD(rank,1,2,3,4)` выводятся все изображения галереи
Как отсортировать?
И вообще, правильно делаю?
[[!pdoResources?
&loadModels=`ms2gallery`
&class=`msResourceFile`
&tpl=`@INLINE <img src="[[+190x143]]" /> <img src="[[+url]]" />`
&where=`{"resource_id":"[[*id]]","parent":"0","active":"1"}`
&sortby=`FIELD(rank,1,2,3,4)`
&sortdir=`ASC`
&leftJoin=`{
"190x143":{"class":"msResourceFile","alias":"190x143", "on":"190x143.parent=msResourceFile.id AND 190x143.path LIKE '%/190x143/'"}
}`
&select=`{
"msResourceFile":"*"
,"190x143":"190x143.url as 190x143"
}`
&showLog=`1`
]]
Получаю ошибку «error #1052: Column 'rank' in order clause is ambiguous»Без &sortby=`FIELD(rank,1,2,3,4)` выводятся все изображения галереи
Как отсортировать?
И вообще, правильно делаю?
&sortby=`FIELD(msResourceFile.rank,1,2,3,4)`
Блин, не работает такая выборка: msResourceFile. — не помогло
Нашёл!
Надо в параметры выборки &where добавить «rank:IN»:[ 0,1,2,3,4 ]
Работает!
Надо в параметры выборки &where добавить «rank:IN»:[ 0,1,2,3,4 ]
Работает!
Зачем такой огород городить?
Не проще ли было сделать один стандартный вызов галереи на странице, а затем через сниппет IF раскидать их по нужным местам.
Если я правильно понял, все происходит в пределах одного id, то есть
документ+изображения 1,2,3,4,5,6,7,8?
По ресурсам вариант с IF менее затратен, чем дважды вызывать pdoResources.
Или дважды вызвать галерею с &where
Не проще ли было сделать один стандартный вызов галереи на странице, а затем через сниппет IF раскидать их по нужным местам.
Если я правильно понял, все происходит в пределах одного id, то есть
документ+изображения 1,2,3,4,5,6,7,8?
По ресурсам вариант с IF менее затратен, чем дважды вызывать pdoResources.
Или дважды вызвать галерею с &where
Затруднение сделать вызов изображений [[+url]] и [[+190x143]] с помощью &where
Так вызывается превью
Так вызывается превью
&where=`{"resource_id":"[[*id]]","path:LIKE":"%/190x143/","active":1}`
А как вызвать [[+url]] (оригинал)?
Вот так решил задачу вывода url картинки второго изображения в галереи товара modx.pro/help/9791/#comment-66944
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.