Hi, I noticed that the plugins .js files get downloaded even if your toolbar doesn't use them. Therefore i suggest the following change which feeds the toolbar in and only loads the plugin if it is required.
FCKeditor/editor/fckeditor.html:
to
FCKEditor/editor/_source/internals/fckconfig.js (Also search for other instances of FCKConfig.Plugins.Add throughout the editor and make sure the signature matches):
to
FCKEditor/editor/_source/internals/fckplugins.js (Also search for other instances of FCKPlugins.Load throughout the editor and make the same changes):
to
Please note that this does mean you will need to feed in (as the 4th parameter) the toolbar you wish to use the plugin for. ie FCKConfig.Plugins.Add('autogrow', 'en', null, 'Default'); within the fckconfig.js file.
FCKeditor/editor/fckeditor.html:
FCKPlugins.Load() ;
to
FCKPlugins.Load(FCKURLParams['Toolbar'] || 'Default') ;
FCKEditor/editor/_source/internals/fckconfig.js (Also search for other instances of FCKConfig.Plugins.Add throughout the editor and make sure the signature matches):
FCKConfig.Plugins.Add = function( name, langs, path ) { FCKConfig.Plugins.Items.AddItem( [name, langs, path] ) ; }
to
FCKConfig.Plugins.Add = function( name, langs, path, toolbar ) { FCKConfig.Plugins.Items.AddItem( [name, langs, path, toolbar] ) ; }
FCKEditor/editor/_source/internals/fckplugins.js (Also search for other instances of FCKPlugins.Load throughout the editor and make the same changes):
FCKPlugins.Load = function() { var oItems = FCKPlugins.Items ; // build the plugins collection. for ( var i = 0 ; i < FCKConfig.Plugins.Items.length ; i++ ) { var oItem = FCKConfig.Plugins.Items[i] ; var oPlugin = oItems[ oItem[0] ] = new FCKPlugin( oItem[0], oItem[1], oItem[2] ) ; FCKPlugins.ItemsCount++ ; } // Load all items in the plugins collection. for ( var s in oItems ) oItems[s].Load() ; // This is a self destroyable function (must be called once). FCKPlugins.Load = null ; }
to
FCKPlugins.Load = function(toolbar) { var oItems = FCKPlugins.Items ; // build the plugins collection. for ( var i = 0 ; i < FCKConfig.Plugins.Items.length ; i++ ) { if (oItem[3] == toolbar) { var oItem = FCKConfig.Plugins.Items[i] ; var oPlugin = oItems[ oItem[0] ] = new FCKPlugin( oItem[0], oItem[1], oItem[2] ) ; FCKPlugins.ItemsCount++ ; } } // Load all items in the plugins collection. for ( var s in oItems ) oItems[s].Load() ; // This is a self destroyable function (must be called once). FCKPlugins.Load = null ; }
Please note that this does mean you will need to feed in (as the 4th parameter) the toolbar you wish to use the plugin for. ie FCKConfig.Plugins.Add('autogrow', 'en', null, 'Default'); within the fckconfig.js file.
Re: Plugin Improvement
simple example: the dragresizetable
it's easy to find several plugins that don't depend on the toolbar or that has more than one button.
Re: Plugin Improvement
to