Интеграция
Как включить mxEditorJs в MODX, использовать в TV и выводить контент на сайте.
Включение в менеджере
- Настройки → Системные настройки → найдите which_editor → выберите mxEditorJs.
- Убедитесь, что mxeditorjs.enabled = Да (пространство имён
mxeditorjs). - Откройте ресурс — в поле контента отображается блочный редактор.
Редактор подключается плагином к событию OnDocFormPrerender и инициализируется при появлении поля контента (или TV с richtext). Сохранение обрабатывается при отправке формы редактирования ресурса через Connector API (content/save).
Использование в Template Variables
- Создайте TV типа Текст (многострочный) (textarea).
- В настройках TV включите Использовать визуальный редактор (richtext).
- При
which_editor= mxEditorJs в этом TV будет тот же блочный редактор.
Контент TV хранится в sidecar-таблице mxeditorjs_tv_content в формате Editor.js; при выводе на сайте используется сгенерированный HTML (как и для основного контента).
Вывод на сайте
Контент ресурса (основное поле content) после сохранения в mxEditorJs хранится в двух видах:
- JSON — в sidecar для редактора (при следующем открытии формы подставляется в Editor.js).
- HTML — в
modResource.content(используется при выводе на фронте).
В шаблоне выводите контент как обычно:
[[*content]]{$_modx->resource.content}Дополнительные TV с Editor.js выводятся через плейсхолдеры TV (например [[*my_richtext_tv]] или через Fenom). Рендер JSON → HTML выполняется компонентом при сохранении; на фронте всегда приходит готовый HTML.
Миграция HTML → Editor.js
Если у вас уже есть ресурсы с HTML в поле контента, можно конвертировать их в формат Editor.js.
- Через Connector: действие content/migrate с параметрами
resource_id, при необходимостиdry_run=1(предпросмотр), затемconfirmed=1для перезаписи. - В ответе при
dry_runприходитpreview(блоки) иblocks_count; при успешной миграции —migrated,blocks_count,overwritten.
После миграции при открытии ресурса в менеджере контент отображается в блочном редакторе; на сайте по-прежнему выводится HTML из modResource.content, обновлённый при миграции.
Профили и инструменты
Набор блоков (параграф, заголовок, список, картинка и т.д.) задаётся профилем (mxeditorjs.profile) или списком mxeditorjs.enabled_tools. См. Системные настройки.
Медиа и пресеты
- Загрузка изображений и файлов идёт в Media Source из настроек mxeditorjs.image_mediasource и mxeditorjs.file_mediasource.
- Путь загрузки настраивается в mxeditorjs.image_upload_path (шаблон с
{resource_id}). - CSS-классы для изображений и ссылок задаются в пресетах (mxeditorjs.image_class_presets, mxeditorjs.link_class_presets и др.) — см. Системные настройки.
Что дальше
- API — эндпоинты коннектора, PHP-классы, форматы данных
- Системные настройки — все параметры компонента
