MTAppMakeField
メインカラムのフィールド(ラベル・コンテンツ・ヒント)の HTML 文字列を生成して返す静的ヘルパー。append/prepend で独自項目を差し込む。
メインカラムのフィールド(ラベル・コンテンツ・ヒントを持つ 1 項目)の HTML 文字列を生成して返す静的ヘルパーです。$('#sortable').append(...) などと組み合わせて、カスタムフィールド領域に独自の項目を差し込むときに使います。
構文
$.MTAppMakeField(options);静的メソッド($.MTAppMakeField(...))です。戻り値は HTML 文字列なので、append() / prepend() に渡して使います。
パラメータ
options {Object} — 省略可。以下のプロパティを持ちます。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
basename | string | '' | 付与する id(<basename>-field)。属性として安全に設定される。空のときは id を付けない |
label | string | '' | ラベル部分。呼び出し側が組み立てた HTML をそのまま描画する |
content | string | '' | コンテンツ部分。同上の HTML をそのまま描画する |
hint | string | '' | コンテンツ下のヒント部分。指定があるときだけ .hint を出力する |
id | string | '' | 非推奨: 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— メインカラムのフィールドを指定順に並べ替える。