Nucleus

FCKeditor-3

2006年2月21日

 現在の状態は、次のスクリーンショットの通り。 Screen shot拡大

 Nucleusオリジナルのメディアマネージャの使用については、editor/dialog/common/fck_dialog_common.jsに有る、OpenFileBrowser()関数に手を加えることで上手くいった。これで、editor/filemanager/フォルダにあるツールは一切不要である。
 ルートディレクトリにあるfckconfig.jsには、様々な設定が記述されている。これを変更することで、FCKeditorの機能の有無を制御することができる。

FCKConfig.LinkUpload = false;
FCKConfig.ImageUpload = false;
FCKConfig.FlashUpload = false;

を設定し、FCKeditorのダイアログによるファイルアップロード機能をオフにした。また、

FCKConfig.CustomConfigurationsPath = '../config.php' ;

を指定し、config.phpの中で細かな設定、例えばFCKConfig.FlashBrowserURL等の設定や、プラグインオプションに由来する設定などができるようにした。

 現在の不都合は、<%image(image.jpg|64|48|alt)%>やプラグインに関連したタグの表記などが全てコメント(<!-- -->)に変換されてしまうことである。これを何とかしなければならない(追記:ProtectedSourceの設定で対応)。また、プラグイン関連のタグはそれっぽく表示されるようにした方が、格好いいだろうな(追記:FCKeditor用のプラグイン作成で対応)。

 それと、FCKeditor自身はUTF-8 でコードされている。EUC対応についても考えなければならない。FCKeditor自身は、Nucleusとは別のフレームの中にHTMLが作成されていて、従ってEUCとUTF-8の混在が可能だが、編集した記事が全てUTF-8になってしまう。これについては、FCKeditorそのものをEUCに書き換えてしまう方法と、event_PreAddItem/event_PreUpdateItemでUTF-8 → EUC変換する方法の二つが考えられそうだが、後者の方法をとる可能性が高いと思っている。

追記
 UTF-8 ←→ EUC 変換は、エンコードの異なる2つのフレーム間でデータのやりとりをする時に自動的にされるようである。従って、PHPでこの変換をする必要は無いらしい。

現時点での変更点のまとめ

_XXXX stuffs: deleted
skins/office, silver: deleted
lang/*.js: deleted
FCKLanguageManager.AvailableLanguages を en と jp のみに設定
editor/fckeditor.original.html: deleted
fcktemplates.xml: deleted
conntectors/xxx/ (except for php), test.html: deleted
uploads/xxx/ (except for php), test.html: deleted
filemanager/: deleted

fckconfig.js:
FCKConfig.UseBROnCarriageReturn    = true ;    // IE only.
//FCKConfig.TemplatesXmlPath    = FCKConfig.EditorPath + 'fcktemplates.xml' ;
FCKConfig.LinkUpload = false ;//Changed for Nucleus
FCKConfig.ImageUpload = false ;//Changed for Nucleus
FCKConfig.FlashUpload = false ;//Changed for Nucleus

FCKConfig.LinkBrowser = true ;
FCKConfig.LinkBrowserWindowWidth    = NucleusMediaWindowWidth ;
FCKConfig.LinkBrowserWindowHeight    = NucleusMediaWindowHeight ;
FCKConfig.LinkBrowserURL= NucleusMediaWindowURL ;

FCKConfig.ImageBrowser = true ;
FCKConfig.ImageBrowserWindowWidth  = NucleusMediaWindowWidth ;
FCKConfig.ImageBrowserWindowHeight = NucleusMediaWindowHeight ;
FCKConfig.ImageBrowserURL= NucleusMediaWindowURL;

FCKConfig.FlashBrowser = true ;
FCKConfig.FlashBrowserWindowWidth  = NucleusMediaWindowWidth ;
FCKConfig.FlashBrowserWindowHeight = NucleusMediaWindowHeight ;
FCKConfig.FlashBrowserURL= NucleusMediaWindowURL;

dialog/common/fck_dialog_common.js の変更
    else { var oWindow =window.open( url, 'FCKBrowseWindow', sOptions ) ; }
    if ( oWindow ) oWindow.window.opener.includeImage=function(collection,filename,type,width,height)
        {
            if (this.GetE('txtUrl')) this.GetE('txtUrl').value=FCKConfig.NucleusMediaDir+collection+'/'+filename;
            if (this.GetE('txtWidth')) this.GetE('txtWidth').value=width;
            if (this.GetE('txtWidth')) this.GetE('txtHeight').value=height;
            //if (this.GetE('txtAttTitle')) this.GetE('txtAttTitle').value=filename;
        };

dialog/fck_link.htmlの変更
    <option value="" fckLang="DlgLnkProtoOther" selected>&lt;other&gt;</option>

 また、FCKeditorでのプラグインはすべて消去し、nucleusという名のプラグインを追加した。ここには、<% %>タグをNucleusのタグと解釈し、小さなNucleusアイコンを表示させるようなルーチンが書かれている。

コメント

コメントはありません

コメント送信