FCKeditor自体は簡単に設置できたのだが、アップロード機能の設定は簡単というわけにはいかない。
以下の動作を理解しなければ出来ないからだ。
1. ファイルマネージャーの動作
2. ファイルマネージャーからAjaxで呼び出されるコネクターの動作
今回の説明は、PHP、JavaScriptともに中級以上の人じゃないと理解出来ないかもしれない。
とにかく、まず、これらの基本的な設定を行う。
fckconfig.js
以下の部分を修正する。
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php FCKConfig.LinkUpload = false ; FCKConfig.ImageUpload = false ; FCKConfig.FlashUpload = false ;
コネクターにはPHPを使う。
そして、アップロードタブは表示しない。アップロードタブで選択するアップローダにはバグがあり、目的のフォルダにアップロードできないためだ。
editor/filemanager/browser/default/connectors/php/config.php
以下の部分を修正する。
$Config['Enabled'] = true ; // $Config['UserFilesPath'] = '/UserFiles/' ;
コネクターを使用可にする。
アップロードディレクトリを動的に指定できるようにする。
アップロードディレクトリ
アップロードディレクトリを作成しておく。Webサーバが更新できるよう、アクセス権を設定しておく。PHPやCGIでユーザ別のディレクトリを作成する場合も、同様にアクセス権を設定させる。
FCKeditorのファイルマネージャは、指定されたアップロードディレクトリ上に、自動的にタイプ別のサブディレクトリを作成する。
このため、PHPがセーフモードの場合にはアップロードしたファイルを保存できないので注意が必要だ。
PHPスクリプトの修正
FCKeditor – 設置編 のサンプルを基に、PHPスクリプトを修正する。
<?php ... define('DIR_UPLOAD_USER', '/upload/user/'); ... $user_id = [ユーザID]; ... ?> ... <script type="text/javascript" src="FCKeditor/fckeditor.js"></script> <script type="text/javascript"> <!-- function on_load() { //================================================================== // FCK Editor var oFCKeditor = new FCKeditor( 'contents' ); oFCKeditor.BasePath = '/FCKeditor/'; oFCKeditor.Width = '800'; oFCKeditor.Height = '700'; oFCKeditor.ToolbarSet = 'Default'; path = '<?php echo DIR_UPLOAD_USER . $user_id . '/'; ?>'; connector = 'connectors/php/connector.php'; url = oFCKeditor.BasePath + 'editor/filemanager/browser/default/browser.html'; oFCKeditor.Config['LinkBrowserURL'] = url + '?Connector=' + connector + '&ServerPath=' + path; oFCKeditor.Config['ImageBrowserURL'] = url + '?Connector=' + connector + '&ServerPath=' + path + '&Type=Image'; oFCKeditor.Config['FlashBrowserURL'] = url + '?Connector=' + connector + '&ServerPath=' + path + '&Type=Flash'; url = oFCKeditor.BasePath + 'editor/filemanager/upload/php/upload.php'; oFCKeditor.Config['LinkUploadURL'] = url + '?ServerPath=' + path; oFCKeditor.Config['ImageUploadURL'] = url + '?ServerPath=' + path + '&Type=Image'; oFCKeditor.Config['FlashUploadURL'] = url + '?ServerPath=' + path + '&Type=Flash'; oFCKeditor.ReplaceTextarea(); } // --> </script> ...
FCKeditor(MovableType)
MovableTypeにWYSIWYGエディタのFCKeditorをインストール…