baserCMSのCKEditorのconfig.jsについて

前回の記事の問題点の解決方法です。

何が問題かというと、[テーマディレクトリ]/js/adminなど、adminディレクトリ以下が、テーマを変更すると上書きされてしまいます。

 

baserCMSが元のテーマのadminディレクトリを削除し、新しいテーマにadminディレクトリをコピーしていました。

この時元のテーマからコピーしてくるのではなく、(未確認ですが)baserCMSのオリジナルからコピーしてくるようです。

 

そこで、adminディレクトリ以下には触れずに、CKEditorの設定を変更しようと思います。

 

設定用のファイル作成

[テーマディレクトリ]/js/adminディレクトリではなく、[テーマディレクトリ]/jsディレクトリにckeditor_config.jsファイルを作ります。

(ファイル名はconfig.jsでも良いですが、後で何の設定ファイルかわからなくなるので、ckeditor_config.jsにしました。)

設定用ファイルを読み込むように設定

このファイルをCKEditorが読み込むように、BcCkeditorHelper.php(前回の記事を参照)に1行加えます。

$jscode .= "CKEDITOR.config.protectedSource.push( /<\?[\s\S]*?\?>/g );";

の下に

$jscode .= "CKEDITOR.config.customConfig = CKEDITOR.getUrl('../../ckeditor_config.js');";

を加えます。

以上でCKEditorの設定用ファイルを読み込むようにできました。

補足:テーマに関係なく設定ファイルを適用したい時

今回テーマ下に設定ファイルを置きましたが、テーマによらずに変更する場合はckeditor_config.jsファイルを/app/webrootディレクトリ(他の場所でもいいと思います)に置いて、../../ckeditor_config.jsを絶対パスに書き換えればいけると思います。

絶対パスで指定する場合は、BcCkeditorHelper.phpで$jscode変数を修正する代わりに、_build関数内の$options = の配列の中に、「’customConfig’ => ‘絶対パス’」を加えてもOKです。