nirfrost 25 декабря 2013 1 9
есть твшка 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}


Подскажите как сделать?
9 комментариев
Fi1osof1
Fi1osof 25 декабря 2013г в 17:59 #
взять как то имя текущего документа
$modx->resource->pagetitle
Fi1osof1
Fi1osof 25 декабря 2013г в 18:01 #
То есть, если у вас это поиск товаров на этой странице производителя, то работайте с текущим объектом документа $modx->resource.
Чтобы увидеть все поля этого объекта, выведите вот так:
<pre>
{print_r($modx->resource->toArray())}
</pre>
n
nirfrost 25 декабря 2013г в 18:03 #
{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}


не работает
Fi1osof1
Fi1osof 25 декабря 2013г в 18:13 #
Правильно. Потому что у вас программерские ковычки. Попробуйте так:
{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}
n
nirfrost 25 декабря 2013г в 18:28 #
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


вот ошибку выдает
Fi1osof1
Fi1osof 26 декабря 2013г в 00:04 #
Да, Смарти часто не любит 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]
n
nirfrost 25 декабря 2013г в 22:55 #
Кто то поможет???
Fi1osof1
Fi1osof 25 декабря 2013г в 23:15 #
Только вернулся. Сейчас гляну.
Fi1osof1
Fi1osof 26 декабря 2013г в 00:05 #
Ответил выше.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.