inject.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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.attr( "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.attr( "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. var element = $(editor.getSelectedHtml(true));
  44. // element = editor.getSelection().selectElement( editor.getSelectedHtml(true) );
  45. console.log(element.get()[0]);
  46. // alert(element.hasClass('insinject'));
  47. // element = $(editor.getSelectedHtml(true));
  48. // element = editor.document.createElement( element );
  49. if ( !element || !element.hasClass('insinject') ) {
  50. element = editor.document.createElement( 'inject' );
  51. this.insertMode = true;
  52. }
  53. else
  54. this.insertMode = false;
  55. this.element = element;
  56. if ( !this.insertMode )
  57. this.setupContent( this.element );
  58. },
  59. onOk: function() {
  60. var dialog = this;
  61. var inject = editor.document.createElement( 'div' );
  62. inject.setAttribute('class', 'insinject');
  63. inject.setAttribute( 'type', dialog.getValueOf('tab-basic', 'orientation') );
  64. inject.setAttribute( 'url', dialog.getValueOf( 'tab-basic', 'url' ) );
  65. inject.setHtml(' ');
  66. editor.insertElement( inject );
  67. }
  68. };
  69. });