CKEDITOR.dialog.add( 'galleryDialog', function( editor ) { return { title: 'Вставка Галереи', minWidth: 400, minHeight: 200, contents: [ { id: 'tab-basic', label: 'Базовые', elements: [ { type: 'text', id: 'url', label: 'Вставьте ссылку', validate: CKEDITOR.dialog.validate.notEmpty( "Поле для ссылки не должно быть пустым вида http://www.amic.ru/photo/nnn/" ), setup: function( element ) { //his.setValue( 'hhhh' ); // console.log(element.getAttribute( "url" )); this.setValue( element.getAttribute( "url" ) ); // console.log( element ); }, commit: function( element ) { element.setText( this.getValue() ); } }, { type: 'radio', id: 'type', label: 'Выбрать', items: [ [ 'С иконками', '1' ], [ 'Авто play, с точками', '2' ], [ 'Точки (50%)', '3' ], [ 'Для вертикальных', '4' ] ], 'default': '1', setup: function( element ) { this.setValue( element.getAttribute( "type" ) ); }, commit: function( element ) { element.setAttribute( "type", this.getValue() ); } } ] }, ], onShow: function() { var selection = editor.getSelection(); var element = selection.getStartElement(); // if ( element ) // element = element.getAscendant( 'url', true ); if ( !element || $(element).attr('id') != 'widgetgallery' ) { element = editor.document.createElement( 'gallery' ); this.insertMode = true; } else this.insertMode = false; this.element = element; // console.log(element); // console.log(this); if ( !this.insertMode ) this.setupContent( this.element ); }, onOk: function() { var dialog = this; var gallery = editor.document.createElement( 'div' ); gallery.setAttribute('id', 'widgetgallery'); gallery.setAttribute( 'type', dialog.getValueOf('tab-basic', 'type') ); gallery.setAttribute( 'url', dialog.getValueOf( 'tab-basic', 'url' ) ); gallery.setHtml('  '); editor.insertElement( gallery ); } }; });