
mxEditorJs
Блочный редактор Editor.js для MODX 3 — контент блоками вместо TinyMCE/CKEditor
- MODX 3
- PHP 8.2


Схемы сохранения и загрузки контента. Для редакторов: Руководство редактора.
mxEditorJs использует Canonical JSON + HTML snapshot:
modResource.content или textarea TVOnDocFormPrerender подключает CSS/JS и заполняет window.mxEditorJsConfigMODx.loadRTE инициализирует Editor.js на #ta (основной контент) и на textarea.modx-richtext кроме #ta (TV)content/get читает JSON из sidecarcontent/migrate, dry_run)Форма пишет HTML в ресурс или TV, JSON в sidecar. Connector content/save не вызывается.
syncToTextarea, задержка 500 ms): renderPreviewHtml)mxeditorjs_json / mxeditorjs_tv_{id}_jsonhookBeforeSubmit сбрасывает актуальный JSON в скрытые поляOnBeforeDocFormSave → ContentRepository / TvContentRepository.save(JSON)content_version. Пустой blocks: [] обновляет sidecar (очистка редактора стирает JSON).На этом пути серверный HtmlRenderer не вызывается. HTML в textarea собирает клиент.
POST content/save + content_json:
ContentValidatorHtmlRenderer → HTMLmodResource.contentИспользуйте для AJAX или своих интеграций. TV через connector не обновляют modResource.content.
content/migrate?dry_run=1: предпросмотр блоковHtmlMigrator.convert() → sidecar + HtmlRenderer → modResource.contentforce, confirmed: перезапись существующего sidecarПоддерживаются: p, h1–h6, ul/ol, blockquote, img, table, pre/code, hr. Не мигрируются: embed, gallery, attaches, checklist.
| Действие | Connector | Настройки |
|---|---|---|
| Загрузка изображения / галереи | media/upload | image_mediasource, image_upload_path |
| Загрузка вложения | media/uploadFile | file_mediasource, file_upload_path |
| Обзор папок | media/browse | type=image или type=file |
OnResourceDelete удаляет записи в mxeditorjs_content и связанные строки mxeditorjs_tv_content.
| Событие | Назначение |
|---|---|
OnRichTextEditorRegister | Регистрация mxEditorJs в списке RTE |
OnTVInputRenderList | Путь к elements/tv/input/ (обработчик migxmxeditorjs), если mxeditorjs.enabled |
OnDocFormPrerender | Конфиг, ассеты, инициализация |
OnBeforeDocFormSave | Сохранение JSON в sidecar |
OnResourceDelete | Очистка sidecar |