Проблема с msGallery

При выводе каталога товаров в minishop2 возникла проблема с msGallery.
Товары на страницу выводятся сниппетом msProducts,
но в каталоге нужно выводить не одно картинку товара, а первые две из галереи.
Поэтому в шаблоне вывода товара есть вызов сниппета msGallery и выводятся первые две картинки
Вывод каталога:
[[!msProducts?
  &parents=`10`
  &depth=`1`
  &limit=`10`
  &tpl=`tpl.msProducts.row`
]]
шаблон товара tpl.msProducts.row:
<li>
	<div class="item">
		<a href="" class="img_wrap">
            [[!msGallery? &product=`[[+id]]` &tpl=`tpl.msProductImages`]]
		</a>
	</div>
</li>
tpl.msProductImages:
<img src="{$files[0]['235x390']}" alt="" title="">
<img src="{$files[1]['235x390']}" alt="" title="">
однако как только добавляю в шаблон товара сниппет msGallery все ломается и в каталог выводится только одна строка с товаром, а дальше вместо каждого товара вот такой код
<img src="" alt="" title="">
<img src="" alt="" title="">
Подскажите, пожалуйста, что делаю не так? В чем может быть ошибка?
Такое впечатление что msProducts после первой строки забывает, что его шаблон для вывода товаров это tpl.msProducts.row, и берет в качестве шаблона чанк из msGallery -> tpl.msProductImages
Greza
24 февраля 2017, 17:41
modx.pro
2
4 376
0

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

Greza
25 февраля 2017, 12:18
0
Все еще актуально!
    Дмитрий
    25 февраля 2017, 12:23
    0
    а вы в tpl.msProductImages в любой title у картинок вставьте что-нибудь и убедитесь, что чанк какой надо подключается
      Greza
      25 февраля 2017, 12:30
      0
      Не пойму чем это может помочь, но сделал
      в результате получил первый товар нормально — элемент списка li
      а остальные: по два img с разными title вместо каждого товара

      Вывод тот же, msProducts после первой итерации, вместо своего шаблона берет шаблон из msGallery
        Дмитрий
        25 февраля 2017, 12:32
        0
        покажите? Я чот не понимаю. Можете в личку.
    Greza
    25 февраля 2017, 13:58
    0
    Проблема не решена!
    Здесь пример
    s8697.h3.modhost.pro/index.php?id=1

    очевидно что msGallery работает не верно
    кто поможет?
      Андрей
      25 февраля 2017, 15:07
      0
      Можно сниппетом вывести

      $pdo = $modx->getService('pdoFetch');
      
      if (!$tpl) {
        $tpl = '@INLINE
          {foreach $files as $file}
            <img src="{$file.url}" alt="{$file.name}">
          {/foreach}
        ';
      }
      
      if (!$id) {
        $id = $modx->resource->id;
      }
      
      if (!$includeThumbs) {
        $includeThumbs = '120x90';
      }
      
      if (!$limit) {
        $limit = 0;
      }
      
      $output = '';
      
      $rows = $pdo->getCollection('msProductFile', [
          'product_id' => $id,
          'path:LIKE' => '%'.$includeThumbs.'%',
          'active' => 1
        ],
        
        [ 
          'select' => [
            'msProductFile' => '*'
          ],
          
          'limit' => $limit
        ]
      );
      
      if (!empty($rows)) {
        $output = $pdo->getChunk($tpl, [
          'files' => $rows
        ]);
        
        return $output;
      }

      Вызов
      [[SnippetName?
          &id=`[[+id]]`
         //&includeThumbs=`120x90`
         //&tpl=`имя_чанка`
         //&limit=`0`
      ]]
        Greza
        25 февраля 2017, 15:21
        0
        Спасибо огромное за помощь, так все работает!
        но думаю стоит поправить msGallery, чтобы выполнял данную задачу
          Андрей
          25 февраля 2017, 15:30
          0
          Да msGallery в общем-то тоже самое делает.

          Там какие-то проблемы с методом $pdoFetch->setConfig как я понял, но это уже Василию виднее.
      Сергей
      Сергей
      01 сентября 2017, 00:16
      0
      Тут разжевано и приведен рабочий код — modx.pro/help/9853/#comment-86500
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        9