baserCMS CKEditorの簡易HTML5(タグの入れ子)対応
- 2024/5/27 に更新
本件オプションの追加機能に関しては、baserCMS4.6.3以降の 「 [CKEditor] aタグ内にブロック要素を置くと、勝手にaタグの外に吐き出される問題 #1855」で対応済みです。baserCMS4.6.3以降のバージョンで、オプションを追加したい場合は、 「fix #1855 [CKEditor] aタグ内にブロック要素を置くと、勝手にaタグの外に吐き出される問題を解決 (#1856)」 に記載された通り、/app/Config/setting.php に追記することで対応可能です。
baserCMS4.6.2以前のバージョンでCKEditorを利用している場合、aタグ内のコンテンツモデルがaタグの外に出されてしまう現象をなんとかしようというもの。
HTML5以前は、aタグでdivタグなどのボックス要素を囲うことは禁止されていましたが、HTML5では、親要素のコンテンツモデルによっては、aタグの中にdivやhタグを入れることが許されています。当然、許されていないケースも包含してしまうので、運用上注意は必要ですが、そもそもできることをできないとして振る舞うよりはマシなので。
lib/Baser/webroot/js/admin/vendors/ckeditor/
フォルダをまるっとtheme/インストールテーマ/js/admin/vendors/ckeditor/
にコピーし、config.jsファイルに以下の様に追記。
CKEDITOR.editorConfig = function( config ) {
CKEDITOR.dtd.a.div = 1;
CKEDITOR.dtd.a.p = 1;
CKEDITOR.dtd.a.article = 1;
CKEDITOR.dtd.a.figure = 1;
CKEDITOR.dtd.a.dl = 1;
CKEDITOR.dtd.a.h2 = 1;
CKEDITOR.dtd.a.h3 = 1;
CKEDITOR.dtd.a.h4 = 1;
CKEDITOR.dtd.a.h5 = 1;
};
変更を反映させるためには、「baserCMS CKEditor 4.x エディタテンプレート選択画面の「現在のエディタの内容と置き換えます」のデフォルトチェックを外したい。」 の「設定を反映させるために必要な措置」の手順を行なってください。