
- MODX 3
- PHP 8.2


How to write content in the MODX manager. Tool profiles and media: System settings.
which_editor = mxEditorJsmxeditorjs.enabled = YesEditor did not load: FAQ.
A MIGX column with "inputTVtype": "richtext" uses the same which_editor. The value is HTML in the row JSON, not a sidecar.
Add block: Enter at the end of a block or «+» on the left.
Move: ⋮⋮ handle on the left, drag.
Delete: ⋮⋮ → Delete.
Formatting: select text: B, I, Link, Code, Marker, U.
| Block | Purpose |
|---|---|
| Paragraph | Body text, alignment |
| Header | Headings H2–H5 |
| List | Bulleted or numbered list |
| Checklist | Checkbox list |
| Quote | Quote with caption |
| Table | Table, first row can be header |
| Code | Code block |
| Raw HTML | Arbitrary HTML |
| Delimiter | Horizontal rule |
| Warning | Warning title and text |
| Attaches | Downloadable file (PDF, DOC, ZIP) |
| Image | Single image with caption |
| Gallery | Multiple images, fit or slider modes |
| mxGallery | mxGallery media or collection (toolbox only if the package is installed) |
| Embed | Video and iframe (paste URL) |
The admin sets the block list via a profile (default, minimal, blog, full) or mxeditorjs.enabled_tools.
After insert: caption, border, stretch, background, CSS preset (if configured).
Formats: JPG, JPEG, PNG, GIF, WebP, SVG. Default max size 5 MB (mxeditorjs.max_upload_size).
Image limit: mxeditorjs.gallery_max_count (0 = no limit).
There is no separate Embed button. Paste a URL into an empty block (Ctrl+V / Cmd+V). The editor creates the block.
buildTools() enables six services: YouTube, Vimeo, Twitter/X, Instagram, CodePen, RuTube. The rest of the @editorjs/embed defaults are off. A new service needs a change in mxeditorjs.ts. Site output is an iframe.
Works in Textarea TVs with Rich Text = Yes.
Each TV has its own editor instance and JSON storage. HTML auto-migration for TVs does not run.
| Button | Action |
|---|---|
| Fullscreen | Editor full screen (F11, Escape to exit) |
| Source | HTML preview (Ctrl+U / Cmd+U), read-only |
If the resource has HTML from TinyMCE/CKEditor but no JSON in sidecar, a dialog appears on first open:
The migrator handles headings, paragraphs, lists, quotes, images, tables, code, delimiters. It does not restore embed, gallery, attachments, or checklists from HTML.
Migration applies to main content only, not TVs. Details: Integration.
| Key | Action |
|---|---|
| Enter | New block |
| Backspace in empty block | Delete block |
| Tab / Shift+Tab | List nesting |
| Ctrl+B / Cmd+B | Bold |
| Ctrl+I / Cmd+I | Italic |
| Ctrl+K / Cmd+K | Link |
| Ctrl+Z / Cmd+Z | Undo |
| Ctrl+Shift+Z / Cmd+Shift+Z | Redo |
| Ctrl+U / Cmd+U | Source Preview |
| F11 | Fullscreen |
| Escape | Exit fullscreen |