сообственно пытаюсь сделать выборку в shopmodx из каталога самого с id 85 и что то ничего не выводит {assign var=paramss value=[ "limit" => 100 ,"level" => 2 ,"where" => [ "parent" => 85 ]
]}
{processor action="web/catalog/category/products/getdata" params=$paramss ns="modxsite" assign=result}
{* Набиваем через единый шаблон листинга *}
{include file="shop/catalog/list/fetch.tpl"}
print '<pre>'; ini_set('display_errors', 1); $modx->switchContext('web'); $modx->setLogLevel(3); $modx->setLogTarget('HTML'); $namespace = 'modxsite'; if(!$response = $modx->runProcessor('web/catalog/category/products/getdata', array(), array( 'processors_path' => $modx->getObject('modNamespace', $namespace)->getCorePath().'processors/', ))){ print "Не удалось выполнить процессор"; return; } $memory = round(memory_get_usage(true)/1024/1024, 4).' Mb'; print "<div>Memory: {$memory}</div>"; $totalTime= ($modx->getMicroTime() - $modx->startTime); $queryTime= $modx->queryTime; $queryTime= sprintf("%2.4f s", $queryTime); $queries= isset ($modx->executedQueries) ? $modx->executedQueries : 0; $totalTime= sprintf("%2.4f s", $totalTime); $phpTime= $totalTime - $queryTime; $phpTime= sprintf("%2.4f s", $phpTime); print "<div>TotalTime: {$totalTime}</div>";
print_r($response->getResponse()); А ошибка следующая: Array ( [success] =>; [message] => Не была указана категория [total] => 0 [errors] => Array ( )
[object] => Array
(
)
) 3. «level» => 2 Такого параметра в процессоре нет.
простите но все таки не понял — как записать то верно? мне надо выбрать все товары из дочерних от 85 категории
{assign var=paramss value=[ "limit" => 100 ,"category_id" => 85 ]} {processor action="web/catalog/category/products/getdata" params=$paramss ns="modxsite" assign=result} Но если вам просто нужны все товары, то правильней просто получать товары, а не искать их в подкатегориях. {assign var=paramss value=[ "limit" => 100 ]} {processor action="web/catalog/products/getdata" params=$paramss ns="modxsite" assign=result}
День добрый. Мне нужно на странице товара в блоке вывести 4 дочерних товара из 174 категории(это сопутствующие товары). Делаю это так: {assign var=paramss value=[ "limit" => 4 ,"category_id" => 174 ]} {processor action="web/catalog/category/products/getdata" params=$paramss ns="modxsite" assign=result} {include file="shop/products/list/packet.tpl"} В итоге получаю один и именно тот на странице которого нахожусь. Если делаю так: {assign var=params value=[ "where"=>["174"=>$modx->resource->id] ,"current" => true ]} {processor action="web/catalog/products/getdata" ns="modxsite" params=$params assign=result} {if $result.success} {assign var=object value=$result.object} {include file="shop/products/list/packet.tpl"} {/if} То получаю только первый товар в категории 174
Добрый день. Во-первых, дайте листинг шаблона shop/products/list/packet.tpl {assign var=params value=[
"where"=>["174"=>$modx->resource->id]
,"current" => true
]} Во-вторых, "current" => true - это влияет на то, что получить только один объект. Если у вас сопутствующие товары находятся непосредственно в категории 174, а не в каких-то вложенных категориях, то вы можете и использовать процессор web/catalog/category/products/getdata. P.S. Не пишите {assign var=params value=[, это все пережитки прошлого. Пишите просто {$params = [.......
Спасибо за ответ Вот листинг шаблона. 4 возможнвх сопутствующих товара. Название, цена и checkbox для выбора-добавления и снятия с корзины (набросок, еще нужно дописать) <td><a href="{$object.uri}" title="{$object.pagetitle}">{$object.pagetitle}</a></td> {$object.sm_price|number_format:0:".":" "} руб. Да с синтаксисом у меня точно проблемы, книжки нет и практики в PHP мало. Что почитать? А как можно реализовать checkbox для товара, чтоб 2 клика добавить и удалить из корзины?
У вас в этом шаблоне нет перебора foreach, он в принципе не рассчитан на то, чтобы вывести несколько товаров. Пробуйте так: {$paramss = [
"limit" => 4
,"category_id" => 174
]}
{processor action="web/catalog/category/products/getdata" params=$paramss ns="modxsite" assign=result2}
{foreach $result2.object as $object}
{include file="shop/products/list/packet.tpl"}
{/foreach} В итоге получаю один и именно тот на странице которого нахожусь. И сразу говорю, если для вас все это сложно, забросьте ShopModxBox. Мы не учим под него специалистов с нуля. Он рассчитан на более менее опытных программистов.
Спасибо, этот код сработал. Буду работать над ошибками и искать инфу. ShopModxBox занимаюсь меньше месяца, разбираюсь. Поставил себе конкретную задачу, чтобы полный проект, а не тезисы-вершки. Да сложно, ну и что, а вам с чем-то новым всегда легко? Не брошу, т.к. упёртый. Очень редко прошу подсказку, привык сам разбираться, но тут да сложно, связка - PHP, процессоры и Smarty. Не ответите может когда то значит так и надо. Ещё раз благодалю! Помогли!
Пожалуйста. И успехов!
Здравствуйте, подскажите, почему у меня выводятся только товары категории, а из подкатегорий нет?
Может у вас указан параметр parent, а не category_id?