[Ckeditor-project] customConfigによる設定

アーカイブの一覧に戻る

天野 卓 taku****@toi-p*****
2009年 11月 11日 (水) 15:43:33 JST


山本さん、天野です。

MODx用のCKEditorのリリースお疲れさまです。
CKEditorを使うためにMODxではどのようにやっているのかなと思いダウンロードしてみました。
あまり内容まで詳しく読み込んでいない中で恐縮ですが、
custom_config.phpでの設定の方法が気になったので、念のため指摘をさせてください。


説明の前に先に内容を書いておくと、
以下のような書き方だと場合によっては問題が起きることがあり、
-----------------------------------------
CKEDITOR.config.toolbar = 'MODx';
CKEDITOR.config.toolbar_MODx =
[
-----------------------------------------
以下のようにしておいた方がよいのではと思いました。
-----------------------------------------
CKEDITOR.editorConfig = function(config) {
    config.toolbar = 'MODx';
    config.toolbar_MODx =
    [
-----------------------------------------


以下説明です。

「custom_config.php」ファイルは、
「CKEDITOR.replace」の際に指定しているものと思うのですが、
この際、初期化の過程(端折ってですが)は以下のようになるようです。

1. ckeditor.jsの読み込み
2. CKEDITOR.replaceの呼び出し
3. エディタインスタンスの初期化
4. custom_config.phpの読み込み
5. CKEDITOR.editorConfig が関数である場合は呼び出し
6. プラグインファイルの読み込み (グローバルの設定値を設定)
7. (グローバルの設定値をインスタンス毎に上書きした設定値で更新したもので、)
  プラグインを初期化

ただここで配付版のCKEDitorのckeditor.jsでは、
デフォルトのプラグインがすべて含まれている(詰め込まれている)ため、
実際には上記の(6)は行われず、(1)の時点で読み込まれています。
つまり、グローバルの設定値も設定されているのです。

ここがCKEditorのよくない所だとも思うのですが、
この配付版の状態だと、1の時点で既にグローバルの設定値が定義されているので、
4で設定値を上書きすることができるのですが、
例えば外部のプラグインを後から追加した場合には、
4の後の6でグローバルの設定値が設定されるので、
4で設定した内容が上書きされてしまいます。


ckeditor.jsを差し替えない限り現在の方法で問題が起きることはないと思うのですが、
もしもご存じなければと思いまして、念のための指摘です。

いかがでしょうか。

-- 
ToI企画
 天野 卓(あまの たく)
Mail:taku****@toi-p*****
Tel(FAX):0267-67-8230
Address:長野県佐久市岩村田2215−21




Ckeditor-project メーリングリストの案内
アーカイブの一覧に戻る