MTAppApplyTinyMCE
概要欄や複数行テキストのカスタムフィールド(textarea)を MT.EditorManager でリッチテキストエディタ(TinyMCE)化する静的メソッド。記事編集画面専用。公開時にエディタ内容を textarea へ書き戻す。
概要欄や複数行テキストのカスタムフィールド(textarea)を、リッチテキストエディタ(TinyMCE)に変更する静的メソッドです。Movable Type / PowerCMS の公式エディタ基盤 MT.EditorManager を使ってリッチ化します。記事編集画面でのみ動作します。
構文
$.MTAppApplyTinyMCE(options);静的メソッド($.MTAppApplyTinyMCE)です。
パラメータ
options {Object} — 以下のプロパティを持ちます。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
target | Array | [] | リッチテキスト化する textarea の id 配列(例 ['excerpt', 'customfield_document'])。customfield_ 付きの id をそのまま指定します |
sortable | boolean | true | true で #sortable(フィールドのドラッグ&ドロップ並べ替え)に対応し、並べ替え後にエディタを作り直します |
戻り値
なし(undefined)。
保存される値
TinyMCE で編集したリッチテキスト(HTML 文字列)が保存されます。フォーム送信時に各エディタの内容が元の textarea へ書き戻され、その HTML が保存対象になります。
使用例
// 概要欄とカスタムフィールド(textarea)をリッチテキスト化
$.MTAppApplyTinyMCE({ target: ['excerpt', 'customfield_document'] });
// 並べ替えを使わない場合
$.MTAppApplyTinyMCE({ target: ['customfield_lead'], sortable: false });user.js での記述例
user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。
(function ($) {
if (typeof mtappVars !== 'object') return;
if (mtappVars.screen_id === 'edit-entry') {
$.MTAppApplyTinyMCE({ target: ['excerpt', 'customfield_document'] });
}
})(jQuery);補足
- 記事編集画面(
template_filenameがedit_entry)でのみ動作します。 - リッチテキスト化には
MT.EditorManager(MT/PowerCMS のエディタ基盤)が必要です。読み込まれていない場合は何もしません。 targetの id は そのまま使われます(customfield_接頭辞を取り除く必要はありません)。MT.EditorManagerは要素を id で検索するため、id を改名せずに動作します。- 公開・保存時に、各エディタの内容を元の
textareaへ書き戻します(手動で生成したエディタは MT の保存処理に自動では乗らないため、フォーム送信時に明示的に保存します)。 - 対象に指定した id の
textareaが存在しない場合は、その id をスキップします。 sortable: trueのときは、フィールドをドラッグ&ドロップで並べ替えると(DOM の移動でエディタが壊れるため)並べ替え後にエディタを作り直します。
関連
MTAppJSONTable—textareaの JSON を表形式の入力 UI で編集する。MTAppDebug— フィールドのベースネーム一覧などデバッグ情報を表示する。