From bb2cedf7ab6e73f455b9b8e3ea2bee5ce97d73de Mon Sep 17 00:00:00 2001 From: VSimos Date: Thu, 11 Jun 2026 16:40:46 +0300 Subject: [PATCH] default license_key to 'gpl' so legacy profiles work on TinyMCE 8 --- assets/scripts/base.js | 4 ++++ assets/scripts/profiles-list.js | 2 ++ assets/scripts/tests/mblock-integration-test.js | 2 +- lib/TinyMce/Creator/Profiles.php | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/assets/scripts/base.js b/assets/scripts/base.js index 24c3481a..c7084fab 100644 --- a/assets/scripts/base.js +++ b/assets/scripts/base.js @@ -505,6 +505,10 @@ function tiny_init(container) { } } + if (!options.hasOwnProperty('license_key')) { + options.license_key = 'gpl'; + } + if (!options.hasOwnProperty('convert_newlines_to_brs')) { options.convert_newlines_to_brs = false; } diff --git a/assets/scripts/profiles-list.js b/assets/scripts/profiles-list.js index 87a0b3c9..ed0c1867 100644 --- a/assets/scripts/profiles-list.js +++ b/assets/scripts/profiles-list.js @@ -177,6 +177,7 @@ var c = Object.assign({}, window.tinyprofiles[profileKey]); c.selector = '#tinymcePreviewEditor'; c.height = c.height || 300; + if (!c.license_key) { c.license_key = 'gpl'; } window.tinymce.init(c); } } catch (e) { @@ -193,6 +194,7 @@ // final fallback: call tinymce.init with parsed conf conf.selector = '#tinymcePreviewEditor'; conf.height = conf.height || 300; + if (!conf.license_key) { conf.license_key = 'gpl'; } window.tinymce.init(conf); } else if (modalBody) { modalBody.innerHTML += '
TinyMCE not available — please run the build or check vendor/tinymce is present.
'; diff --git a/assets/scripts/tests/mblock-integration-test.js b/assets/scripts/tests/mblock-integration-test.js index db505961..97930d19 100644 --- a/assets/scripts/tests/mblock-integration-test.js +++ b/assets/scripts/tests/mblock-integration-test.js @@ -27,7 +27,7 @@ tiny_init(window.jQuery(wrapper)); log('called tiny_init on mblock wrapper — waiting for tinymce instance...'); } else if (window.tinymce && typeof window.tinymce.init === 'function') { - window.tinymce.init({ selector: '#mblockIntegrationTestEditor' }); + window.tinymce.init({ selector: '#mblockIntegrationTestEditor', license_key: 'gpl' }); log('called tinymce.init fallback — waiting for tinymce instance...'); } else { log('tinymce not found on page — ensure vendor build is loaded'); diff --git a/lib/TinyMce/Creator/Profiles.php b/lib/TinyMce/Creator/Profiles.php index e168a6a6..421b1113 100644 --- a/lib/TinyMce/Creator/Profiles.php +++ b/lib/TinyMce/Creator/Profiles.php @@ -151,6 +151,10 @@ public static function mapProfile(array $profile): string } } + if (1 !== preg_match('/(?:^|[,\{\r\n])\s*license_key\s*:/', $extra)) { + $extra = "license_key: 'gpl',\n" . $extra; + } + return $extra; } return $jsonProfile;