I'm trying to use FCKeditor with the "_source" folder instead of the "js" folder. So I renamed "fckeditor.original.html" to "fckeditor.html" as the documentation specifies.
However, looking at my webserver access logs I can see that the editor is still loading 2 compressed files from the "js" folder, namely,
editor/js/fckeditorcode_gecko_1.js
and
editor/js/fckeditorcode_gecko_2.js
Is the documentation incorrectly specifying how to use the editor with sources? I want to use the sources so that I can more easily debug and modify the code.
Am I making a mistake? Can anyone help?
However, looking at my webserver access logs I can see that the editor is still loading 2 compressed files from the "js" folder, namely,
editor/js/fckeditorcode_gecko_1.js
and
editor/js/fckeditorcode_gecko_2.js
Is the documentation incorrectly specifying how to use the editor with sources? I want to use the sources so that I can more easily debug and modify the code.
Am I making a mistake? Can anyone help?
RE: _source rely on js/fckeditorcode_gecko_1.
The docs are wrong. I submitted a bug report about this on the first (along with exactly why it's happening) and posted a question about it to this forum.
Here's the bug report, for your edification:
https://sourceforge.net/tracker/index.p ... tid=543653
So far, I've had no reply. Tell me if you find out anything.
RE: _source rely on js/fckeditorcode_gecko_1.
I had to dig in to the FCKeditor.Packager.exe (where's the source for this anyway!?) to see what order the files were included in. Then I just replaced the calls to include (FCKScriptLoader.AddScript(...)) the compressed files with the source files that make up that compressed file.
I suspect that this fix will prevent the packager from correctly generating the compressed files since it will have to replace the multiple AddScript calls I added with the single AddScript call for the compressed file, I'll post again when I have more info on that.
Here's how to get the complete sources working,
Make these changes to fck_onload.js,
function LoadScripts()
{
FCKScriptLoader.OnEmpty = null ;
if ( FCKBrowserInfo.IsIE ) {
FCKScriptLoader.AddScript( '_source/internals/fckdebug.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktools.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktools_ie.js' );
FCKScriptLoader.AddScript( '_source/internals/fckregexlib.js' );
FCKScriptLoader.AddScript( '_source/internals/fcklanguagemanager.js' );
FCKScriptLoader.AddScript( '_source/classes/fckevents.js' );
FCKScriptLoader.AddScript( '_source/internals/fckxhtmlentities.js' );
FCKScriptLoader.AddScript( '_source/internals/fckxhtml.js' );
FCKScriptLoader.AddScript( '_source/internals/fck_1.js' );
FCKScriptLoader.AddScript( '_source/internals/fck_1_ie.js' );
} else {
FCKScriptLoader.AddScript( '_source/internals/fckdebug.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktools.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktools_gecko.js' );
FCKScriptLoader.AddScript( '_source/internals/fckregexlib.js' );
FCKScriptLoader.AddScript( '_source/internals/fcklanguagemanager.js' );
FCKScriptLoader.AddScript( '_source/classes/fckevents.js' );
FCKScriptLoader.AddScript( '_source/internals/fckxhtmlentities.js' );
FCKScriptLoader.AddScript( '_source/internals/fckxhtml.js' );
FCKScriptLoader.AddScript( '_source/internals/fck_1.js' );
FCKScriptLoader.AddScript( '_source/internals/fck_1_gecko.js' );
}
/*
if ( FCKBrowserInfo.IsIE )
FCKScriptLoader.AddScript( 'js/fckeditorcode_ie_1.js' ) ;
else
FCKScriptLoader.AddScript( 'js/fckeditorcode_gecko_1.js' ) ;
*/
}
and this in, _source/internals/fck_1.js
FCK.SetStatus = function( newStatus )
{
this.Status = newStatus ;
if ( newStatus == FCK_STATUS_ACTIVE )
{
// Force the focus in the window to go to the editor.
window.onfocus = window.document.body.onfocus = FCK.Focus ;
// Force the focus in the editor.
if ( FCKConfig.StartupFocus )
FCK.Focus() ;
if ( FCKBrowserInfo.IsIE ) {
FCKScriptLoader.AddScript( '_source/internals/fck_2.js' );
FCKScriptLoader.AddScript( '_source/internals/fck_2_ie.js' );
FCKScriptLoader.AddScript( '_source/internals/fckselection.js' );
FCKScriptLoader.AddScript( '_source/internals/fckselection_ie.js' );
FCKScriptLoader.AddScript( '_source/classes/fckpanel_ie.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktablehandler.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktablehandler_ie.js' );
FCKScriptLoader.AddScript( '_source/classes/fckxml.js' );
FCKScriptLoader.AddScript( '_source/classes/fckstyledef.js' );
FCKScriptLoader.AddScript( '_source/classes/fckstyledef_ie.js' );
FCKScriptLoader.AddScript( '_source/classes/fckstylesloader.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fcknamedcommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fck_othercommands.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fcktextcolorcommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fckpasteplaintextcommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fckpastewordcommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fcktablecommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fckstylecommand.js' );
FCKScriptLoader.AddScript( '_source/internals/fckcommands.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarbutton.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarcombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fckspecialcombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarspecialcombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontscombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontsizecombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontformatcombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarstylecombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarpanelbutton.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktoolbaritems.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbar.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktoolbarset.js' );
FCKScriptLoader.AddScript( '_source/internals/fckdialog.js' );
FCKScriptLoader.AddScript( '_source/internals/fckdialog_ie.js' );
FCKScriptLoader.AddScript( '_source/classes/fckcontextmenuitem.js' );
FCKScriptLoader.AddScript( '_source/classes/fckcontextmenuseparator.js' );
FCKScriptLoader.AddScript( '_source/classes/fckcontextmenugroup.js' );
FCKScriptLoader.AddScript( '_source/internals/fckcontextmenu.js' );
FCKScriptLoader.AddScript( '_source/internals/fckcontextmenu_ie.js' );
FCKScriptLoader.AddScript( '_source/classes/fckplugin.js' );
FCKScriptLoader.AddScript( '_source/internals/fckplugins.js' );
FCKScriptLoader.AddScript( '_source/internals/fck_last.js' );
} else {
FCKScriptLoader.AddScript( '_source/internals/fck_2.js' );
FCKScriptLoader.AddScript( '_source/internals/fck_2_gecko.js' );
FCKScriptLoader.AddScript( '_source/internals/fckselection.js' );
FCKScriptLoader.AddScript( '_source/internals/fckselection_gecko.js' );
FCKScriptLoader.AddScript( '_source/classes/fckpanel_gecko.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktablehandler.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktablehandler_gecko.js' );
FCKScriptLoader.AddScript( '_source/classes/fckxml.js' );
FCKScriptLoader.AddScript( '_source/classes/fckstyledef.js' );
FCKScriptLoader.AddScript( '_source/classes/fckstyledef_gecko.js' );
FCKScriptLoader.AddScript( '_source/classes/fckstylesloader.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fcknamedcommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fck_othercommands.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fcktextcolorcommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fckpasteplaintextcommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fckpastewordcommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fcktablecommand.js' );
FCKScriptLoader.AddScript( '_source/commandclasses/fckstylecommand.js' );
FCKScriptLoader.AddScript( '_source/internals/fckcommands.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarbutton.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarcombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fckspecialcombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarspecialcombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontscombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontsizecombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarfontformatcombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarstylecombo.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbarpanelbutton.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktoolbaritems.js' );
FCKScriptLoader.AddScript( '_source/classes/fcktoolbar.js' );
FCKScriptLoader.AddScript( '_source/internals/fcktoolbarset.js' );
FCKScriptLoader.AddScript( '_source/internals/fckdialog.js' );
FCKScriptLoader.AddScript( '_source/internals/fckdialog_gecko.js' );
FCKScriptLoader.AddScript( '_source/classes/fckcontextmenuitem.js' );
FCKScriptLoader.AddScript( '_source/classes/fckcontextmenuseparator.js' );
FCKScriptLoader.AddScript( '_source/classes/fckcontextmenugroup.js' );
FCKScriptLoader.AddScript( '_source/internals/fckcontextmenu.js' );
FCKScriptLoader.AddScript( '_source/internals/fckcontextmenu_gecko.js' );
FCKScriptLoader.AddScript( '_source/classes/fckplugin.js' );
FCKScriptLoader.AddScript( '_source/internals/fckplugins.js' );
FCKScriptLoader.AddScript( '_source/internals/fck_last.js' );
}
/*
if ( FCKBrowserInfo.IsIE )
FCKScriptLoader.AddScript( 'js/fckeditorcode_ie_2.js' ) ;
else
FCKScriptLoader.AddScript( 'js/fckeditorcode_gecko_2.js' ) ;
*/
}
this.Events.FireEvent( 'OnStatusChange', newStatus ) ;
if ( this.OnStatusChange ) this.OnStatusChange( newStatus ) ;
}
RE: _source rely on js/fckeditorcode_gecko_1.
If you look, the packager has "add this code" and a "remove this code" tag that you can use. I can only assume that these tags will work on all the files - not just the html file.
At any rate, the one I make will.
Finished!
The packager is written in lex (lexer generator)+C, so unlike the other one, it should run on anything from a graphing calculator to a supercomputer.
It doesn't generate fck_startup, though, as you didn't mention the need to replace it in your above comment. Did you just decide to skip the use of it?
RE: Finished!
Sweet!!!
What is the best 'lex' to use? I'm running windows, and see flex (http://gnuwin32.sourceforge.net/packages/flex.htm) and something from bumblebee sofware that says it's free and GUI, even. Anyone with experience wanna comment?
Personally I'm gonna go with the sourceforge one, I think, as... well... you know. =]
RE: _source rely on js/fckeditorcode_gecko_1.
You don't need lex, though. I left the C source generated by lex in the package, so you can just compile that if you want.
You might have to use a version of gcc if you use flex, though. Some people have reported problems using the MS compiler along with flex.
RE: _source rely on js/fckeditorcode_gecko_1.
(-: