Запуск сниппета в инлайн чанках
        Готовый модификатор для запуска сниппетов в @INLINE чанках.
Сниппет принимает JSON массив с параметрами, главный из них snippetRun — название запускаемого сниппета. Все остальные параметры распарсиваются и передаются непосредственно запускаемому сниппету, попутно заменяя $input плейсхолдером на котором вызывается модификатор, т.е. в данном примере строка
    
    
                                                                                
            $options = str_replace('$input',$input,$options);
$options = json_decode($options,true);
return $modx->runSnippet($options['snippetRun'],$options);Пример вызова:{{+option.sizes:inlineSnippetRun=`{
	"snippetRun":"pdoResources",
	"class":"msSizes",
	"tpl":"@INLINE {{+sizes}}",
	"where":"{\"id:IN\":[$input]}",
	"select":"{\"msSizes\":\"msSizes.size as sizes\"}",
	"sortby":"",
	"limit":1,
	"showLog":0
	}`
}}Как работает?Сниппет принимает JSON массив с параметрами, главный из них snippetRun — название запускаемого сниппета. Все остальные параметры распарсиваются и передаются непосредственно запускаемому сниппету, попутно заменяя $input плейсхолдером на котором вызывается модификатор, т.е. в данном примере строка
"where":"{\"id:IN\":[$input]}",эквивалентна строке"where":"{\"id:IN\":[{{+option.sizes}}]}",Будьте внимательны: JSON не любит отсутствие запятой между элементами, а также я никак не мог передать знак "=" для условия where, решил просто заменить его на «IN».    Комментарии: 5
                Выглядит не очень. Гораздо лучше засунуть это в нормальный чанк.            
                    
                Честно говоря, вообще непонятно зачем так извращаться.            
                    
                ладно вам, я же использую jade, и обычно ни одного чанка в проектах            
                    
                То есть вот этот ужас еще внутри инлайн-чанка, который внутри вызова другого сниппета? Соболезнования тому, кому придется это поддерживать)

            
                    
                в общем — да. это вызов сниппета msCart с подтягиванием заголовков размеров из отдельной таблицы.
В корзине у нас обычно 2-3, ну максимум 15 товаров, тут больше решает наглядность решения, чем скорость работы.
                    В корзине у нас обычно 2-3, ну максимум 15 товаров, тут больше решает наглядность решения, чем скорость работы.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.