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 エディタテンプレート選択画面の「現在のエディタの内容と置き換えます」のデフォルトチェックを外したい。」 の「設定を反映させるために必要な措置」の手順を行なってください。

コメント


コメントする


nuYq4V