msproducts вывести товары из TV списка

Есть статья
к ней прилеплен TV (множественный список) в котором можно выбрать товары
@SELECT pagetitle, pagetitle FROM srtm_site_content WHERE template=10
товары выбираются нормально в список

а вот вывести их не получается :(

[[!msProducts?&tpl=`gridProductTpl`&limit=`4`&parents=`10`]] вот так пока выводятся просто из каталога
подскажите как сделать это?

пробую вывести так
[[getMyResources? &input=`[[*TovarRelated]]` &tpl=`gridProductTpl`]]


getMyResources
<?php
if (empty($input)) { return 'Без категории'; }
$tpl = $modx->getOption('tpl',$scriptProperties,'resourceTpl');
if ($modx->getChunk($tpl) == '') { return 'We found some related pages, but don\'t know how to present it.'; }
$ids = explode('||', $input);
$output = array();
foreach ($ids as $key => $value) {
  $resource = $modx->getObject('modResource',array(
    'published' => 1,
    'pagetitle' => $value));
 if ($resource instanceof modResource) {
    $ta = $resource->toArray();
    $tvs = $resource->getTemplateVars();
    foreach ($tvs as $tv) {
       $ta[$tv->get('name')] = $tv->get('value');
    }
    $output[] = $modx->getChunk($tpl,$ta);
  }
}
return implode('',$output);
Евгений
13 апреля 2019, 19:44
modx.pro
653
0

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

Павел Романов
14 апреля 2019, 12:22
+1
Проверьте вывод [[*TovarRelated]] на странице статьи — там pagetitle товаров выводятся слитно, а не через разделитель ||, который Вы используете в getMyResources на пятой строке.
Укажите у этой TV тип вывода «Разделитель», поставьте в качестве него запятую и используйте ее в explode.

Но вообще все можно упростить. Сниппет getrel:
<?php
$titles = explode(',', $input);
$ids = array();
foreach($titles as $title){
    if(!$prod = $modx->getObject('modResource', array('pagetitle' => $title))) continue;
    $ids[] = $prod->get('id');
}
count($ids) > 0 ? $out = implode(',', $ids) : $out = 9999999;
return $out;

Вызов в шаблоне статьи:

[[msProducts?
&tpl=`gridProductTpl`
&limit=`4`
&parents=`10`
&resources=`[[*TovarRelated:getrel]]`
]]
    Евгений
    14 апреля 2019, 22:52
    0
    спасибо большое и точно сработало :)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2