Fix so disabling emoticons plugin really removes emoticons button from HTML editor

pull/290/merge
Aleksander Machniak 9 years ago
parent eb721e35b2
commit 2aa9ee56fd

@ -122,9 +122,9 @@ class emoticons extends rcube_plugin
$this->load_config(); $this->load_config();
if (!$rcube->config->get('emoticons_compose', true)) { if ($rcube->config->get('emoticons_compose', true)) {
$args['disabled_plugins'][] = 'emoticons'; $args['extra_plugins'][] = 'emoticons';
$args['disabled_buttons'][] = 'emoticons'; $args['extra_buttons'][] = 'emoticons';
} }
return $args; return $args;

@ -1884,6 +1884,8 @@ class rcmail extends rcube
$spelldict = intval($this->config->get('spellcheck_dictionary')); $spelldict = intval($this->config->get('spellcheck_dictionary'));
$disabled_plugins = array(); $disabled_plugins = array();
$disabled_buttons = array(); $disabled_buttons = array();
$extra_plugins = array();
$extra_buttons = array();
if (!$spellcheck) { if (!$spellcheck) {
$disabled_plugins[] = 'spellchecker'; $disabled_plugins[] = 'spellchecker';
@ -1893,6 +1895,8 @@ class rcmail extends rcube
'mode' => $mode, 'mode' => $mode,
'disabled_plugins' => $disabled_plugins, 'disabled_plugins' => $disabled_plugins,
'disabled_buttons' => $disabled_buttons, 'disabled_buttons' => $disabled_buttons,
'extra_plugins' => $extra_plugins,
'extra_buttons' => $extra_buttons,
)); ));
if ($hook['abort']) { if ($hook['abort']) {
@ -1924,6 +1928,8 @@ class rcmail extends rcube
'spelldict' => $spelldict, 'spelldict' => $spelldict,
'disabled_plugins' => $hook['disabled_plugins'], 'disabled_plugins' => $hook['disabled_plugins'],
'disabled_buttons' => $hook['disabled_buttons'], 'disabled_buttons' => $hook['disabled_buttons'],
'extra_plugins' => $hook['extra_plugins'],
'extra_buttons' => $hook['extra_buttons'],
); );
$this->output->add_label('selectimage', 'addimage', 'selectmedia', 'addmedia'); $this->output->add_label('selectimage', 'addimage', 'selectmedia', 'addmedia');

@ -88,11 +88,11 @@ function rcube_text_editor(config, id)
// full-featured editor // full-featured editor
else { else {
$.extend(conf, { $.extend(conf, {
plugins: 'autolink charmap code colorpicker directionality emoticons link image media nonbreaking' plugins: 'autolink charmap code colorpicker directionality link image media nonbreaking'
+ ' paste table tabfocus textcolor searchreplace spellchecker', + ' paste table tabfocus textcolor searchreplace spellchecker',
toolbar: 'bold italic underline | alignleft aligncenter alignright alignjustify' toolbar: 'bold italic underline | alignleft aligncenter alignright alignjustify'
+ ' | bullist numlist outdent indent ltr rtl blockquote | forecolor backcolor | fontselect fontsizeselect' + ' | bullist numlist outdent indent ltr rtl blockquote | forecolor backcolor | fontselect fontsizeselect'
+ ' | link unlink table | emoticons charmap image media | code searchreplace undo redo', + ' | link unlink table | $extra charmap image media | code searchreplace undo redo',
spellchecker_rpc_url: abs_url + '/?_task=utils&_action=spell_html&_remote=1', spellchecker_rpc_url: abs_url + '/?_task=utils&_action=spell_html&_remote=1',
spellchecker_language: rcmail.env.spell_lang, spellchecker_language: rcmail.env.spell_lang,
accessibility_focus: false, accessibility_focus: false,
@ -102,6 +102,16 @@ function rcube_text_editor(config, id)
}); });
} }
// add TinyMCE plugins/buttons from Roundcube plugin
$.each(config.extra_plugins || [], function() {
if (conf.plugins.indexOf(this) < 0)
conf.plugins = conf.plugins + ' ' + this;
});
$.each(config.extra_buttons || [], function() {
if (conf.toolbar.indexOf(this) < 0)
conf.toolbar = conf.toolbar.replace('$extra', '$extra ' + this);
});
// disable TinyMCE plugins/buttons from Roundcube plugin // disable TinyMCE plugins/buttons from Roundcube plugin
$.each(config.disabled_plugins || [], function() { $.each(config.disabled_plugins || [], function() {
conf.plugins = conf.plugins.replace(this, ''); conf.plugins = conf.plugins.replace(this, '');
@ -109,7 +119,8 @@ function rcube_text_editor(config, id)
$.each(config.disabled_buttons || [], function() { $.each(config.disabled_buttons || [], function() {
conf.toolbar = conf.toolbar.replace(this, ''); conf.toolbar = conf.toolbar.replace(this, '');
}); });
conf.toolbar = conf.toolbar.replace(/\|\s+\|/g, '|');
conf.toolbar = conf.toolbar.replace('$extra', '').replace(/\|\s+\|/g, '|');
// support external configuration settings e.g. from skin // support external configuration settings e.g. from skin
if (window.rcmail_editor_settings) if (window.rcmail_editor_settings)

Loading…
Cancel
Save