Пользовательская панель приложений CKEditor для Magnolia 5.5.6 Stories
Команда Magnolia написала (DevelopingCustomBlocks), что RichTextFieldDefinition недоступно для блоков.
Я хотел бы использовать контент-редактор в будущем вместо страниц. Можно ли расширить панель редактора с (пользовательскими) плагинами для ckeditor (который я создал для использования с RichTextField)? Если да, не могли бы вы дать мне подсказку, как этого добиться?
1 ответ
Это возможно, и вы даже можете использовать стандарт RichTextField
, Однако, прежде чем приступить к расширению, убедитесь, что вы понимаете идею нового редактора, его работу, структуру данных, которые он хранит, и как эти данные обрабатываются позже, чтобы не вырыть себе дыру, которую было бы трудно избежать с помощью пользовательских расширений.
Весь редактор предназначен для свободного редактирования и очень прост в управлении, предлагая максимум свободы. Редактор работает с концепцией блоков. Каждое нажатие клавиши ввода создает новый блок текста типа. Есть и другие виды блоков, предлагаемые OOTB от Magnolia. Каждый другой тип блока хранится отдельно, и его рендеринг может контролироваться шаблоном. Например, каждый текстовый блок становится абзацем или div в html, в зависимости от вашего выбора. Для других блоков они могут создавать элементы других типов. И здесь вам нужно быть осторожным. Если вы расширяете CK-редактор или начинаете использовать default/old RichTextField
вы внезапно получите блок, который уже содержит html, что делает его непредсказуемым, как будет выглядеть вывод после того, как такой блок обработан вашим шаблоном, и будет ли полученный html действительным или хорошо отформатированным. Чем меньше html вы "запекаете" в каждом блоке, тем легче становится создание шаблонов позже.
Что касается добавления дополнительных плагинов в текстовый блок, вы можете изменить config.js
редактора, как для добавления RichTextField
Вы можете просто создать блок, который будет предоставлять это поле. Однако имейте в виду, что с первым вы рискуете ввести потенциально опасный html, а со вторым - такой же риск запекания в опасном html и с потрясающим опытом редактора, поскольку RTF не будет поддерживать те же сочетания клавиш, которые доступны для других блоков.