2016-07-08 2 views
0

Я новичок в разработке плагинов CkEditor и задал простой вопрос.CkEditor: как открыть собственный диалог плагина

Следующая проблема: У меня есть очень «специальное» хранилище носителей для не ориентированных на потребителя (хранится как иерархия дерева в файловой системе). Пользователь CkEditor должен найти эти медиа-активы, и поэтому я применил для этого плагин с поиском, который загружает дерево слева и отображает медиа-ресурсы с левой стороны. Теперь пользователь может выбрать элемент дерева и выбрать медиа-ресурс с левой стороны. Плагин работает, код создается с помощью img-Tag. Когда я дважды нажимаю на новый сгенерированный код, появляется диалоговое окно «image»-plugin-dialog, а не мое настраиваемое диалоговое окно.

Вопрос: Что я могу сделать, чтобы заставить CkEditor открыть мой диалог? Я полагаю, есть внутреннее отображение из диалога tag ->, и img-Tag загружает img-Dialog. Какие возможности у меня есть? Должен ли я использовать пользовательские теги для этого?

ответ

1

Проблема может быть решена с помощью «doubleclick»-крючка, например.

initDoubleClickHandler: function(editor) { 
    editor.on('doubleclick', function(e) { 
    var selection = editor.getSelection(); 
    var start = selection.getStartElement(); 
    var attribute = start.getAttribute('data-type'); 
    if (attribute != undefined && attribute != null && attribute == 'myplugin') { 
     e.data.dialog = 'myPluginDialog'; 
    } 
    }); 
} 
0

Поддерживаемый и простой способ - создать свой плагин в виде виджета с диалоговым окном. Вы можете контролировать, как CKEditor знает, что это ваш специальный объект, и запускает ваш диалог. Вы можете использовать img со специальным стилем CSS или создать свой собственный тег html (например,).

Прочитать руководство по виджетам here (диалоги объясняются в части 2 этого урока).

Смежные вопросы