использование шаблонизатора modx в своих целях

Здравствуйте. Возможно я не верно выразился в топике, не знаю как коротко и ясно сформулировать задачу, которая встала передо мной. А суть в чем, в modx есть такая замечательная штучка, как:
$foo = $modx->getChunk('tpl.name', array('param1' => 'value1', 'param2' => 'value2')
По итогу modx возьмет чанк tpl.name, подменит в нем все [[+param1]] на value1 и [[+param2]] на value2, и весь результат в виде верстки запишется в $foo
А есть ли возможность средствами modx сделать то же самое, но только не с чанком? что то типа
$foo = $modx->?func($html, array('param1' => 'value1', 'param2' => 'value2'))
где $html это верстка, выбранная из базы, внутри которой проставлены плейсхолдеры [[+param1]] и [[+param2]], а ?funct это какая то функция модх, которая выполнит замену, и не просто замену, а еще и выполнит сниппеты, которые там найдет. Такое вообще возможно на modx? Я конечно понимаю что могу воспользоваться preg_replace, но если есть возможность штатными средствами это сделать то было бы лучше. Почему мне тогда не хранить в чарках верстку, а не в отдельной таблице? Даже если опустить удобство работы с данными, количество чанков уже будет более 4000, а в последствии ожидается и 40 000 и 400 000 и одному богу известно сколько будет записей в итоге :)
Николай
24 октября 2016, 18:21
modx.pro
842
0

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

Дмитрий Меркурьев
25 октября 2016, 00:20
+1
Попробуйте посмотреть в эту сторону:
$chunk = $modx->newObject('modChunk');
$chunk->setCacheable(false);
$chunk->setContent($string);
$output = $chunk->process($options);
    Николай
    27 ноября 2016, 15:25
    0
    Не обрабатываются сниппеты. При чем даже если взять чанк и попробовать отдать его все равно фигня.
    s7535.h7.modhost.pro/
    Я или что то совсем не то делаю, или где то туплю. Даже если заменить
    $modx->getChunk("tpl.one");
    На создание чанка из обьекта — все равно не будет обрабатываться в чанке сниппет. Так и будет возвращаться [[!test_snippet? &id=`id`]]
      Николай
      27 ноября 2016, 16:03
      0
      Вся проблема похоже в аяксе, а это уже другой вопрос.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3