Вывод всех картинок товара в списке товаров Новый

Дополнение: msGallery

Здравствуйте!
В чанке с шаблоном товара нужно чтобы выводились все картинки галереи. Ок, пробую msGallery, таким образом
 {$_modx->runSnippet('!msGallery', [
                            'tpl' => 'tpl.msGalleryProd',
                            'product' => $id,
                            'limit' => 2
                        ])}
Изображения выводятся, но только у первых товаров каждой категории, дальше не выводятся товары. На форуме были такие проблемы у кого-то, но решения там не было.

Пробую pdoResources использовать, тоже безуспешно
{$_modx->runSnippet('!pdoResources', [
    'class' => 'msProductFile'
    'where' => ['product_id' => $id],
   'showLog' => 1

])}
Тут пробую без шаблона, посмотреть логи — ошибка
Could not process query, error #1054: Unknown column 'publishedon' in 'order clause'
Если вызывать без fenom, не работают остальные теги, те что в fenom — синтаксисе.
Вопрос собственно, была ли у кого-то такая задача, получилось ли вывести и как вы это сделали)
Спасибо
17 сентября 2016, 17:15    Аля   
1    565 0

Комментарии (10)

  1. Аля 17 сентября 2016, 23:38 # 0
    В итоге полазив по форуму имеем такую конструкцию
    [[pdoResources?
                              &class=`msProductFile`
                              &tpl=`@INLINE <li><img src="[[+url]]" /></li>`
                              &where=`{"product_id":"[[+id]]", "path:LIKE":"%/800x600/"}`
                              &sortdir=``
                              &showLog=`1`
                            ]]
    
    Но! Должно быть изображение1, изображение2, изображение3 и т.п. А у меня почему-то все по 2 раза выводится, типа Изображение1, изображение1, изображение2, изображение2.
    добавила пустой шаблон для каждого второго изображения
    &tplOdd=`@INLINE `
    Но это как-то ненормально.
    Неужели правда в таких случаях не используют msGallery?
    1. Антон 18 сентября 2016, 08:27 # 0
      Картинки проще всего msGallery выводить

      [[!msGallery?
      &tpl=`tpl.msGallery`
      &product=`[[+id]]`]]


      Ниже — чанки tpl.msGallery
      Все файлы (не обязательно картинки)
      {foreach $files as $file}
                      /assets/images/products/{$file['path']}{$file['file']
       {/foreach}
      


      Только первый файл
      /assets/images/products/{$file['path']}{$files['0']['file']} 
      
      Только второй
      /assets/images/products/{$file['path']}{$files['1']['file']}

      Можно предварительно посмотреть массив
      <pre> [[!msGallery?
      &tpl=``
      &product=`[[+id]]`]]</pre>
      1. Аля 22 сентября 2016, 13:58 # 0
        В том и дело, что не хочет так выводить. Точнее выводятся картинки для первого товара и первый товар, дальше товары не выводятся
        1. Сергей 20 января 2017, 14:05 # 0
          Добрый день!
          У меня аналогичная ситуация — Вы смогли решить?
    2. Сергей 29 августа 2017, 00:23 # 0
      Вывожу второе фото для каждого товара в списке товаров через такой код:
      [[!msGallery? &product=`[[+id]]` &tpl=`tpl.msGallerySecondFoto`]]
      Вот tpl.msGallerySecondFoto:
      <img src="{$files[1]['360x270']}" alt="" title="">
      Число запросов увеличилось примерно в 2 раза, время загрузки страницы увеличилось с 0,2с до 0,3с. тут можно как-то использовать мощь PDO или уже все, край?
      1. Александр 29 августа 2017, 10:43 # +1
        leftJoin Вам в помощь
        1. Сергей 29 августа 2017, 11:45 # 0
          Имеется ввиду джойнить тут?
          [[!pdoPage?
          	&element=`msProducts`
          ]]
          1. Александр 29 августа 2017, 12:36 # 0
            pdoPage,pdoResource,msProducts — без разницы, где джойнить. Где-то от Василия пример видел, но увы, потерял.
            1. Сергей 29 августа 2017, 19:58 # 0
      2. Сергей 01 сентября 2017, 00:14 # 0
        Тщательно пережевав это modx.pro/help/7693/#comment-53831, решил свой вопрос — Как вывести два фото к каждому товару на странице категории:
        в шаблоне категории вызываю список товаров так:
        [[!pdoPage?
        	&element=`msProducts`
        	&loadModels=`gallery`
        	&leftJoin=`{
        		"360x270": {"class":"msProductFile","alias":"360x270", "on": "360x270.product_id = msProduct.id AND 360x270.path LIKE '%/360x270/' AND 360x270.rank=0"}
        		,"360x270x1": {"class":"msProductFile","alias":"360x270x1", "on": "360x270x1.product_id = msProduct.id AND 360x270x1.path LIKE '%/360x270/' AND 360x270x1.rank=1"}
        	}`
        	&select=`{
        		"msProduct":"*"
        		,"360x270":"360x270.url as 360x270"
        		,"360x270x1":"360x270x1.url as 360x270x1"
        	}`
        ]]
        и в чанке tpl.msProducts.row.php вывожу ДВА фото товара так:
        <img src="[[+360x270:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]">
        <img src="[[+360x270x1:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]">
        Количество запросов снизилось вдвое, время загрузки страницы упало в полтора раза.
        Извините, если кому наступил на мозоль, разжевав досконально, я знаю, что тут это не приветствуется...)))
        Вы должны авторизоваться, чтобы оставлять комментарии.