Добрый день!
Нужна помощь в выводе изображений товаров. Делаю фильтр, который выводит по несколько товаров из каждой категории. Проблема в том, что процессор выводит только фото для тех товаров, которых в категории насчитывается менее 15. Товары вывожу так:
<ul class=" product-grid">
{$params = [
"limit" => 5,
"cache" => 1,
"sort" => "RAND()",
"parent" => 5493
]}
{processor action="web/catalog/products/getdata" ns="modxsite" params=$params assign=item_result}
{foreach $item_result.object as $item}
{$options = "&w=190&h=180"}
{$image = $item.image|default:$item.imageDefault}
{$src = $modx->runSnippet('phpthumbof', [
"input" => $image,
"options" => $options
])}
<li class="isotope-item filter2" >
<div class="product-container">
<div class="product-image">
<a href="{$item.uri}">
<img class="" src="{$src}" alt="{$item.pagetitle|@escape}"></a>
</div>
<div class="product-bottom">
<a class="product-name" href="{$item.uri}">{$item.pagetitle|@escape}</a>
</div>
</div>
</li>
{/foreach}
{$params = [
"limit" => 5,
"cache" => 1,
"sort" => "RAND()",
"parent" => 1203
]}
{processor action="web/catalog/products/getdata" ns="modxsite" params=$params assign=item_result}
{foreach $item_result.object as $item}
{$options = "&w=190&h=180"}
{$image = $item.image|default:$item.imageDefault}
{$src = $modx->runSnippet('phpthumbof', [
"input" => $image,
"options" => $options
])}
<li class="isotope-item filter1" >
<div class="product-container">
<div class="product-image">
<a href="{$item.uri}">
<img class="" src="{$src}" alt="{$item.pagetitle|@escape}"></a>
</div>
<div class="product-bottom">
<a class="product-name" href="{$item.uri}">{$item.pagetitle|@escape}</a>
</div>
</div>
</li>
{/foreach}
{$params = [
"limit" => 5,
"cache" => 1,
"sort" => "RAND()",
"parent" => 2862
]}
{processor action="web/catalog/products/getdata" ns="modxsite" params=$params assign=item_result}
{foreach $item_result.object as $item}
{$options = "&w=190&h=180"}
{$image = $item.image|default:$item.imageDefault}
{$src = $modx->runSnippet('phpthumbof', [
"input" => $image,
"options" => $options
])}
<li class="isotope-item filter3" >
<div class="product-container">
<div class="product-image">
<a href="{$item.uri}">
<img class="" src="{$src}" alt="{$item.pagetitle|@escape}"></a>
</div>
<div class="product-bottom">
<a class="product-name" href="{$item.uri}">{$item.pagetitle|@escape}</a>
</div>
</div>
</li>
{/foreach}
{$params = [
"limit" => 5,
"cache" => 1,
"sort" => "RAND()",
"parent" => 2010
]}
{processor action="web/catalog/products/getdata" ns="modxsite" params=$params assign=item_result}
{foreach $item_result.object as $item}
{$options = "&w=190&h=180"}
{$image = $item.image|default:$item.imageDefault}
{$src = $modx->runSnippet('phpthumbof', [
"input" => $image,
"options" => $options
])}
<li class="isotope-item filter4" >
<div class="product-container">
<div class="product-image">
<a href="{$item.uri}">
<img class="" src="{$src}" alt="{$item.pagetitle|@escape}"></a>
</div>
<div class="product-bottom">
<a class="product-name" href="{$item.uri}">{$item.pagetitle|@escape}</a>
</div>
</div>
</li>
{/foreach}
{$params = [
"limit" => 5,
"cache" => 1,
"sort" => "RAND()",
"parent" => 6473
]}
{processor action="web/catalog/products/getdata" ns="modxsite" params=$params assign=item_result}
{foreach $item_result.object as $item}
{$options = "&w=190&h=180"}
{$image = $item.image|default:$item.imageDefault}
{$src = $modx->runSnippet('phpthumbof', [
"input" => $image,
"options" => $options
])}
<li class="isotope-item filter5" >
<div class="product-container">
<div class="product-image">
<a href="{$item.uri}">
<img class="" src="{$src}" alt="{$item.pagetitle|@escape}"></a>
</div>
<div class="product-bottom">
<a class="product-name" href="{$item.uri}">{$item.pagetitle|@escape}</a>
</div>
</div>
</li>
{/foreach}
</ul>
Помогите разобраться, в чем ошибка. Может это нужно делать другим процессором?
Какая версия shopmodx используется?
2.1.1-beta
тогда нужен этот процессор (в этой версии цены хранятся в другой таблице). Ну или, если цены не нужны, можно использовать стандартный для документов
site/web/resources/getdata
Но написано всё верно, должно работать. картинки точно есть у всех товаров?
P.S.: рекомендую освоить версию 3.1 - она гораздо гораздее
картинки точно есть. Через pdoResources все выводится, но хотелось бы процессором.. Вы имеете ввиду shopmodxbox-3.1.1-beta?
Не совсем верно понял про версию. Если 2.1.1. - это версия именно shopmodx, а не shopmodxbox, то смело можно использовать web/resources/getdata, там цена хранится в самом документе.
web/catalog/products/getdata позволяет при указании category_id собрать товары из этой категории и всех вложенных в неё.
Но в любом случае всё должно работать. Код верный. Кэш почистить не пробовали? (локальный и на сервере)
Версия shopmodx 2.1.1-beta, версия shopmodxbox 2.6.2-beta, плюс еще shopmodxboxpatch 3.1.1-beta. Цена не нужна, нужно фото. Пробовал web/resources/getdata - результат тот же..
кинул в слэк картинку
процессор отрабатывает, но возможно что-то с самими картинками или связано с phpthumbof, проверьте. как вариант - попробуйте для начала выводить картинки напрямую, без обрезки
Все понял! Дело не в процессорах. Спасибо, скриншот все прояснил...
Ешё вариант - сразу после вызова процессора вставить
<pre>{print_r($item_result)}</pre>
на экране выведется raw-ответ процессора, и можно посмотреть, что он реально отдаёт
Ок. Спасибо!
обращайтесь :)