msGallery в списке товаров msProducts

Вывожу в категории все картинки товара.
При использовании msGallery в списке товаров показывает только первый товар, далее где должен идти контейнер с другим товаром — идет пустой контейнер msGallery

Вывожу сниппет
<ul class="product-card">
[[!msProducts?
    &tpl=`main.row`   
    &limit=`0`
    &parents=`[[*id]]`
    &showHidden=`1`
]]
</ul>
Чанк main.row

<li class="item-card ms2_product">
						    
	                                         {if $thumb?}
                                                        [[!msGallery? &tpl=`msGallery` &product=`[[+id]]` ]]	
                                                 {else}
                                                        <div class="card-gallery col-xs-12 col-sm-7 col-md-8 col-lg-6">
                                                                <div class="gallery-mainBlock">
                                         				<div class="gallery-item" style="background-image: url('{'assets_url' | option}components/minishop2/img/web/ms2_small.png')"></div>
                                                		</div>
                                         		</div>
                                                 {/if}	  				
                                                        <div class="card-content col-xs-12 col-sm-5 col-md-4 col-lg-6">
									<div class="item-card-title"><h3>{$pagetitle}</h3></div>	
									<div class="item-card-detail">
										<p>Арт. [[+article]]</p>
										<p>Габариты 520х705мм</p>
									</div>	
									<div class="item-card-price">
										<div class="price"><span class="price_num">{$price}</span> <i class="fa fa-rub"></i></div>
									</div>	
									<div class="item-card-control">
									    <label class="btn-l b-yellow a-antiman">
									  <form method="post" class="ms2_form">
									     <input type="submit" name="ms2_action" value="cart/add"><span>Купить</span>
									     <input type="hidden" name="id" value="{$id}">
									     <input type="hidden" name="count" value="1">
									     <input type="hidden" name="options" value="[]">
								      </form>	
								        </label>
								     </div>
								</div>			
							</li>
Выводится только первый товар, а дальше идут пустые контейнеры msGallery по количеству товаров.

<div id="msGallery" class="card-gallery col-xs-12 col-sm-7 col-md-8 col-lg-6">    
    </div>
Помогите разобраться.

Антон Левиц
11 октября 2016, 12:58
modx.pro
1
2 093
0

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

Антон Левиц
Антон Левиц
11 октября 2016, 18:22
1
0
Решил вот такой конструкцией

<div id="msGallery[[+id]]" class="card-gallery col-xs-12 col-sm-7 col-md-8 col-lg-6">    
    <div class="gallery-mainBlock">
[[!pdoResources?
	&class=`msProductFile`
	&tpl=`@INLINE <div class="gallery-item" style="background-image: url('{$url}')"></div>`
	&where=`{"product_id":[[+id]], "parent":0, "rank":0}`
	&limit=`1`
	&sortby=`id`
	&sortdir=`asc`
]]    	
	</div>
	<div class="gallery-items">
[[!pdoResources?
	&class=`msProductFile`
	&tpl=`@INLINE <div class="gallery-item" style="background-image: url('{$url}')"></div>`
	&where=`{"product_id":[[+id]], "parent":0}`
	&sortby=`id`
	&sortdir=`asc`
]]
	</div>
</div>
но не нравится, что два раза сниппет приходится вызывать.

в msGallery все проще было
<div id="msGallery[[+id]]" class="card-gallery col-xs-12 col-sm-7 col-md-8 col-lg-6">    
    {if $files?}
        <div class="gallery-mainBlock">
			<div class="gallery-item" style="background-image: url('{$files[0]['url']}')"></div>
		</div>
		<div class="gallery-items">
		     {foreach $files as $file}
			<div class="gallery-item" style="background-image: url('{$file['url']}')"></div>
			 {/foreach}
		</div>
    {/if}
</div>
    Max Roganov
    27 ноября 2016, 00:10
    0
    Мог бы условие поставить в чанке с помощью fenom и тогда можно было бы сделать 1 вызов сниппета и внутри шаблоны нужные подставлять в зависимости от rank
    Спасибо за решение, тоже тупил с выводом 1 товара в msProducts с msGallery внутри
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2