PowerCMSの記事の編集画面におけるTinyMCE設定の高度な設定と管理画面カスタマイズ設定の出力順番
なんかよくハマるのでメモ。
例として、記事の編集画面におけるリッチテキストエディタのツールボタンについて、スペース毎にボタン構成を違うものにしたい場合を考える。
実装として、システムレベルのPowerCMS設定画面にて、次のように設定してみる。
TinyMCE 設定>高度な設定:
if (blog_id == 5){ tinymce_editor.init.theme_advanced_buttons1 = ''; }
管理画面カスタマイズ設定:
<MTCMSContext> <mt:blogid setvar="id__blog" /> </MTCMSContext> <script> var blog_id = <mt:var name="id__blog" />; </script>
意図として、管理画面カスタマイズ設定の方でJSの変数に開いている記事の編集画面の所属スペースIDを取得して、スペースID5なら指定のツールボタンの表示設定を適用する、というもの。
結果、JSエラーとなり動いてくれない。
原因としては、「高度な設定」と「管理画面カスタマイズ設定」のそれぞれに入力したコードの出力される順番になる。
係る順番として、次の通りだった。
[TinyMCE設定>高度な設定]
↓
[システムレベル)>管理画面カスタマイズ設定]
↓
[ワークスペース/スペースレベル)管理画面カスタマイズ設定]
なので、前述の変数のblog_idの定義は、「高度な設定」のコードより上に来ないといけない。
この場合、考えうる手段としては、alt-tmplもしくはCMSプラグインによるカスタマイズが考えられる。