У меня есть пользовательский плагин CKEditor, который я пытаюсь написать, но мне нужна помощь, чтобы выяснить, как вставить значение из выпадающего списка для «активной» вкладки.
У меня есть 4 вкладки, каждая имеет свой выпадающий список. Когда пользователь выбирает вкладку, затем выбирает значение в раскрывающемся списке и затем нажимает кнопку «ОК», я хочу, чтобы текущее значение раскрывающегося списка «Активная вкладка» было вставлено в документ.
Приведенный ниже код работает для этого, за исключением того, что мне нужно жестко закодировать вкладку, из которой я хочу получить информацию. Смотрите: abbr.setText( dialog.getValueOf( 'tab1', 'tenant_dropdown' ) );
события "onOk". Я хочу что-то более похожее на: abbr.setText( dialog.getValueOf( activeTab, activeElement ) );
или что-то вроде этого ... Я не могу найти документацию для этого ... я глуп?
Есть идеи, как мне это сделать? Спасибо за вашу помощь.
Вот мой код плагина:
CKEDITOR.plugins.add( 'rz_db',
{
requires : ['richcombo'], //, 'styles' ],
init : function( editor )
{
editor.addCommand( 'abbrDialog', new CKEDITOR.dialogCommand( 'abbrDialog' ) );
editor.ui.addButton( 'Rz Database Field',
{
label: 'Insert Rz Database Field',
command: 'abbrDialog',
icon: this.path + 'images/icon.png'
} );
CKEDITOR.dialog.add( 'abbrDialog', function ( editor )
{
var tenant_fields = []; //new Array();
tenant_fields[0]=["First Name", "$RZ{tenant_first_name}"];
tenant_fields[1]=["Last Name", "$RZ{tenant_first_name}"];
tenant_fields[2]=["Address", "$RZ{tenant_address}"];
return {
title : 'Rz Database Fields',
minWidth : 400,
minHeight : 200,
contents :
[
{
id : 'tab1',
label : 'Tenants',
elements :
[
{
id : 'tenant_dropdown',
type : 'select',
label : 'Select the field you want, then press the "OK" button to insert it into the document.',
'default':'',
items: tenant_fields,
onChange : function( api ) {
// this = CKEDITOR.ui.dialog.select
alert( 'Current value: ' + this.getValue() );
}
}
]
},
{
id : 'tab2',
label : 'Owners',
elements :
[
{
type : 'text',
id : 'id',
label : 'Id'
}
]
},
{
id : 'tab3',
label : 'Vendors',
elements :
[
{
type : 'text',
id : 'id',
label : 'Id'
}
]
},
{
id : 'tab4',
label : 'Other',
elements :
[
{
type : 'text',
id : 'id',
label : 'Id'
}
]
}
],
onOk : function()
{
var dialog = this;
var abbr = editor.document.createElement( 'rz_db' );
abbr.setText( dialog.getValueOf( 'tab1', 'tenant_dropdown' ) );
editor.insertElement( abbr );
}
};
} );
}
});