Как спарсить переменную от чанков и сниппетов

Если в двух словах: то нужно переменную обрабатывать каким то парсером что бы заменялись все вложенные сниппеты и чанки и вернулась уже отпарсенная строка. Очень хочется сделать это штатными методами если они есть.

Если не в двух: В общем фишка такая. Имеется поле контент в ресурсе, это поле постится при сохранении ресурса в соц сеть с помощью плагина. Этот контент-поле ни чем не обрабатывается, а постится как есть. А там может лежать все подряд и html и сниппеты и чанки, если постить так как есть в соц сетях будет всякий мусор в виде сниппетов и чанков. Они там не нужны. Так вот мне как то программно нужно обработать весь вложенный мусор. Я в принципе могу обработку всего вложенного написать, но это реально будут километры кода, а это не нужного. Я думал есть какой встроенный парсер который парсит все поля. Ему ведь можно как то передать это все дело получить результат и обрадоваться. Или такого метода в принципе нет и стоит подумать о том что бы просто выдрать все чанки и сниппеты регулярным выражением и забыть как страшный сон? Или все таки можно?
Павел Карелин
22 января 2016, 02:35
modx.pro
4
1 185
+2

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

Сергей Шлоков
22 января 2016, 10:35
+2
Если уж вдруг контент-менеджер решил вставить чанк или сниппет в текст статьи, то наверно лучше все же их распарсить, чем вырезать. Имхо.
// Код для плагина сохранения ресурса
$content = $resource->get('content');
$maxIterations= (integer) $modx->getOption('parser_max_iterations', null, 10);
$modx->getParser()->processElementTags('', $content, false, false, '[[', ']]', array(), $maxIterations);
$modx->getParser()->processElementTags('', $content, true, true, '[[', ']]', array(), $maxIterations);
    Павел Карелин
    22 января 2016, 10:40
    +1
    Дай тебе бог здоровья. Что бы я без тебя делал бы золотой ты мооооой :))
      Сергей Шлоков
      22 января 2016, 10:45
      0
      Только не забудь выполнять этот код только при создании статьи
      if ($mode == 'new') {
          // Код для постинга
      }
      П.С. Ответы находятся быстрее, если научится пользоваться поиском. ;)
    Павел Карелин
    22 января 2016, 10:47
    +1
    Да дело в том что я искал уже по всякому и нашел уже этот класс с кучей методов, а как к нему подойти ни фига не понял. Да я буду просто туда контент пулять, ну то есть будет проверка не на создание, а просто проверка на строку). Сейчас только разберусь как это все лиходейство работает.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4