From 2aa9ee56fd8f4e36c9d5c65cf1b7dc15def11f82 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 27 Oct 2015 12:18:23 -0400
Subject: [PATCH] Fix so disabling emoticons plugin really removes emoticons button from HTML editor
---
program/include/rcmail.php | 6 ++++++
program/js/editor.js | 17 ++++++++++++++---
plugins/emoticons/emoticons.php | 6 +++---
3 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/plugins/emoticons/emoticons.php b/plugins/emoticons/emoticons.php
index cb90b6f..d5f0e9a 100644
--- a/plugins/emoticons/emoticons.php
+++ b/plugins/emoticons/emoticons.php
@@ -122,9 +122,9 @@
$this->load_config();
- if (!$rcube->config->get('emoticons_compose', true)) {
- $args['disabled_plugins'][] = 'emoticons';
- $args['disabled_buttons'][] = 'emoticons';
+ if ($rcube->config->get('emoticons_compose', true)) {
+ $args['extra_plugins'][] = 'emoticons';
+ $args['extra_buttons'][] = 'emoticons';
}
return $args;
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index d74b705..d64ba2d 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -1884,6 +1884,8 @@
$spelldict = intval($this->config->get('spellcheck_dictionary'));
$disabled_plugins = array();
$disabled_buttons = array();
+ $extra_plugins = array();
+ $extra_buttons = array();
if (!$spellcheck) {
$disabled_plugins[] = 'spellchecker';
@@ -1893,6 +1895,8 @@
'mode' => $mode,
'disabled_plugins' => $disabled_plugins,
'disabled_buttons' => $disabled_buttons,
+ 'extra_plugins' => $extra_plugins,
+ 'extra_buttons' => $extra_buttons,
));
if ($hook['abort']) {
@@ -1924,6 +1928,8 @@
'spelldict' => $spelldict,
'disabled_plugins' => $hook['disabled_plugins'],
'disabled_buttons' => $hook['disabled_buttons'],
+ 'extra_plugins' => $hook['extra_plugins'],
+ 'extra_buttons' => $hook['extra_buttons'],
);
$this->output->add_label('selectimage', 'addimage', 'selectmedia', 'addmedia');
diff --git a/program/js/editor.js b/program/js/editor.js
index 3a76ad0..50ba03d 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -88,11 +88,11 @@
// full-featured editor
else {
$.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',
toolbar: 'bold italic underline | alignleft aligncenter alignright alignjustify'
+ ' | 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_language: rcmail.env.spell_lang,
accessibility_focus: false,
@@ -102,6 +102,16 @@
});
}
+ // 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
$.each(config.disabled_plugins || [], function() {
conf.plugins = conf.plugins.replace(this, '');
@@ -109,7 +119,8 @@
$.each(config.disabled_buttons || [], function() {
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
if (window.rcmail_editor_settings)
--
Gitblit v1.9.1