plugin.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. CKEDITOR.plugins.add('newPlugin',{
  3. init: function(editor){
  4. var cmd = editor.addCommand('newPlugin', {
  5. exec:function(editor){
  6. editor.insertHtml( (new Date()).toString() ); // ñîáñòâåííî ñàìà ðàáîòà ïëàãèíà
  7. }
  8. });
  9. cmd.modes = { wysiwyg : 1, source: 1 };// ïëàãèí áóäåò ðàáîòàòü è â ðåæèìå wysiwyg è â ðåæèìå èñõîäíîãî òåêñòà
  10. editor.ui.addButton('newPlugin',{
  11. label: 'Äîáàâèòü òåêóùóþ äàòó è âðåìÿ',
  12. command: 'newPlugin',
  13. toolbar: 'about'
  14. });
  15. },
  16. icons:'personage', // èêîíêà
  17. });
  18. */
  19. (function() {
  20. CKEDITOR.plugins.add( 'newPlugin',function( editor )
  21. {
  22. var pluginName = 'newPlugin';
  23. // ðåãèñòðèðóåì äèàëîãîâîå îêíî
  24. CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/' + pluginName + '.js' );
  25. // ñâÿçûâàåì äèàëîãîâîå îêíî ñ êîìàíäîé pluginName
  26. // êîìàíäà pluginName îòäàåòñÿ ïðè íàæàòèè èêîíêè íà òóëáàðå
  27. editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
  28. // äîáàâëÿåì css äëÿ èêîíêè â ðåäàêòîðå
  29. var basicCss =
  30. 'background:url(' + CKEDITOR.getUrl( this.path + 'icons/personage.png' ) + ') no-repeat left center;' +
  31. 'border:1px dotted #aaa;';
  32. editor.addCss(
  33. 'img.' + pluginName +
  34. '{' +
  35. basicCss +
  36. 'width:32px;' +
  37. 'min-height:31px;' +
  38. // The default line-height on IE.
  39. 'height:1.15em;' +
  40. // Opera works better with "middle" (even if not perfect)
  41. 'vertical-align:' + ( CKEDITOR.env.opera ? 'middle' : 'text-bottom' ) + ';' +
  42. 'border-collapse: collapse;' +
  43. '};');
  44. // îáðàáàòûâàåì äâîéíîé êëèê â ðåäàêòîðå
  45. editor.on( 'doubleclick', function( evt )
  46. {
  47. var element = evt.data.element;
  48. // åñëè <img> ñ àòðèáóòîì êàê íàçâàíèå ïëàãèíà, òî îòêðîåì äèàëîãîâîå îêíî
  49. if ( element.is( 'img' ) && element.getAttribute( pluginName ) )
  50. evt.data.dialog = pluginName;
  51. } );
  52. // äîáàâëÿåì êíîïêó íà òóëáàð
  53. if(editor.ui.addButton)
  54. {
  55. editor.ui.addButton( 'newPlugin',
  56. {
  57. label: 'Ïòóö',
  58. command: 'newPlugin',
  59. toolbar: 'about'
  60. } );
  61. }
  62. });
  63. })();