From caaccae5da86e7b10495c468b7fcb4b14aca4501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20S=CC=8Ckoda?= Date: Sat, 18 Aug 2012 16:26:27 +0200 Subject: [PATCH] MDL-34878 add custom TinyMCE toolbar setting --- lib/editor/tinymce/lang/en/editor_tinymce.php | 2 ++ lib/editor/tinymce/lib.php | 19 +++++++++++++++++++ lib/editor/tinymce/settings.php | 2 ++ 3 files changed, 23 insertions(+) diff --git a/lib/editor/tinymce/lang/en/editor_tinymce.php b/lib/editor/tinymce/lang/en/editor_tinymce.php index 1563b2ee746..2fbb5124d81 100644 --- a/lib/editor/tinymce/lang/en/editor_tinymce.php +++ b/lib/editor/tinymce/lang/en/editor_tinymce.php @@ -26,6 +26,8 @@ //== Custom Moodle strings that are not part of upstream TinyMCE == $string['common:browseimage'] = 'Find or upload an image...'; $string['common:browsemedia'] = 'Find or upload a sound, video or applet...'; +$string['customtoolbar'] = 'Custom editor toolbar'; +$string['customtoolbar_desc'] = 'Each line contains a list of comma separated button names, use "|" as a group separator. Leave empty if you want standard toolbar.'; $string['fontselectlist'] = 'Available fonts list'; $string['media_dlg:filename'] = 'Filename'; $string['pluginname'] = 'TinyMCE HTML editor'; diff --git a/lib/editor/tinymce/lib.php b/lib/editor/tinymce/lib.php index 2ef3db13c42..ac25047e031 100644 --- a/lib/editor/tinymce/lib.php +++ b/lib/editor/tinymce/lib.php @@ -190,6 +190,25 @@ class tinymce_texteditor extends texteditor { // Allow plugins to adjust parameters. editor_tinymce_plugin::all_update_init_params($params, $context, $options); + // Should we override the default toolbar layout unconditionally? + $customtoolbar = trim($config->customtoolbar); + if ($customtoolbar) { + unset($params['theme_advanced_buttons1']); + unset($params['theme_advanced_buttons2']); + unset($params['theme_advanced_buttons3']); + unset($params['theme_advanced_buttons4']); + $customtoolbar = str_replace("\r", "\n", $customtoolbar); + $i = 1; + foreach (explode("\n", $customtoolbar) as $line) { + $line = preg_replace('/\s/', '', $line); + if ($line === '') { + continue; + } + $params['theme_advanced_buttons'.$i] = $line; + $i++; + } + } + // Remove temporary parameters. unset($params['moodle_config']); diff --git a/lib/editor/tinymce/settings.php b/lib/editor/tinymce/settings.php index 461e62f6296..45c1bc84eeb 100644 --- a/lib/editor/tinymce/settings.php +++ b/lib/editor/tinymce/settings.php @@ -28,6 +28,8 @@ $ADMIN->add('editorsettings', new admin_category('editortinymce', new lang_strin $settings = new admin_settingpage('editorsettingstinymce', new lang_string('settings', 'editor_tinymce')); if ($ADMIN->fulltree) { + $settings->add(new admin_setting_configtextarea('editor_tinymce/customtoolbar', + get_string('customtoolbar', 'editor_tinymce'), get_string('customtoolbar_desc', 'editor_tinymce'), '', PARAM_RAW, 100, 6)); $settings->add(new admin_setting_configtextarea('editor_tinymce/fontselectlist', get_string('fontselectlist', 'editor_tinymce'), '', 'Trebuchet=Trebuchet MS,Verdana,Arial,Helvetica,sans-serif;Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;Wingdings=wingdings', PARAM_RAW));