Евгений

Евгений

С нами с 24 августа 2017; Место в рейтинге пользователей: #1569
Тодор
14 сентября 2020, 12:17
2
+2
{'!msProducts' | snippet:[
    'parents' => '5',
    'tpl'=> '@FILE chunks/middle_images.tpl',
    'leftJoin' => '{
        "images" : {
	    "class" : "msProductFile",
	    "on" : "`images`.product_id = msProduct.id AND `images`.type = \'image\' AND `images`.path NOT LIKE \'%x%\'"
	}
    }',
    'select' => '{
         "images" : "GROUP_CONCAT(`images`.`url` SEPARATOR \';\') as `images`"
    }',
]}
В самом чанке все картинки будут в строке с разделителем ";"
{set $imgArr = $images | split: ';'}
{foreach $imgArr  as $fileSrc}
    <img src="{$fileSrc}" srcset="{$fileSrc} 2x">
{/foreach}
Здесь выводятся оригиналы, для других превью меняешь/добавляешь leftJoin и select
Игорь Терентьев
04 октября 2018, 12:28
2
0
Вот так можно присоединить msProductData к pdoMenu и выбрать необходимые поля:

{'pdoMenu' | snippet : [
    'parents' => $_modx->resource.id,
    'select' => [
        'modResource' => '*',
        'Data' => 'price,old_price,article',
    ],
    'leftJoin' => [
        'Data' => [
            'class' => 'msProductData',
            'alias' => 'Data',
            'on' => 'Data.id = modResource.id',
        ],
    ],
]}
Виталий Серый
10 апреля 2018, 01:38
5
0
На текущий момент без изменения сниппета msProducts сгруппировать не получится.
Надо править либо сам сниппет, либо создать копию (если не прав, то править надо меня).

После 28 строки добавить что-то вроде такого
// Add grouping
$groupby = array(
    'msProduct.id',
); //строка 28
if(!empty($scriptProperties['groupby'])){
    $groupby = array(
        $scriptProperties['groupby'],
    );
}

Так же при желании все необходимое можно добавить в вызове сниппета вместо создания нового
{'!mFilter2' | snippet:[
    'class' => 'msProduct',
    'parents' => 0,
    'element' => 'msProducts',
    'innerJoin' => '{
                "Category": {
                    "class": "msCategory"
                 }
            }',
    'select' => '{
                "Category": "*"
            }',
    'groupby' => 'Category.id',
    'tpl' => '@INLINE <p><a href="{$uri}">{$pagetitle}</a></p>',
    ....
]}
Эрадж Шамс
13 июня 2015, 23:34
1
0
Чтобы не вылезало
Код: 200 OK
{"success":false,"message":"ms2_product_autocomplete_err_noquery","total":0,"data":[],"object":[]}
нужно в вашей политике доступа поставить галочку source_view (Видеть источник файлов)