Пользовательский плагин TinyMce v5 - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь создать собственный плагин для TinyMce.

Пока это мой код:

(function() {
  var redactor = (function(domGlobals) {
    'use strict';
    var global = tinymce.util.Tools.resolve('tinymce.PluginManager');

    var setupButtons = function(editor) {
      editor.ui.registry.addToggleButton('link', {
        text: 'My button',
        tooltip: 'My button',
        onAction: function() {
          alert('My Button');
        }
      });
    };

    var Controls = {
      setupButtons: setupButtons,
    };

    global.add('redactor', function(editor) {
      Controls.setupButtons(editor);
    });

    function Plugin() {}

    return Plugin;
  }(window));
})();

Это мой init:

tinymce.init({
    selector: '#editor',
    plugins: 'redactor',
    toolbar: 'redactor',
    menubar: 'redactor'  
});

Мой редактор отображается без какой-либо кнопки и без ошибок JS.
Что я делаю не так?Я пытался эмулировать некоторые из плагинов, но не могу заставить его работать.

tinymce with no buttons

1 Ответ

0 голосов
/ 14 марта 2019

Кажется, мне нужно было поискать немного больше в документации. Я должен добавить каждую кнопку вручную на панель инструментов:

tinymce.init({
    selector: '#editor',
    plugins: 'redactor',
    toolbar: 'redactorBtn1',
    menubar: 'redactor'  
});

и каждое имя должно быть уникальным для плагина:

Итак, код для моего плагина:

(function () {
var redactor = (function (domGlobals) {
    'use strict';
    var global = tinymce.util.Tools.resolve('tinymce.PluginManager');

    var setupButtons = function (editor) {
        editor.ui.registry.addToggleButton('redactorBtn1', {
            text: 'My button',
            tooltip: 'My button',
            onAction: function () {
              alert('My Button');
            }
        });
    };

    var Controls = {
      setupButtons: setupButtons,
    };

    global.add('redactor', function (editor) {
        Controls.setupButtons(editor);          
    });
    function Plugin () {
    }

    return Plugin;
}(window));
})();

Если вы хотите добавить больше кнопок на панель инструментов, вы должны поместить их одну за другой:

toolbar: 'redactorBtn1 redactorBtn2',
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...