Как вырезать html-теги из поля content?

Здравствуйте!
Формирую на странице xml товарный фид с помощью DocLister.
В tpl-чанке выводится поле контент [+content+]

Есть ли какой-либо фильтр вывода строк?
Чтобы вывелось одной строкой без html-тегов?
Что-то наподобие [+content:notags+]

6 комментариев

avatar
PHP вам в помощь.
Пишете сниппет

<?php
$text = 'Параграф. <a hrеф="#fragment" rel=«nofollow»>Ещё текст
';
echo strip_tags($text);
И всё. Ну может понадобится еще чистка. Но это по факту смотреть нужно.
Комментарий отредактирован 2021-07-16 15:13:09 пользователем 3fir
avatar
а в evo нет такого синтаксиса [+content:notags+]?
avatar
Есть. PHx вам в помощь.
Но я предпочитаю без него.

docs.evo.im/04_extras/phx.html
Комментарий отредактирован 2021-07-16 16:34:42 пользователем 3fir
avatar
есть phx, есть модификаторы
Однако их использование крайне не рекомендуется. Тем более, если вы хотите их использовать в DocLiister, то вряд ли они сработают.
В DocLister, однако, есть такая замечательная штука как prepare, которая позволяет обрабатывать данные перед их выводом.
Если вкратце, то это сниппет который получает массив $data каждой конкретной итерации, каким-то образом обрабатывает и из которого нужно вернуть этот самый массив.
В вашем случае создаете сниппет snippetName, в него вставляете
<?php
$data['content_no_nbsp'] = htmlentities($data['content']); //теперь у вас есть плейсхолдер [+content_no_nbsp+]
$data['content_no_tags'] = strip_tags($data['content']); //теперь у вас есть плейсхолдер [+content_no_tags+]
$data['content'] = 'Можно и изменить сам content'; //Можно не создавать новые, можно менять существующие
return $data;

добавляете в вызов &prepare=`snippetName` — смотрите на результат.
avatar
благодарю! а почему нежелательно использовать phx?
Пока сделал вывод через CDATA
avatar
встроенный и мощный модификатор
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.