Пользовательский плагин TinyMce v5
Я пытаюсь создать собственный плагин для 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));
})();
Это мой инициал:
tinymce.init({
selector: '#editor',
plugins: 'redactor',
toolbar: 'redactor',
menubar: 'redactor'
});
Мой редактор рендерится без какой-либо кнопки и без ошибок JS.
Что я делаю неправильно? Я пытался эмулировать некоторые из плагинов, но я не могу заставить его работать.
2 ответа
Кажется, мне нужно было поискать немного больше в документации. Я должен добавить каждую кнопку вручную на панель инструментов:
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',
Его старый код, в tinyMCE время от времени все меняют. Хороший пример - плагин. Скопируйте этот плагин в каталог с именем:. Измените имена
code
в
plugin.js
файл и добавить
custom
в массив плагинов и строку панелей инструментов в
tinymce.init
функции, и вы готовы к работе.