Убрать обертку <p> вокруг img и iframe

Добрый день, может кто сталкивался с данной проблемой, в tinymce rte изображения и видео обрамляются в тег что меня не устраивает. Начал копаться в этом вопросе и нашел решение для обычного tinymce но это решение просто отключало полностью это обрамление (для текста в том числе).
Залез в плагины и начал анализировать код плагинов image и lists так как списки вставляются без обрамления — думал что ни будь найду, но пока все тщетно.
Если кто имел дело с такой задачей подскажите куда копать)
Александр
01 мая 2019, 13:11
modx.pro
1
989
0

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

Александр
01 мая 2019, 13:43
0
Может кому пригодиться мой костыль)
<?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]]`]]
    Николай
    01 мая 2019, 14:24
    0
    А ещё лучше плагин на OnLoadWebDocument

    <?php
    if($modx->event->name = 'OnLoadWebDocument') {
        $content = $modx->resource->content;
        // тут какие-то действия с $content
        // ......
        $modx->resource->set('content', $content);    // заменяем content ресурса на наше значение
    }

    Тогда не надо каждый раз сниппет вызывать.
    $a и $b писать не обязательно. Можно везде $content вместо них. return в моём примере тоже не нужен.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
3