Как спарсить переменную от чанков и сниппетов
Если в двух словах: то нужно переменную обрабатывать каким то парсером что бы заменялись все вложенные сниппеты и чанки и вернулась уже отпарсенная строка. Очень хочется сделать это штатными методами если они есть.
Если не в двух: В общем фишка такая. Имеется поле контент в ресурсе, это поле постится при сохранении ресурса в соц сеть с помощью плагина. Этот контент-поле ни чем не обрабатывается, а постится как есть. А там может лежать все подряд и html и сниппеты и чанки, если постить так как есть в соц сетях будет всякий мусор в виде сниппетов и чанков. Они там не нужны. Так вот мне как то программно нужно обработать весь вложенный мусор. Я в принципе могу обработку всего вложенного написать, но это реально будут километры кода, а это не нужного. Я думал есть какой встроенный парсер который парсит все поля. Ему ведь можно как то передать это все дело получить результат и обрадоваться. Или такого метода в принципе нет и стоит подумать о том что бы просто выдрать все чанки и сниппеты регулярным выражением и забыть как страшный сон? Или все таки можно?
Если не в двух: В общем фишка такая. Имеется поле контент в ресурсе, это поле постится при сохранении ресурса в соц сеть с помощью плагина. Этот контент-поле ни чем не обрабатывается, а постится как есть. А там может лежать все подряд и html и сниппеты и чанки, если постить так как есть в соц сетях будет всякий мусор в виде сниппетов и чанков. Они там не нужны. Так вот мне как то программно нужно обработать весь вложенный мусор. Я в принципе могу обработку всего вложенного написать, но это реально будут километры кода, а это не нужного. Я думал есть какой встроенный парсер который парсит все поля. Ему ведь можно как то передать это все дело получить результат и обрадоваться. Или такого метода в принципе нет и стоит подумать о том что бы просто выдрать все чанки и сниппеты регулярным выражением и забыть как страшный сон? Или все таки можно?
Комментарии: 4
Если уж вдруг контент-менеджер решил вставить чанк или сниппет в текст статьи, то наверно лучше все же их распарсить, чем вырезать. Имхо.
// Код для плагина сохранения ресурса
$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);
Дай тебе бог здоровья. Что бы я без тебя делал бы золотой ты мооооой :))
Только не забудь выполнять этот код только при создании статьи
if ($mode == 'new') {
// Код для постинга
}
П.С. Ответы находятся быстрее, если научится пользоваться поиском. ;)
Да дело в том что я искал уже по всякому и нашел уже этот класс с кучей методов, а как к нему подойти ни фига не понял. Да я буду просто туда контент пулять, ну то есть будет проверка не на создание, а просто проверка на строку). Сейчас только разберусь как это все лиходейство работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.