inject.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. CKEDITOR.dialog.add( 'injectDialog', function( editor ) {
  2. return {
  3. title: 'Вставка Inject',
  4. minWidth: 400,
  5. minHeight: 200,
  6. contents: [
  7. {
  8. id: 'tab-basic',
  9. label: 'Базовые',
  10. elements: [
  11. {
  12. type: 'text',
  13. id: 'url',
  14. label: 'Вставьте ссылку',
  15. validate: CKEDITOR.dialog.validate.notEmpty( "Поле для ссылки не должно быть пустым" ),
  16. setup: function( element ) {
  17. this.setValue( element.getAttribute( "url" ) );
  18. },
  19. commit: function( element ) {
  20. element.setText( this.getValue() );
  21. }
  22. },
  23. {
  24. type: 'radio',
  25. id: 'orientation',
  26. label: 'Выбрать',
  27. items: [ [ 'Маленький', '1' ], [ 'Большой', '2' ], [ 'Узкий', '3' ] ],
  28. 'default': '1',
  29. setup: function( element ) {
  30. this.setValue( element.getAttribute( "type" ) );
  31. },
  32. commit: function( element ) {
  33. element.setAttribute( "orientation", this.getValue() );
  34. }
  35. }
  36. ]
  37. },
  38. ],
  39. onShow: function() {
  40. var selection = editor.getSelection();
  41. var element = selection.getStartElement();
  42. //console.log(editor.getSelectedHtml(true));
  43. //element = editor.document.createElement( editor.getSelectedRanges() );
  44. if ( !element || !element.hasClass('insinject') ) {
  45. element = editor.document.createElement( 'inject' );
  46. this.insertMode = true;
  47. }
  48. else
  49. this.insertMode = false;
  50. this.element = element;
  51. if ( !this.insertMode )
  52. this.setupContent( this.element );
  53. },
  54. onOk: function() {
  55. var dialog = this;
  56. var inject = editor.document.createElement( 'div' );
  57. inject.setAttribute('class', 'insinject');
  58. inject.setAttribute( 'type', dialog.getValueOf('tab-basic', 'orientation') );
  59. inject.setAttribute( 'url', dialog.getValueOf( 'tab-basic', 'url' ) );
  60. inject.setHtml('  ');
  61. editor.insertElement( inject );
  62. }
  63. };
  64. });