есть твшка 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]
Ответил выше.