Плейсхолдеры сниппетов msProducts и msGallery

Доброго времени суток, Василий!
Вопрос по работе сниппетов msGallery и msProducts.

Я на на странице товара вывожу изображение через [[!msGallery]] в шаблоне страницы товара.
Сниппет msGallery выводит данные через чанк tpl.msGallery.outer в котором у меня есть строка:

<img src="[[+320x320:default=`/assets/components/minishop2/img/web/ms2_medium.png`]]" width="320" height="320" alt="[[+name]]" title="[[+description]]" id="mainImage" />

В данном случае плейсхолдеры [+name]] и [[+description]] работают.

Теперь страница категории товаров. Здесь работает сниппет msProducts.
Блоки с изображениями выводятся через чанк tpl.msProducts.row-custom, в котором есть строка
<img src="[[+320x320:default=`[[++assets_url]]components/minishop2/img/web/ms2_medium.png`]]" alt="[[+name]]" title="[[+description]]" />

Здесь плейсхолдер [[+name]] не работает, а [[+description]] выводит данные из поля «Описание» категории.

Мне нужно вывести подписи к картинкам на странице категории товаров. Т.е. мне нужен плейсхолдер [[+name]].

Вот собственно вопросы:
1.Как узнать перечень всех плейсхолдеров, формируемых сниппетами msGallery и msProducts?
2.Есть ли у сниппета msProducts плейсходдеры для вывода названия и описания картинок?
3.Если нет, то как можно получить доступ и вывести названия и описания картинок на странице категории товара?
Сергей Малышев
21 января 2015, 08:19
modx.pro
2 966
0

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

Олег Захаров
02 мая 2018, 13:25
0
тоже искал как решить подобную задачу — на странице категории вывожу подкатегорию и первые 10 товаров подкатегории с выводом картинки товара и названия в виде ссылки. Сделал примерно так (в fenom):
{*получаем список товаров подкатегории*}
{*$cat2level - подставляем id родительской категории*}
{var $products_cats2level = ('pdoResources' | snippet : ['parents' => $cat2level, 'depth' => '0', 'limit' => 10, 'returnIds' => 1, 'sortdir'=>'asc', 'where' => '{"class_key":"msProduct"}'] | split : ',')}
{if $products_cats2level['0'] ?}    {*проверяю есть ли вообще хоть один элемент в массиве*}
	<div class="row" >
		{foreach $products_cats2level as $product_cats2level} 
			<a href="{$_modx->makeUrl($product_cats2level,'','','full')}"> {*вывожу ссылку *}
				<div id="img_{$product_cats2level}" class="col-xs-2 " style="margin-top: 15px;">
					{'msGallery' | snippet : ['product'=>$product_cats2level, 'includeThumbs'=>'mini','tpl'=>'@INLINE <img src="{$files["0"]["mini"]}">']} {*mini - это параметр формата медиаресурса,  у меня mini: "mini":{"h":50,"q":90,"far":"1","bg":"ffffff"}*}
				</div>
				<div id="caption_{$product_cats2level}" class="col-xs-10" style="margin-top: 25px;" >
					{'pdoField' | snippet : ['id' => $product_cats2level]} {*название подкатегории*}
				</div>
				<div class="clear"></div>
			</a>
		{/foreach}
	</div>
{/if}
    Сергей Малышев
    02 мая 2018, 14:23
    0
    Как в песне, «Не прошло и полгода». Но за ответ спасибо. Хотя я как то сам решил проблему, может быть даже с помощью fenom, но уже к сожалению не помню.
    Но вопрос-то в том, как вывести alt и title к картинкам на странице категории.
      Сергей Малышев
      02 мая 2018, 14:30
      +1
      Решил как- то так, может быть не до конца.
      {if $_pls['320x320']?}
              <div class="product-image center">
            		<a href="{$id | url}" class="browseProductImage img-responsive" title="[[+pagetitle:title]]">
            			<img src="{$_pls['320x320']}" alt="[[+longtitle:title]]" title="{$pagetitle | title}" />
            		</a>
            	</div>        
            {else}
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        3