davix / module-editor-config
Davix Editor: choose TinyMCE 7 or HugeRTE as Magento's WYSIWYG editor and configure plugins, toolbar, fonts, style formats and external plugins from Stores > Configuration. Magento 2.4.5+.
Package info
bitbucket.org/dava-code-studio/davix_editorconfig/
Type:magento2-module
pkg:composer/davix/module-editor-config
Requires
- php: ~8.1.0||~8.2.0||~8.3.0||~8.4.0||~8.5.0
- magento/framework: >=103.0.5
- magento/module-cms: *
- magento/module-config: *
- magento/module-csp: *
- magento/module-store: *
- magento/module-ui: *
- magento/module-variable: *
- magento/module-widget: *
Requires (Dev)
None
Suggests
- magento/module-page-builder: Inline (on-stage) Page Builder editing is only available with Magento's built-in editor
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-11-11 06:07:37 UTC
README
Davix Editor (Davix_EditorConfig) puts Magento's WYSIWYG editor under your control. Choose the editor that runs
in the admin (Magento's own, TinyMCE 7 or HugeRTE), then set its plugins, toolbar, fonts, colours and formats from
the admin. It also adds a pack of content plugins built for Magento, self-hosted fonts and typography controls
for the Page Builder Heading.
Key Features
- Choose the editor. Keep Magento's built-in editor, or switch to TinyMCE 7 (jsDelivr, Tiny Cloud or self-hosted) or HugeRTE (bundled) on any Magento 2.4.5+ version. If the chosen editor can't load, Magento's own editor is used and an admin message explains why, so admins are never left without an editor.
- Knows what Magento ships. Adobe changed the built-in editor inside patch releases. The module reads the editor Magento actually loads, translates toolbar names between versions and never loads a plugin the running editor doesn't have.
- Plugins and toolbar. Every usable open-source plugin for the running editor, plus third-party plugins by URL. Extend Magento's toolbar or replace it, choose the menu bar and overflow behaviour.
- Davix plugin pack. Video embeds, call-to-action buttons, callout boxes, columns, a table of contents, Font Awesome icons and an FAQ accordion. They work on every editor, and their output is plain HTML styled by a small stylesheet.
- Fonts. Google Fonts, Bunny Fonts (GDPR-friendly), Adobe Fonts, Font Awesome, and your own font files dropped into a folder. Fonts load in the editor, on the Page Builder stage and on the storefront.
- Brand control. A brand colour palette (optionally the only colours allowed), your theme's CSS classes as formats, block formats, font sizes and line heights.
- Page Builder Heading typography. Font, size and colour on the Heading's on-stage toolbar and in its settings panel, saved as inline styles.
- Safe HTML. Embeds are only allowed over https from hosts you list, both by Magento's HTML validator and the Content Security Policy. Pasted base64 images can be blocked.
Editor Engines
| Choice | What happens |
|---|---|
| Magento built-in | Nothing is swapped; only your settings are applied |
| HugeRTE | HugeRTE 1.0.14, bundled in the module (MIT). On 2.4.9+ Magento's own HugeRTE is used |
| TinyMCE 7 | Loaded from jsDelivr (pinned version, default), Tiny Cloud (API key) or your own copy |
Magento's built-in editor by release (checked against every release tag from 2.4.5 to 2.4.9):
| Built-in editor | Magento releases |
|---|---|
| TinyMCE 5 | 2.4.5 - 2.4.5-p9, 2.4.6 - 2.4.6-p7, 2.4.7 - 2.4.7-p2 |
| TinyMCE 7 | 2.4.5-p10, 2.4.6-p8, 2.4.7-p3 |
| TinyMCE 6 | 2.4.5-p11+, 2.4.6-p9 - p12, 2.4.7-p4 - p7, 2.4.8 - 2.4.8-p2 |
| HugeRTE | 2.4.6-p13+, 2.4.7-p8+, 2.4.8-p3+, 2.4.9+ |
TinyMCE 7 is GPL-licensed, so it isn't bundled. To self-host it (no external dependency, recommended for production):
npm pack tinymce@7.9.3 && tar -xzf tinymce-7.9.3.tgz
mkdir -p pub/js && mv package pub/js/tinymce7
Then set TinyMCE 7 Source to Self-hosted and the URL to /js/tinymce7/tinymce.min.js. Keep TinyMCE's
plugins, skins, themes, models and icons folders next to it.
Davix Plugins
| Plugin | What it does |
|---|---|
| Video Embed | Responsive YouTube and Vimeo embeds from any watch, share, Shorts or embed link, with start time, shape and maximum width. Privacy mode (default) uses youtube-nocookie.com and Vimeo "do not track". In the admin, click a video to select it, then edit or remove it from its pop-up toolbar |
| Call-to-Action Button | Links styled as buttons with your theme's classes (Luma/Blank by default, Hyvä classes configurable). Accepts {{store url='...'}} links. Click a button for its Edit / Remove pop-up |
| Callout Box | Info, success, warning and error boxes using your store's message classes |
| Columns | 2, 3 and 4 columns and 2/3 + 1/3 splits, stacking on mobile. Change or remove the layout without losing content |
| Table of Contents | A linked contents list from H2-H4 headings, with anchor ids added automatically |
| Icons | Font Awesome icon picker: about 100 shop icons (delivery, payment, trust, social) or any icon by name |
| FAQ Accordion | Question/answer sections. TinyMCE 5 only; newer editors have a built-in Accordion |
All output uses davix-* classes styled by view/base/web/css/davix-content.css (about 3 KB, zero
specificity, so your theme always wins).
Custom Fonts
Upload each font to its own folder in pub/dx-fonts/, or in pub/media/dx-fonts/ if your server only serves
files from pub/media. Both are checked; if a folder name is in both, pub/dx-fonts wins.
pub/dx-fonts/bulevar/Bulevar-Regular.otf
pub/dx-fonts/bulevar/Bulevar-Poster.otf
pub/dx-fonts/bulevar/font.json optional
Then select the fonts under Fonts > Custom Fonts and click Save Config.
- Names. The folder name becomes the font name (
bulevaris "Bulevar"). Other words in a file name make a separate font, soBulevar-Poster.otfis "Bulevar Poster". - Weights and italics. These are read from the file names: Thin, Light, Regular, Medium, SemiBold, Bold,
Black, a number such as
700, and Italic. "Variable" or "VF" means a variable font. - Formats and kits. .woff2, .woff, .ttf and .otf are supported. A webfont kit with its own
stylesheet.cssworks as it is. - font.json. Sets the exact name, fallback or per-file details, for example
{"family": "BULEVAR", "fallback": "serif"}.setup:upgradeputs a commentedfont.json.exampleand a README in the folder.
Check that each font's licence allows web use. Desktop-only licences usually don't.
Where to Find It
| Place | What it does |
|---|---|
| Editor toolbar | Your toolbar, fonts, colours and the Davix plugin buttons, wherever Magento uses WYSIWYG (CMS pages and blocks, products, categories, widgets, Page Builder text) |
| Page Builder > Heading | Font, size, colour and a clear-formatting button on the Heading's toolbar; a Typography section in its settings |
| Admin notifications | A message when the chosen editor can't load and Magento's own is used instead |
Configuration
Stores > Settings > Configuration > Davix > Editor
| Group | Controls |
|---|---|
| General | Status panel (Magento version, built-in and running editor, pre-check), Enable, Editor Engine, TinyMCE 7 source, version, API key, URL and licence key |
| Toolbar & Menus | Extend or replace Magento's toolbar, buttons, overflow behaviour, menu bar |
| Editor Plugins | Open-source plugins for the running editor, CMS blocks for the Templates plugin, external plugins (name=url) |
| Davix Plugins | Which Davix plugins to use, storefront styles; Video (privacy mode, allowed embed hosts); Button and Callout styles |
| Fonts | Always show font controls, load fonts on the storefront; Font Lists & Sizes; Web Fonts (Google, Bunny, Adobe); Custom Fonts; Font Awesome |
| Formats & Colours | Block formats, custom style formats (Label=element.class), brand colour palette, allow custom colours |
| Content Stylesheets | Extra stylesheets loaded in the editor, optionally on the storefront |
| Editor Behaviour | Minimum height, status bar, browser spellcheck, paste as plain text, block pasted images |
| Advanced | Any other editor option as JSON. selector, setup, target and adapter are ignored |
Settings are stored under cms/davix_editor/*. The old location (Content Management) shows a link to the new
page.
Permissions
System > Permissions > User Roles > Role Resources > Stores > Settings > Configuration > Davix Editor
| Resource | Allows |
|---|---|
| Davix Editor | View and change the editor settings. Existing roles other than full administrators must be granted it |
Installation
Option 1: Composer (recommended)
composer require davix/module-editor-config
bin/magento module:enable Davix_EditorConfig
bin/magento setup:upgrade
bin/magento cache:flush
Option 2: Manual
- Copy the module to
app/code/Davix/EditorConfig. - Run:
bin/magento module:enable Davix_EditorConfig bin/magento setup:upgrade bin/magento cache:flush
In production mode also run bin/magento setup:di:compile and bin/magento setup:static-content:deploy.
setup:upgrade runs a pre-check every time, including after a Magento upgrade. It stops on Magento older than
2.4.5, records the Magento version and editors in use, warns when the chosen editor can't load or Magento has
changed its built-in editor, and creates the custom fonts folder.
Compatibility & Requirements
- PHP: 8.1, 8.2, 8.3, 8.4, 8.5
- Magento Open Source / Adobe Commerce: 2.4.5 and later
- Page Builder is optional. The Heading typography controls activate when it's installed.
- TinyMCE 7 needs an internet connection (jsDelivr or Tiny Cloud) unless you self-host it.
Uninstall
bin/magento module:disable Davix_EditorConfig
bin/magento setup:upgrade
Then remove the module (composer remove davix/module-editor-config, or delete app/code/Davix/EditorConfig).
The module has no database tables. To remove its settings too, delete the cms/davix_editor/% rows from
core_config_data and the davix_editor_environment row from flag. Content you created keeps its HTML. Without
the module, the davix-* styles and custom fonts no longer load on the storefront, so keep the stylesheet in your
theme if the content stays.
Known Limitations
- Page Builder inline editing. On-stage text editing only works with Magento's built-in editor. While TinyMCE 7 or the bundled HugeRTE is active it isn't available. Test your Page Builder content before switching engines in production.
- Premium Tiny plugins. PowerPaste, Spell Checker Pro, AI Assistant and similar need a paid Tiny Cloud subscription and aren't offered. In TinyMCE 7 the Templates plugin is premium too.
- Plugins left out on purpose. save (Magento has its own Save), bbcode, fullpage and legacyoutput (they rewrite content), spellchecker (needs a server; use browser spellcheck).
- Older plugin versions. TinyMCE 5-only plugins (hr, print, textpattern, toc, imagetools, tabfocus) are only offered on TinyMCE 5. In TinyMCE 6+ hr, print and textpattern are part of the core, toc and imagetools became premium, and tabfocus was dropped.
- Font Awesome icons in the editor need Font Awesome enabled under Fonts. If your theme already loads it, enter the same stylesheet URL and turn off loading it on the storefront.
Troubleshooting
1. Changes don't show in the editor
Settings apply the next time an editor opens. Flush the cache, then hard-refresh the admin (Ctrl/Cmd+Shift+R):
bin/magento cache:flush
For JS and CSS changes, also clear pub/static/adminhtml/* and var/view_preprocessed/*, and deploy static
content in production mode.
2. "The selected WYSIWYG engine can't be used" message
The chosen editor couldn't load (missing Tiny Cloud API key, invalid version or URL, missing HugeRTE files), so Magento's own editor is running. The message and the status panel under General say why.
3. "Failed to load plugin" in the browser console
The module drops plugins the running editor doesn't have. If the error names a plugin from External Plugins, check its URL and that it supports the running editor. TinyMCE 4 plugins don't load anywhere.
4. A video or other embed won't save
Magento rejects <iframe> by default. Embeds are allowed only over https from the hosts in Allowed Embed
Hosts (YouTube and Vimeo by default). Add the host, for example www.google.com for Maps.
5. A custom font isn't listed or doesn't show
The help under Custom Fonts shows the folder paths on your server and lists folders that can't be used.
After adding files to a font that is already enabled, flush the cache. If the font is listed but doesn't show on
the page, open its file URL in the browser: a 404 means the web server doesn't serve pub/dx-fonts, so move the
folder to pub/media/dx-fonts.
6. Styles for buttons, videos or columns are missing on the storefront
Check Load Davix Content Styles on Storefront is on, then flush the full page cache. davix-content.css
belongs in view/base/web/css/ only.
7. "Class Not Found" or compilation errors
rm -rf generated/code/* generated/metadata/*
bin/magento setup:di:compile
8. Check the logs
var/log/system.logvar/log/exception.log
FAQ
Q: Does switching the editor change my existing content?
A: No. Content is plain HTML and is saved the same way. Only the editing experience changes, and you can switch back at any time.
Q: Which editor should I choose?
A: Magento built-in if you rely on Page Builder inline editing. HugeRTE for a modern, MIT-licensed editor with no external dependency. TinyMCE 7 if you need its features or have a Tiny licence.
Q: Are Google Fonts GDPR compliant?
A: Loading fonts from Google sends visitors' IP addresses to Google. Bunny Fonts serves the same library from EU servers without logging, and custom fonts are served from your own store.
Q: Do the Davix plugins need JavaScript on the storefront?
A: No. They output plain HTML. Videos are standard iframes, the accordion uses <details>, and the only
storefront asset is a small stylesheet.
Q: Can I limit editors to the brand colours?
A: Yes. Add your colours under Brand Colour Palette and set Allow Custom Colours to No.
Q: Is the module safe to disable?
A: Yes. Magento's own editor and settings come straight back. Content stays as it is, but the davix-* styles
and custom fonts stop loading on the storefront while it's disabled.
© Davix. All rights reserved.