Инициализация идет в плагине modxSmarty (только не файл надо править, а сам плагин. А еще правильней — делать копию этого плагина и в нем уже делать правки, а оригинальный плагин просто отключить). Но это все неправильно делать. Родная кодировка для MODX-а — utf-8. Вам надо следить за тем, чтобы весь сайт именно в этой кодировке и работал. База данных должна быть в кодировке utf8_general_ci. И прочие моменты проверять, в том числе и то, чтобы сохранялась правильная кодировка если вы вдруг редактируете файлы сторонним редактором. Та заметка написана в 2010-ом году. Сейчас только самые отчаянные будут сайты на ср1251 и т.п. делать, тем более что все ядро MODX-а на utf-8 написано.
нашел тему wmas.msk.ru/archives/smarty-3-charset Там говорится о том что можно прописать кодировку для смарти до его первой инициализации… подскажите где у вас идет первая инициализация smarty? Где лучше вставить?
Да, Смарти часто не любит 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]
Только вернулся. Сейчас гляну.
Кто то поможет???
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
вот ошибку выдает
Правильно. Потому что у вас программерские ковычки. Попробуйте так:
{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}
{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}
не работает
То есть, если у вас это поиск товаров на этой странице производителя, то работайте с текущим объектом документа $modx->resource. Чтобы увидеть все поля этого объекта, выведите вот так:
<pre> {print_r($modx->resource->toArray())} </pre>