FCKeditor-2
2006年2月21日
初めの第一歩
まず、肝心のFCKeditorをハッキングしなければならない。今回使用するのは、バージョン2,2である。ダウンロードされたzipファイルを展開すると、PHPをはじめASP・Perlなど様々な言語に対応していることが分かる。 PHPで使用するには、fckeditor.phpをインクルードし、そこにあるFCKEditorクラスのインスタンスを作成することで起動できる。
FCKEditor::Create()を呼び出すと、必要なHTMLが出力される。次の例のような物である。
つづけて、editor/fckeditor.htmlが呼び出され、その中で別のHTMLやらjavascriptやらが呼び出されるようになっている。
どうやら、メインルーチンはeditor/js/フォルダに入っている5つのjavascript
fck_start.js
fckeditorcode_gecko_1.js
fckeditorcode_gecko_2.js
fckeditorcode_ie_1.js
fckeditorcode_ie_2.js
のようである。見て分かるように、2種類のブラウザ、GeckoとIEの両方に対応するように、別々のjavascriptを起動するようになっている。ブラウザの種類を判別して、必要な方のjsファイルをインクルードするようになっているらしい。
他に目に付くのは、editor/lang/フォルダ。ここにはかなりの量の言語に対応したjsファイルが含まれているが、その中からenとjaだけをピックアップして、他は消去した。
editor/filemanagerフォルダには、FCKeditorの機能としてのファイルアップロード用のサーバ機能を提供するツールが入っているが、これも消去。
editor/dialog/フォルダには、各種ダイアログを表示するためのHTML, js ファイルが含まれている。後述するが、ここを主にNucleus用に変更していくことになりそうである。
ここで、制作目標を一つ追加。『ブラウザ特異的なコードは一切変更しない』。これは、上記の5つのjavascriptファイルに相当する。この5つは変更せずに行きたい。
まず、肝心のFCKeditorをハッキングしなければならない。今回使用するのは、バージョン2,2である。ダウンロードされたzipファイルを展開すると、PHPをはじめASP・Perlなど様々な言語に対応していることが分かる。 PHPで使用するには、fckeditor.phpをインクルードし、そこにあるFCKEditorクラスのインスタンスを作成することで起動できる。
FCKEditor::Create()を呼び出すと、必要なHTMLが出力される。次の例のような物である。
<div> <input type="hidden" id="body" name="body" value="" style="display:none" /> <input type="hidden" id="body___Config" value="" style="display:none" /> <iframe id="body___Frame" src="(略)/editor/fckeditor.html?InstanceName=body&Toolbar=Default" width="100%" height="400" frameborder="no" scrolling="no"> </iframe> </div>
つづけて、editor/fckeditor.htmlが呼び出され、その中で別のHTMLやらjavascriptやらが呼び出されるようになっている。
どうやら、メインルーチンはeditor/js/フォルダに入っている5つのjavascript
fck_start.js
fckeditorcode_gecko_1.js
fckeditorcode_gecko_2.js
fckeditorcode_ie_1.js
fckeditorcode_ie_2.js
のようである。見て分かるように、2種類のブラウザ、GeckoとIEの両方に対応するように、別々のjavascriptを起動するようになっている。ブラウザの種類を判別して、必要な方のjsファイルをインクルードするようになっているらしい。
他に目に付くのは、editor/lang/フォルダ。ここにはかなりの量の言語に対応したjsファイルが含まれているが、その中からenとjaだけをピックアップして、他は消去した。
editor/filemanagerフォルダには、FCKeditorの機能としてのファイルアップロード用のサーバ機能を提供するツールが入っているが、これも消去。
editor/dialog/フォルダには、各種ダイアログを表示するためのHTML, js ファイルが含まれている。後述するが、ここを主にNucleus用に変更していくことになりそうである。
ここで、制作目標を一つ追加。『ブラウザ特異的なコードは一切変更しない』。これは、上記の5つのjavascriptファイルに相当する。この5つは変更せずに行きたい。