Вывод сниппета из чанка другого сниппета через Ajax

Всем привет!

Подскажите, пожалуйста, мб кто-то сталкивался или просто знает решение: есть такой сниппет, который при клике на определенный элемент выводит pdoResources с заданными параметрами
<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}

$action = filter_input(INPUT_POST,'action');

if (empty($action)) {return;}

$res = '';
switch ($action) {
  case 'pdoResources': 
    $params = array();
    $params['parents'] = filter_input(INPUT_POST, 'parents', FILTER_SANITIZE_NUMBER_INT);
    $params['resources'] = filter_input(INPUT_POST, 'resources', FILTER_SANITIZE_NUMBER_INT);
    $params['tpl'] = filter_input(INPUT_POST,'tpl');
    $params['includeTVs'] = filter_input(INPUT_POST,'includeTVs');
    $res = $modx->runSnippet('pdoResources', $params);
    break;
}

if (!empty($res)) {
  die($res);
}
JS выглядит так
<script>
$('.trigger').on('click', function() {
     var data = {
        action: 'pdoResources',
        parents: '25',
        resources: objectId,
        tpl: 'tpl.mapObjectsItem',
        includeTVs: 'objectStatus'
    };

    $.post('/ajax/', data, function(data) {
        $('.current-object').empty().prepend(data);
    })
});
</script>
В чанке tpl.mapObjectsItem подгружается ms2Gallery
...
[[!ms2Gallery?
    &resources = `[[+id]]`
    &tpl = `tpl.ms2GalleryCatalog`
    &frontend_css = ``
    &frontend_js = ``
]]
...
Все было бы замечательно, если бы не одно НО — когда на страницу при клике загружается нужный ресурс, вместо того, чтобы выполнить сниппет ms2Gallery, он выводится в виде текста, т.е. так
[[!ms2Gallery? &resources = `61` &tpl = `tpl.ms2GalleryCatalog` &frontend_css = `` &frontend_js = `` ]]
Евгений
26 сентября 2018, 16:56
modx.pro
1
1 136
0

Комментарии: 1

Евгений
27 сентября 2018, 14:07
+1
Решение найдено:
<?php
...
    $res = $modx->runSnippet('pdoResources', $params);
    // Добавляем следующие 3 строки:
        $maxIterations= (integer) $modx->getOption('parser_max_iterations', null, 10);
        $modx->getParser()->processElementTags('', $res, false, false, '[[', ']]', array(), $maxIterations);
        $modx->getParser()->processElementTags('', $res, true, true, '[[', ']]', array(), $maxIterations);
...
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1