Aleksander Machniak
2015-10-27 2aa9ee56fd8f4e36c9d5c65cf1b7dc15def11f82
Fix so disabling emoticons plugin really removes emoticons button from HTML editor
3 files modified
29 ■■■■ changed files
plugins/emoticons/emoticons.php 6 ●●●● patch | view | raw | blame | history
program/include/rcmail.php 6 ●●●●● patch | view | raw | blame | history
program/js/editor.js 17 ●●●● patch | view | raw | blame | history
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;
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');
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)