plugin.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. CKEDITOR.plugins.add( 'figure', {
  2. icons: 'figure',
  3. init: function( editor ) {
  4. // console.log(CKEDITOR.dtd);
  5. // console.log(CKEDITOR.dtd['span']);
  6. // CKEDITOR.dtd['figure'] = {};
  7. // CKEDITOR.dtd.$block['figure'] = 0;
  8. // CKEDITOR.dtd.$blockLimit['figure'] = 0;
  9. // CKEDITOR.dtd.$object['figure'] = 1;
  10. // CKEDITOR.dtd.$removeEmpty['figure'] = 1;
  11. // CKEDITOR.dtd.$inline['figure'] = 1;
  12. // editor.filter.allow( 'figure' );
  13. editor.addCommand( 'figure', new CKEDITOR.dialogCommand( 'figureDialog' ) );
  14. editor.ui.addButton( 'Figure', {
  15. label: 'Вставьте информационный текст',
  16. command: 'figure',
  17. toolbar: 'insert'
  18. });
  19. if ( editor.contextMenu ) {
  20. editor.addMenuGroup( 'figureGroup' );
  21. editor.addMenuItem( 'figureItem', {
  22. label: 'Редактировать инфо. блок ',
  23. icon: this.path + 'icons/figure.png',
  24. command: 'figure',
  25. group: 'figureGroup'
  26. });
  27. editor.on( 'doubleclick', function( evt ) {
  28. var element = evt.data.element;
  29. if ( $(element).attr('class') == 'infoblock' ){
  30. evt.data.dialog = 'figureDialog';
  31. evt.data.command = 'editfigure';
  32. }
  33. } );
  34. editor.contextMenu.addListener( function( element ) {
  35. if ( element.getAscendant( 'figure', true ) ) {
  36. return { abbrItem: CKEDITOR.TRISTATE_OFF };
  37. }
  38. });
  39. }
  40. CKEDITOR.dialog.add( 'figureDialog', this.path + 'dialogs/figure.js' );
  41. }
  42. });