MTAppMakeField

メインカラムのフィールド(ラベル・コンテンツ・ヒント)の HTML 文字列を生成して返す静的ヘルパー。append/prepend で独自項目を差し込む。

メインカラムのフィールド(ラベル・コンテンツ・ヒントを持つ 1 項目)の HTML 文字列を生成して返す静的ヘルパーです。$('#sortable').append(...) などと組み合わせて、カスタムフィールド領域に独自の項目を差し込むときに使います。

構文

$.MTAppMakeField(options);

静的メソッド($.MTAppMakeField(...))です。戻り値は HTML 文字列なので、append() / prepend() に渡して使います。

パラメータ

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

プロパティ既定値説明
basenamestring''付与する id(<basename>-field)。属性として安全に設定される。空のときは id を付けない
labelstring''ラベル部分。呼び出し側が組み立てた HTML をそのまま描画する
contentstring''コンテンツ部分。同上の HTML をそのまま描画する
hintstring''コンテンツ下のヒント部分。指定があるときだけ .hint を出力する
idstring''非推奨: basename のエイリアス。basename 未指定時のみ採用

戻り値

{string} — フィールドの HTML 文字列。

使用例

フィールドを生成してメインカラムに追加

$('#sortable').append($.MTAppMakeField({
    basename: 'my_field',
    label: 'My Field',
    content: '<input type="text" class="text full-width">',
    hint: '補足説明をここに表示します'
}));

user.js での記述例

user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。

(function ($) {
    if (typeof mtappVars !== 'object') return;
    if (mtappVars.screen_id === 'edit-entry') {
        $('#sortable').append($.MTAppMakeField({
            basename: 'my_field',
            label: 'My Field',
            content: '<input type="text" class="text full-width">',
            hint: '補足説明をここに表示します'
        }));
    }
})(jQuery);

生成される HTML

<div id="my_field-field" class="field field-top-label sort-enabled">
    <div class="field-header"><label>My Field</label></div>
    <div class="field-content">
        <input type="text" class="text full-width">
        <div class="hint">補足説明をここに表示します</div>
    </div>
</div>

basename を省略すると id 属性は付きません。hint を省略すると .hint は出力されません。

補足

  • label / content / hint は、呼び出し側が組み立てた HTML をそのまま描画する意図的なシンクです(例: content<input><textarea> を渡す)。ユーザー入力をそのまま渡さないでください。
  • basename は id 属性として安全に設定されるため、特殊文字が含まれても属性インジェクション(DOM-XSS)にはなりません。
  • 内部は jQuery DOM で組み立ててから outerHTML を文字列として返します。戻り値は文字列なので、append() / prepend() のほか文字列として扱えます。
  • ラベルが上に付く(field-top-label)並べ替え可能(sort-enabled)なフィールドとして生成されます。

関連

  • MTAppMakeWidget — サイドバーのウィジェット(開閉可)の HTML 文字列を生成して返す。
  • MTAppMoveToWidget — 指定したフィールドをサイドバーのウィジェットへ移動する。
  • MTAppFieldSort — メインカラムのフィールドを指定順に並べ替える。