MTAppApplyTinyMCE

概要欄や複数行テキストのカスタムフィールド(textarea)を MT.EditorManager でリッチテキストエディタ(TinyMCE)化する静的メソッド。記事編集画面専用。公開時にエディタ内容を textarea へ書き戻す。

概要欄や複数行テキストのカスタムフィールド(textarea)を、リッチテキストエディタ(TinyMCE)に変更する静的メソッドです。Movable Type / PowerCMS の公式エディタ基盤 MT.EditorManager を使ってリッチ化します。記事編集画面でのみ動作します。

構文

$.MTAppApplyTinyMCE(options);

静的メソッド($.MTAppApplyTinyMCE)です。

パラメータ

options {Object} — 以下のプロパティを持ちます。

プロパティ既定値説明
targetArray[]リッチテキスト化する textareaid 配列(例 ['excerpt', 'customfield_document'])。customfield_ 付きの id をそのまま指定します
sortablebooleantruetrue#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_filenameedit_entry)でのみ動作します。
  • リッチテキスト化には MT.EditorManager(MT/PowerCMS のエディタ基盤)が必要です。読み込まれていない場合は何もしません。
  • target の id は そのまま使われますcustomfield_ 接頭辞を取り除く必要はありません)。MT.EditorManager は要素を id で検索するため、id を改名せずに動作します。
  • 公開・保存時に、各エディタの内容を元の textarea へ書き戻します(手動で生成したエディタは MT の保存処理に自動では乗らないため、フォーム送信時に明示的に保存します)。
  • 対象に指定した id の textarea が存在しない場合は、その id をスキップします。
  • sortable: true のときは、フィールドをドラッグ&ドロップで並べ替えると(DOM の移動でエディタが壊れるため)並べ替え後にエディタを作り直します。

関連

  • MTAppJSONTabletextarea の JSON を表形式の入力 UI で編集する。
  • MTAppDebug — フィールドのベースネーム一覧などデバッグ情報を表示する。