Подгрузка галереи и нужных полей товара в простой ресурс
Добрый день!
Сегодня небольшая заметка о том как можно сделать подгрузку в простой ресурс галереи и каких нибудь полей товаров.
Задача: Нужно сделать страницу — галерею выполненных работ с выводом некоторых его полей.
Решение: Поэтому берем штатный снипет msGallery и к нему с помощью leftJoin добавляем недостающее данные, его вызов получается следующим:
При этом надо понимать что поля эти попадут в общий массив данных с полями msGallery поэтому чанк у меня получился вот такой:
Сегодня небольшая заметка о том как можно сделать подгрузку в простой ресурс галереи и каких нибудь полей товаров.
Задача: Нужно сделать страницу — галерею выполненных работ с выводом некоторых его полей.
Дублировать фотографии товаров, писать куда то в TV поля их параметры — это не выход.
Решение: Поэтому берем штатный снипет msGallery и к нему с помощью leftJoin добавляем недостающее данные, его вызов получается следующим:
{'!msGallery' | snippet:[
'product' => $_modx->resource.ProductId,
'tpl' => 'custom2.msGallery',
'leftJoin' => [
'products' =>
[
'class' => 'msProduct',
'on' => 'product_id = products.id'
],
'productsData' =>
[
'class' => 'msProductData',
'on' => 'products.id = productsData.id'
]
],
'select' => [
'msProductFile' => '*',
'products' => 'pagetitle',
'productsData' => 'article'
],
'showLog' => 0
]}
Сперва джоиним таблицу товаров, затем их данных товаров, и в выбираем какие именно поля нас интересуют в той и другой таблице.При этом надо понимать что поля эти попадут в общий массив данных с полями msGallery поэтому чанк у меня получился вот такой:
<div id="msGallery">
{if $files?}
<div class="fotorama"
data-nav="thumbs"
data-thumbheight="45"
data-allowfullscreen="true"
data-swipe="true"
data-autoplay="5000">
{foreach $files as $file}
<a href="{$file['url']}" target="_blank">
<img src="{$file['small']}" alt="" title="">
</a>
{/foreach}
</div>
{if $file['article']?}<p>Артикул: {$file['article']}, {/if}{if $file['pagetitle']?}{$file['pagetitle']}</p>{/if}
{else}
<img src="{('assets_url' | option) ~ 'components/minishop2/img/web/ms2_medium.png'}"
srcset="{('assets_url' | option) ~ 'components/minishop2/img/web/ms2_medium@2x.png'} 2x"
alt="" title=""/>
{/if}
</div>
Таким образом создается ресурс с определенным шаблоном где у нас этот вызов, затем в TV ProductId указываем айди нужного товара и всё! Комментарии: 2
Блин! Случайно вместо плюсика минус поставил =(
Поправил
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.