Как перенести пользовательские кнопки и диалоги в TinyMCE 5

У меня есть сторонний плагин Bootstrap (возможно, EOL), который добавил кнопки на панель инструментов, которая, в свою очередь, открыла диалоговое окно, в котором я мог выбрать элементы Bootstrap для добавления к контенту.

Он использовал следующий код:

var insertBtn = tinymce.ui.Factory.create({
    type: elType,
    classes: elClass,
    text: bsText['button'],
    icon: 'icon-btn',
    name: 'insertBtnBtn',
    tooltip: bsTip['button'],
    onclick: function() {
        showDialog('bootstrap-btn.php', 'Add button', 580, 'bsBtn');
    }
});
bsItems.push(insertBtn);

Но он говорит, что Factory не определена или что create - это несуществующая функция. Что я могу использовать, чтобы сделать эту работу, чтобы показать кнопки, а также показ диалога при нажатии? Я уже обновил следующий код для просмотра bsItems:

editor.ui.registry.addButton('bootstrap', {
    type: 'buttongroup',
    classes: 'bs-btn',
    items: bsItems
});

И я попробовал несколько других возможностей, чтобы найти функцию создания:

editor.ui.registry.create()
editor.ui.Factory.create()
editor.ui.create()
tinymce.ui.registry.create()
tinymce.ui.Factory.create()
tinymce.ui.create()

Все безрезультатно

1 ответ

Решение

В версии 5 TinyMCE использует новую платформу пользовательского интерфейса. Сторонние плагины, написанные для версии 4.x, которые предоставляют пользовательские элементы управления пользовательского интерфейса, вероятно, не будут работать с версией 5.

Как отмечено в этой теме GitHub, tinymce.ui.Factory было объявлено устаревшим и не будет повторно реализовано, поэтому больше невозможно создавать фабрики управления.

Методы добавления элементов пользовательского интерфейса, таких как кнопки, также изменились с v4 на v5. В официальном руководстве по миграции подробно изложены новые местоположения и сигнатуры конфигурации этих методов.

tl; dr Этот конкретный плагин может не работать с новой структурой пользовательского интерфейса v5, но есть еще способы настройки пользовательского интерфейса с использованием новой системы.

Другие вопросы по тегам