Выполнить сниппет из сниппета
        Доброго всем времени!
Для магазина делаю некоторую доработку, сейчас думаю как можно элегантно решить следующую задачу- есть некий php скрипт, который отрабатывает на ajax запросы.
Скрипт в итоге формирует следующее:
результат записываем как json.
Все круто, все работает, снипет выводит положенные ему данные.
НО, в одном из чанков который отрабатывается есть еще один вложенный снипет такого формата
т.е во фронте видно вот что

Ну собственно решение которое мне приходит в голову -не красивое -тупо пропарсить $out_html, и там где вызов снипета вставить заранее подготовленный вызов этого сниппета, который я могу вызвать в этом же чанке…
Есть ли другие решения?
Благодарю за ответ =)
p.s магазине не на MS, к MS никакого отношения нет.
    
    
                                                                                
            Для магазина делаю некоторую доработку, сейчас думаю как можно элегантно решить следующую задачу- есть некий php скрипт, который отрабатывает на ajax запросы.
Скрипт в итоге формирует следующее:
...
$out_html = $modx->runSnippet('getPage',$properties).'<div class="clear"></div>';
$output['prod_list'] = $out_html;
echo json_encode($output);т.е берет параметры для снипета гетпейдж и его собственно вызывает.результат записываем как json.
Все круто, все работает, снипет выводит положенные ему данные.
НО, в одном из чанков который отрабатывается есть еще один вложенный снипет такого формата
[[!getImages?
						&tvname=`shk.tovar.pics`
						&tpl=`tpl.categoryTovarRow` 
						&docid=`[[+id]]`
						&limit=`1`  					
						&nullPath=`s`
						&userDocPath=`/static/img/` 
                                           
                       
			]]ну и как можно догадаться, он возвращается как текст=)))т.е во фронте видно вот что

Ну собственно решение которое мне приходит в голову -не красивое -тупо пропарсить $out_html, и там где вызов снипета вставить заранее подготовленный вызов этого сниппета, который я могу вызвать в этом же чанке…
Есть ли другие решения?
Благодарю за ответ =)
p.s магазине не на MS, к MS никакого отношения нет.
Комментарии: 3
                Да, нужно парсить самостоятельно.
                    $maxIterations= (integer) $modx->getOption('parser_max_iterations', null, 10);
$modx->getParser()->processElementTags('', $out_html, false, false, '[[', ']]', array(), $maxIterations);
$modx->getParser()->processElementTags('', $out_html, true, true, '[[', ']]', array(), $maxIterations);            
                Спасибо большое за ответ, сработало!
Притом вроде даже производительность не скушало сильно..=)
                    Притом вроде даже производительность не скушало сильно..=)
                Это код из парсера MODX, поэтому разницы и не должно быть.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.