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>

「管理画面カスタマイズ設定」は「高度な設定」と違い、ワークスペース/スペース毎に設定出来るし、システムレベルに書いても、テンプレートタグを使えるので設計の自由度が上がる^^

ただもうちょっと検証した方がよいのかも。

関連するタグ

PowerCMS 6.5, TinyMCE, 管理画面カスタマイズ設定