TinyMCE v4 добавляет пользовательские элементы в контекстное меню

Я обновляю TinyMCE на одном из своих веб-сайтов и пытаюсь добавить пользовательский элемент в плагин contextmenu. Кажется, я не могу найти никакой документации для него, так как все, что я могу найти, это для v3.

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

В последней версии я использовал следующее:

ed.addCommand('fileMan', function(e) {
    fileman();
    hide(ed, e);
});

m.add({title : 'Filemanager', icon : 'image', cmd : 'fileMan'});

person Meisam Mulla    schedule 14.03.2014    source источник


Ответы (2)


Я смог понять это. Вот что я сделал:

  • Создал новую папку в каталоге плагина с именем fileman
  • Создал файл с именем plugin.js и добавил в него код в конце этого поста.
  • Минифицировал код и поместил минифицированный код в plugin.min.js
  • Отредактировал plugin.min.js в папке плагинов contextmenu и добавил fileman в список загруженных плагинов
  • Добавлено fileman в список загружаемых плагинов при инициализации редактора

Код:

tinymce.PluginManager.add('fileman', function(editor) {
    editor.addMenuItem('fileman', {
        icon: 'image',
        text: 'Filemanager',
        shortcut: 'Ctrl+J',
        onclick: function() {
            fileman.launch('editor');
        },
        context: 'insert',
        prependToContext: true
    });
});
person Meisam Mulla    schedule 26.03.2014
comment
Я думаю, что вышеприведенное решение предназначено не для добавления контекстного меню, а для добавления нового меню, которое отличается. - person Bharat Darakh; 07.04.2017

Это несколько сложное решение, но идеальное, сработало для меня после того, как я попробовал много вещей.

editor.on('contextmenu', function(editor) {

this.settings.contextmenu = 'fileman | link openlink image inserttable | cell row column deletetable';

var exampleMenuItem = this.menuItems['italic'];
this.menuItems['fileman'] = exampleMenuItem;

this.menuItems['fileman'].cmd = 'mceFileMan';
this.menuItems['fileman'].icon = '../../file-icon.png';
this.menuItems['fileman'].text = 'File Manager';

});

person Bharat Darakh    schedule 13.04.2017