diff --git a/administrator/language/en-GB/plg_editors_tinymce.ini b/administrator/language/en-GB/plg_editors_tinymce.ini index fec5dea6d4033..8f7b66c613a57 100644 --- a/administrator/language/en-GB/plg_editors_tinymce.ini +++ b/administrator/language/en-GB/plg_editors_tinymce.ini @@ -20,6 +20,8 @@ PLG_TINY_FIELD_ADVLIST_LABEL="Advanced List" PLG_TINY_FIELD_CONTEXTMENU_LABEL="Context Menu" PLG_TINY_FIELD_CSS_DESC="By default the Plugin looks for an editor.css file. If it can't find one in the default template CSS folder, it loads the editor.css file from the system template." PLG_TINY_FIELD_CSS_LABEL="Template CSS Classes" +PLG_TINY_FIELD_CUSTOM_CONTENT_TEMPLATE_PATH_DESC="A directory named \"tinymce\" in your site template." +PLG_TINY_FIELD_CUSTOM_CONTENT_TEMPLATE_PATH_LABEL="Content Template Directory" PLG_TINY_FIELD_CUSTOM_CSS_DESC="Optional CSS file that will override the standard editor.css file. Enter a file name to point to a file in the CSS folder of the default template (for example, templates/cassiopeia/css/). Or enter a full URL path to the custom CSS file. If you enter a value in this field, this file will be used instead of the editor.css file." PLG_TINY_FIELD_CUSTOM_CSS_LABEL="Custom CSS Classes" PLG_TINY_FIELD_CUSTOM_PATH_LABEL="Images Directory" diff --git a/plugins/editors/tinymce/forms/setoptions.xml b/plugins/editors/tinymce/forms/setoptions.xml index f60ee558d5781..e8433b2bc78c8 100644 --- a/plugins/editors/tinymce/forms/setoptions.xml +++ b/plugins/editors/tinymce/forms/setoptions.xml @@ -68,6 +68,19 @@ showon="drag_drop:1" /> + + - - diff --git a/plugins/editors/tinymce/tinymce.php b/plugins/editors/tinymce/tinymce.php index bed8e972cf80a..19d35b1989b03 100644 --- a/plugins/editors/tinymce/tinymce.php +++ b/plugins/editors/tinymce/tinymce.php @@ -470,32 +470,41 @@ public function onDisplay( if (!empty($allButtons['template'])) { - foreach (glob(JPATH_ROOT . '/media/vendor/tinymce/templates/*.html') as $filename) + // Do we have a custom content_template_path + $template_path = $levelParams->get('content_template_path'); + $template_path = $template_path ? '/templates/' . $template_path : '/media/vendor/tinymce/templates'; + + foreach (glob(JPATH_ROOT . $template_path . '/*.{html,txt}', GLOB_BRACE) as $filepath) { - $filename = basename($filename, '.html'); + $fileinfo = pathinfo($filepath); + $filename = $fileinfo['filename']; + $full_filename = $fileinfo['basename']; - if ($filename !== 'index') + if ($filename === 'index') { - $lang = Factory::getLanguage(); - $title = $filename; - $description = ' '; + continue; + } - if ($lang->hasKey('PLG_TINY_TEMPLATE_' . strtoupper($filename) . '_TITLE')) - { - $title = Text::_('PLG_TINY_TEMPLATE_' . strtoupper($filename) . '_TITLE'); - } + $lang = Factory::getLanguage(); + $title = $filename; + $title_upper = strtoupper($filename); + $description = ' '; - if ($lang->hasKey('PLG_TINY_TEMPLATE_' . strtoupper($filename) . '_DESC')) - { - $description = Text::_('PLG_TINY_TEMPLATE_' . strtoupper($filename) . '_DESC'); - } + if ($lang->hasKey('PLG_TINY_TEMPLATE_' . $title_upper . '_TITLE')) + { + $title = Text::_('PLG_TINY_TEMPLATE_' . $title_upper . '_TITLE'); + } - $templates[] = array( - 'title' => $title, - 'description' => $description, - 'url' => Uri::root(true) . '/media/vendor/tinymce/templates/' . $filename . '.html', - ); + if ($lang->hasKey('PLG_TINY_TEMPLATE_' . $title_upper . '_DESC')) + { + $description = Text::_('PLG_TINY_TEMPLATE_' . $title_upper . '_DESC'); } + + $templates[] = array( + 'title' => $title, + 'description' => $description, + 'url' => Uri::root(true) . $template_path . '/' . $full_filename, + ); } } diff --git a/templates/cassiopeia/html/tinymce/index.html b/templates/cassiopeia/html/tinymce/index.html new file mode 100644 index 0000000000000..2efb97f319a35 --- /dev/null +++ b/templates/cassiopeia/html/tinymce/index.html @@ -0,0 +1 @@ + diff --git a/templates/cassiopeia/templateDetails.xml b/templates/cassiopeia/templateDetails.xml index 2aeeb09b0593f..869ac8a802725 100644 --- a/templates/cassiopeia/templateDetails.xml +++ b/templates/cassiopeia/templateDetails.xml @@ -18,6 +18,7 @@ template_thumbnail.png css html + html/tinymce images js scss