Я работаю с веб-сайтом в Django, Django CkEditor 5.2.2
Я хотел бы создать собственный плагин для вставки небольшого HTML.Мне нужен диалог в моем плагине, чтобы выбрать логотип в моем HTML, заголовок и содержание.Я строго следовал учебнику по виджетам на сайте CK Editor, но строка:
editor.widgets.add( 'simplebox', {
button: 'Create a simple box'
} );
не работает.Поэтому я попытался вставить кнопку с:
editor.ui.addButton( 'simplebox', {
label: 'Ajouter un encadré',
command: 'insertTextBox',
toolbar: 'yourcustomtools',
});
Это работает, у меня есть кнопка на панели инструментов, которая вставляет HTML.Но мне не удается связать его с каким-либо диалогом ...
в настоящее время мой код находится в моем simplebox / plugin.js
CKEDITOR.plugins.add('simplebox', {
requires: 'widget',
icons: 'simplebox',
init: function (editor) {
CKEDITOR.dialog.add('addSimpleBox', this.path + 'dialogs/simplebox.js' );
editor.ui.addButton( 'simplebox', {
label: 'Ajouter un encadré',
command: 'insertTextBox',
toolbar: 'yourcustomtools',
});
editor.addCommand( 'insertTextBox', {
exec: function( editor ) {
editor.insertHtml( '' +
'<div class="text-box">' +
'<div class="logo">Logo</div>' +
'<div class="content">' +
'<div class="content--title">Le titre</div>' +
'<div class="content--content">Le contenu</div>' +
'</div>' +
'</div>' );
}
});
}
});
И в моих dialogs / simplebox.js , это сочетание учебника и того, что я пробовал ...
CKEDITOR.dialog.add( 'simplebox', function( editor ) {
return {
title: 'Edit Simple Box',
minWidth: 200,
minHeight: 100,
contents: [
{
id: 'info',
label: editor,
title: editor,
elements: [
{
id: 'logo',
type: 'select',
label: 'Logo',
items: [
[ editor.lang.common.notSet, '' ],
[ editor.lang.common.alignLeft, 'left' ],
[ editor.lang.common.alignRight, 'right' ],
[ editor.lang.common.alignCenter, 'center' ]
],
setup: function( widget ) {
this.setValue( widget.data.align );
},
commit: function( widget ) {
widget.setData( 'align', this.getValue() );
}
},
{
id: 'width',
type: 'text',
label: 'Width',
width: '50px',
setup: function( widget ) {
this.setValue( widget.data.width );
},
commit: function( widget ) {
widget.setData( 'width', this.getValue() );
}
}
]
}
]
};
} );
большое спасибо за вашу помощь.