diff --git a/build/media_source/plg_editors_tinymce/js/tinymce-builder.es6.js b/build/media_source/plg_editors_tinymce/js/tinymce-builder.es6.js index 847bcd89b900d..7c7a3b3807fb0 100644 --- a/build/media_source/plg_editors_tinymce/js/tinymce-builder.es6.js +++ b/build/media_source/plg_editors_tinymce/js/tinymce-builder.es6.js @@ -435,7 +435,7 @@ const options = Joomla.getOptions ? Joomla.getOptions('plg_editors_tinymce_build const builder = document.getElementById('joomla-tinymce-builder'); -TinyMCEBuilder(builder, options); +document.addEventListener('DOMContentLoaded', () => TinyMCEBuilder(builder, options)); const selects = builder.querySelectorAll('.access-select'); diff --git a/layouts/plugins/editors/tinymce/field/tinymcebuilder.php b/layouts/plugins/editors/tinymce/field/tinymcebuilder.php index 90ff6f9b7d002..e77a6d8b2fb9d 100644 --- a/layouts/plugins/editors/tinymce/field/tinymcebuilder.php +++ b/layouts/plugins/editors/tinymce/field/tinymcebuilder.php @@ -59,17 +59,19 @@ $doc = Factory::getApplication()->getDocument(); $wa = $doc->getWebAssetManager(); -// Add assets -$wa->registerAndUseStyle('tinymce.skin', 'media/vendor/tinymce/skins/ui/oxide/skin.min.css') +$wa->registerScript('tinymce', 'media/vendor/tinymce/tinymce.min.js', [], ['defer' => true]) + ->registerScript('plg_editors_tinymce', 'plg_editors_tinymce/tinymce.min.js', [], ['defer' => true], ['core', 'tinymce']) + ->registerAndUseStyle('tinymce.skin', 'media/vendor/tinymce/skins/ui/oxide/skin.min.css') ->registerAndUseStyle('plg_editors_tinymce.builder', 'plg_editors_tinymce/tinymce-builder.css', [], [], ['tinymce.skin', 'dragula']) - ->registerAndUseScript('plg_editors_tinymce.builder', 'plg_editors_tinymce/tinymce-builder.js', [], ['type' => 'module'], ['core', 'dragula']) + ->registerScript('plg_editors_tinymce.builder', 'plg_editors_tinymce/tinymce-builder.js', [], ['type' => 'module'], ['dragula', 'plg_editors_tinymce']) + ->useScript('plg_editors_tinymce.builder') ->useStyle('webcomponent.joomla-tab') ->useScript('webcomponent.joomla-tab'); // Add TinyMCE language file to translate the buttons if ($languageFile) { - $wa->registerAndUseScript('tinymce.language', $languageFile, [], ['defer' => true]); + $wa->registerAndUseScript('tinymce.language', $languageFile, [], ['defer' => true], []); } // Add the builder options diff --git a/plugins/editors/tinymce/src/PluginTraits/DisplayTrait.php b/plugins/editors/tinymce/src/PluginTraits/DisplayTrait.php index e208e368f5f47..2e93c8641b2e7 100644 --- a/plugins/editors/tinymce/src/PluginTraits/DisplayTrait.php +++ b/plugins/editors/tinymce/src/PluginTraits/DisplayTrait.php @@ -166,17 +166,21 @@ public function onDisplay( // Check that selected skin exists. $skin = Folder::exists(JPATH_ROOT . '/media/vendor/tinymce/skins/ui/' . $skin) ? $skin : 'oxide'; - $langPrefix = $levelParams->get('lang_code', 'en'); - - if ($levelParams->get('lang_mode', 1)) + if (!$levelParams->get('lang_mode', 1)) + { + // Admin selected language + $langPrefix = $levelParams->get('lang_code', 'en'); + } + else { - if (file_exists(JPATH_ROOT . '/media/vendor/tinymce/langs/' . $language->getTag() . (JDEBUG ? '.js' : '.min.js'))) + // Reflect the current language + if (file_exists(JPATH_ROOT . '/media/vendor/tinymce/langs/' . $language->getTag() . '.js')) { - $langPrefix = $language->getTag() . (JDEBUG ? '' : '.min'); + $langPrefix = $language->getTag(); } - elseif (file_exists(JPATH_ROOT . '/media/vendor/tinymce/langs/' . substr($language->getTag(), 0, strpos($language->getTag(), '-')) . (JDEBUG ? '.js' : '.min.js'))) + elseif (file_exists(JPATH_ROOT . '/media/vendor/tinymce/langs/' . substr($language->getTag(), 0, strpos($language->getTag(), '-')) . '.js')) { - $langPrefix = substr($language->getTag(), 0, strpos($language->getTag(), '-')) . (JDEBUG ? '' : '.min'); + $langPrefix = substr($language->getTag(), 0, strpos($language->getTag(), '-')); } else {