25 дек. 2013 г., 11:06

GetProduct

есть твшка vendor — производитель который селектом вибираеться в товаре take.ms/6vbrg эта твешка забивается вот от сюда take.ms/RIdOb и если мы перейдем на какого производителя то должны увидеть список товаров данного производителя на сайте используется shopkeeper и getproduct как сделать выборку? получается что в параметре tvFilters мы должны прировнять vendor = имя текущего документа он же и есть имя производителя вот пытаюсь сделать выборку так
{assign var=newpar value=[ "parents" => "187", "depth" => "20", "tpl" => "hit", "useSmarty" => true, "includeTVs" => "image,price,hit", "tvFilters" => '{"vendor":взять как то имя текущего документа}' ]} {snippet name=getProducts params=$newpar parse=true}
Подскажите как сделать?
взять как то имя текущего документа
$modx->resource->pagetitle
То есть, если у вас это поиск товаров на этой странице производителя, то работайте с текущим объектом документа $modx->resource. Чтобы увидеть все поля этого объекта, выведите вот так:
<pre> {print_r($modx->resource->toArray())} </pre>
{assign var=newpar value=[ "parents" => "187", "depth" => "20", "tpl" => "hit", "useSmarty" => true, "includeTVs" => "image,price,hit", "tvFilters" => '{"vendor":$modx->resource->pagetitle}' ]} {snippet name=getProducts params=$newpar parse=true}
не работает
Правильно. Потому что у вас программерские ковычки. Попробуйте так:
{assign var=newpar value=[ "parents" => "187", "depth" => "20", "tpl" => "hit", "useSmarty" => true, "includeTVs" => "image,price,hit", "tvFilters" => json_encode(array("vendor" => $modx->resource->pagetitle)) ]} {snippet name=getProducts params=$newpar parse=true}
Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/home/dvershin/rezzzz.com/format/core/components/modxsite/templates/default/tpl/proizvod.tpl" on line 22 " "tvFilters" => json_encode(array("vendor" => $modx->resource->pagetitle))" - Unexpected " => ", expected one of: ")"' in /home/dvershin/rezzzz.com/format/core/model/smarty/sysplugins/smarty_internal_templatecompilerbase.php:423 Stack trace: #0 /home/dvershin/rezzzz.com/format/core/model/smarty/sysplugins/smarty_internal_templateparser.php(2798): Smarty_Internal_TemplateCompilerBase->trigger_template_error() #1 /home/dvershin/rezzzz.com/format/core/model/smarty/sysplugins/smarty_internal_templateparser.php(2863): Smarty_Internal_Templateparser->yy_syntax_error(30, ' => ') #2 /home/dvershin/rezzzz.com/format/core/model/smarty/sysplugins/smarty_internal_smartytemplatecompiler.php(51): Smarty_Internal_Templateparser->doParse(30, ' => ') #3 /home/dvershin/rezzzz.com/format/core/model/ in /home/dvershin/rezzzz.com/format/core/model/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 423
вот ошибку выдает
Кто то поможет???
Только вернулся. Сейчас гляну.
Да, Смарти часто не любит array в чистом виде. Помогает замена на []
{assign var=newpar value=[ "parents" => "187", "depth" => "20", "tpl" => "hit", "useSmarty" => true, "includeTVs" => "image,price,hit", "tvFilters" => json_encode(["vendor" => $modx->resource->pagetitle]) ]} {snippet name=getProducts params=$newpar parse=true}
[«vendor» => $modx->resource->pagetitle]

Добавить комментарий