Убрать обертку <p> вокруг img и iframe
Добрый день, может кто сталкивался с данной проблемой, в tinymce rte изображения и видео обрамляются в тег что меня не устраивает. Начал копаться в этом вопросе и нашел решение для обычного tinymce но это решение просто отключало полностью это обрамление (для текста в том числе).
Залез в плагины и начал анализировать код плагинов image и lists так как списки вставляются без обрамления — думал что ни будь найду, но пока все тщетно.
Если кто имел дело с такой задачей подскажите куда копать)
Залез в плагины и начал анализировать код плагинов image и lists так как списки вставляются без обрамления — думал что ни будь найду, но пока все тщетно.
Если кто имел дело с такой задачей подскажите куда копать)
Комментарии: 3
Может кому пригодиться мой костыль)
<?php
$a = preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
$b = preg_replace('/<p>\s*(<iframe.*>*.<\/iframe>)\s*<\/p>/iU', '\1', $a);
return $b;
[[Preplace? &content=`[[*content]]`]]
А ещё лучше плагин на OnLoadWebDocument
Тогда не надо каждый раз сниппет вызывать.
$a и $b писать не обязательно. Можно везде $content вместо них. return в моём примере тоже не нужен.
<?php
if($modx->event->name = 'OnLoadWebDocument') {
$content = $modx->resource->content;
// тут какие-то действия с $content
// ......
$modx->resource->set('content', $content); // заменяем content ресурса на наше значение
}
Тогда не надо каждый раз сниппет вызывать.
$a и $b писать не обязательно. Можно везде $content вместо них. return в моём примере тоже не нужен.
Спасибо, попробую)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.