CKeditor подрезает код

Главные вкладки

Аватар пользователя xSPiRiTx xSPiRiTx 8 декабря 2022 в 8:37

Приветствую.
Drupal 9, CKeditor из ядра.
Еще с семёрки преследовала эта проблема. CKEditor даже в режиме Full HTML подрезает фрагменты кода. Например, с Font Awesome.
Нажимаю в редакторе "Источник", в код вставляю
<i class='fab fa-facebook-f'>
Если сохранить, то всё хорошо. Но стоит перейти в редактирование ноды или даже просто нажать туда-сюда кнопку "Источник" - ckeditor этот фрагмент кода удаляет.
Кто-нибудь сталкивался? Побеждал проблему?

Комментарии

Аватар пользователя ivnish ivnish 8 декабря 2022 в 8:44
1

Да, это известная проблема. В семерке она решалась добавлением параметра

config.allowedContent = true;

Для Drupal 9+ этот параметр тоже работает, но нужно использовать дополнительные модули типа ckeditor_config

Аватар пользователя xSPiRiTx xSPiRiTx 8 декабря 2022 в 9:19

я ядреном модуле CKEditor нет таких настроек как разрешенные или запрещенные теги. По крайней мере не нахожу их

Аватар пользователя marassa marassa 8 декабря 2022 в 10:01

xSPiRiTx wrote: в код вставляю
<i class='fab fa-facebook-f>

Так у Вас код битый: кавычка открывается и не закрывается. Наверняка Correct faulty and chopped off HTML срабатывает. Или отключите эту настройку, или уж пишите корректный код.

Аватар пользователя xSPiRiTx xSPiRiTx 8 декабря 2022 в 10:43

это скопировано по первой попавшейся ссылке. В реальном проекте код не битый.
К тому же отключение настройки с исправлением битого кода не даёт результатов.

Аватар пользователя gun_dose gun_dose 8 декабря 2022 в 10:18

Проблема в том, что вы вставляете пустой тэг, а CKEditor пустые тэги удаляет, независимо от никаких настроек. Но выход довольно прост:

<i class="fa fa-facebook-f">&nbsp;</i>
Аватар пользователя gun_dose gun_dose 8 декабря 2022 в 12:05

А вот это уже какая-то странная настройка преобразовывать i в em. Наверное b в strong тоже переделывает. В разрешённых тэгах есть?

Аватар пользователя xSPiRiTx xSPiRiTx 8 декабря 2022 в 12:18

в ядреном модуле CKEditor нет таких настроек как разрешенные или запрещенные теги. По крайней мере не нахожу их

Аватар пользователя marassa marassa 8 декабря 2022 в 16:56

В настройках поле с допустимыми тегами даже не появляется если не поставить крыж на Limit allowed HTML tags and correct faulty HTML. В формате Full HTML по умолчанию этот крыж не стоит, на то он и Full. Значит по идее все теги должны проходить?

Аватар пользователя marassa marassa 8 декабря 2022 в 17:03

Я попробовал на своем сайте - при формате Full HTML ничего подобного не происходит, код остается в неизменном виде, сколько ни нажимай на Source. А вот в формате Basic HTML происходит именно так, как Вы описали. Надо смотреть настройки Full HTML, возможно там что-то сломано.

Аватар пользователя xSPiRiTx xSPiRiTx 9 декабря 2022 в 9:07

У меня эта проблема до сих пор еще с восьмерки. Там тоже самое было, не решил и забил на это дело. Сейчас столкнулся снова.
Кстати, пока гуглил нарывался здесь на форуме на такую же тему. Так же ответчики не понимали почему у автора топика не работает. Там тоже решения не нашел.
Вот скрин настроек.

Аватар пользователя xSPiRiTx xSPiRiTx 9 декабря 2022 в 12:59

Модуль CKEditor 4, который из коробки в девятке вообще только что отвалился после обновления ядра. Попробую экспериментальную версию 5
Удалил и установил ckeditor 4, который шел из коробки. Заработал.

Аватар пользователя xSPiRiTx xSPiRiTx 9 декабря 2022 в 15:47

Не знаю кто пометил "лучший ответ" и тема выглядит будто решена. Это не так.
Редактор всё так же режет код. А постом выше имел ввиду, что после обновления друпала у меня начали появляться белые страницы с ошибками. В логах ругалось на ckeditor. Его переустановил и ошибки ушли. Только это. А суть этой темы всё равно осталась прежней.

Аватар пользователя xSPiRiTx xSPiRiTx 20 декабря 2022 в 13:54

С обновление друпала до 9.5.0 и переходом на CKEditor 5 проблема почти ушла. Он теперь не режет код font awesome, а обрамляет его тэгами