PowerCMSのTinyMCEの「高度な設定」を管理画面カスタマイズ設定でやる試み
PowerCMSのTinyMCEは、CMS管理画面からJSで設定を追記してカスタマイズできる機能がある。
具体的には、システムレベルの管理画面のメニュー「設定>PowerCMS」で設定画面を開き、項目「TinyMCE設定>高度な設定」から設定が可能。
しかし、今どのワークスペース/スペース配下のオブジェクトの編集画面にいるのかについて、JSで判別するのが難儀する。
CMSテンプレートタグが使えればよいのだが、当該入力項目はテンプレートタグを解釈しない。
そこで代わりに、同じくCMSの標準機能である「管理画面カスタマイズ設定」を使って「高度な設定」と同じように設定できないか、例を用いて試みる。
今回は、公式で紹介されていた次のコードについて、「管理画面カスタマイズ設定」での設定を試みる。
リッチテキストエディタ(TinyMCE)を拡張する | PowerCMS ブログ | PowerCMS - カスタマイズする CMS
tinymce_editor.init['force_br_newlines'] = true; tinymce_editor.init['force_p_newlines'] = false; tinymce_editor.init['forced_root_block'] = '';
結果、次の通りのコードを適用して実現出来た。
<mt:if name="request.__mode" eq="view"> <mt:if name="request._type" eq="page"> <script> MT.Editor.TinyMCE.config['force_br_newlines'] = true; MT.Editor.TinyMCE.config['force_p_newlines'] = false; MT.Editor.TinyMCE.config['forced_root_block'] = ''; </script> </mt:if> <mt:if name="request._type" eq="entry"> <script> MT.Editor.TinyMCE.config['force_br_newlines'] = true; MT.Editor.TinyMCE.config['force_p_newlines'] = false; MT.Editor.TinyMCE.config['forced_root_block'] = ''; </script> </mt:if> </mt:if>
「管理画面カスタマイズ設定」は「高度な設定」と違い、ワークスペース/スペース毎に設定出来るし、システムレベルに書いても、テンプレートタグを使えるので設計の自由度が上がる^^
ただもうちょっと検証した方がよいのかも。