CKE5 функция создания контейнера-обертки в модели

Делюсь примером кода, для создания обертки в модели экосистемы CKEditor 5.

Здесь есть несколько нюансов.

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

При регистрации это выглядит так:

Тут, например, регистрируется инлайновый компонент, который резрешено добавлять внутрь параграфов, а в него можно добавлять другие инлайновые элементы, текст.

Во-вторых, нужно помнить что все изменения модели производятся внутри callback функции, передаваемой внутрь метода модели change(). Она получает объект writer, через который вы и совершаете изменения в модели документа.

Мало букафф? Читайте есчо !

Подключение своих стилей для CKEditor 5 в Drupal

Февраль 20, 2024 г.

Чтобы добавить в редактор свои стили, обычно следуют гайду, который реализует hook mymodule_library_info_alter. При создании своих модулей для CKE5/D10, я так же пользовался данной статьей из документации. Но проблема была в том, что тот модуль, ...

Читать

Снимаем обертки в модели CKE5

Март 25, 2025 г.

Продолжаю публиковать сниппеты, связанные с экосистемой CKEditor 5. Сегодня покажу как удалять контейнер с сохранением его содержимого. Api предоставляет функцию writer.unwrap(element). Но беда в том, что функция не заботится о валидности дочерних ...

Читать

Установить фокус ввода в CKE5

Март 23, 2025 г.

При написании плагина столкнулся с тем, что в момент нажатия кнопки в тулзах, редактор терял фокус ввода. Поведение верное, но пользователю не удобно - нужно курсор возвращать на место "вручную". Вернуть фокус можно так: [crayon-68ed648261cac448669317/] ...

Читать

Wysiwyg для Drupal 7

Июнь 8, 2011 г.

Аналогичная статья у меня была для 6й версии. Особых проблем для семерки нет, но для тех, кому некогда думать, а надо "просто сделать", данное руководство. ...

Читать
 

Комментарии к «CKE5 функция создания контейнера-обертки в модели»

Понравилась статья? Есть вопросы? - пишите в комментариях.



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