MTAppMakeWidget
右サイドバーに置くウィジェットのHTML文字列を生成して返すヘルパーメソッド。canClose を指定するとヘッダーのアイコンで開閉できるウィジェットになる。
右サイドバーに配置するウィジェットの HTML 文字列を生成して返すヘルパーメソッドです。返された文字列を jQuery の .after() / .append() などで任意の位置に挿入して使います。canClose: true を指定すると、PowerCMS 標準のウィジェットと同様にヘッダーのアイコンで開閉できるウィジェットになります。
構文
const html = $.MTAppMakeWidget(options);静的メソッド($.MTAppMakeWidget)です。DOM への挿入は行わず、HTML 文字列を返すだけです。
パラメータ
options {Object} — 省略可。以下のプロパティを持ちます。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
basename | string | '' | 生成するウィジェットの id。<basename>-field の形で付与される。空文字なら id なし |
label | string | '' | ヘッダーに表示するラベル(テキスト/HTML) |
content | string | '' | 本文(テキスト/HTML) |
action | string | '' | ヘッダー内のアクション領域(テキスト/HTML) |
footer | string | '' | フッター(テキスト/HTML) |
canClose | boolean | false | true でヘッダーアイコンによる開閉に対応する |
戻り値
{string} — ウィジェットの HTML 文字列。
使用例
基本(公開ウィジェットの下に追加)
$('#entry-publishing-widget').after($.MTAppMakeWidget({
basename: 'my_widget',
label: 'My Widget',
content: '<p>本文をここに記述します。</p>'
}));開閉できるウィジェット
$('#entry-publishing-widget').after($.MTAppMakeWidget({
label: 'My Widget',
content: '<p>本文をここに記述します。</p>',
footer: 'フッター領域',
canClose: true
}));user.js での記述例
user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。
(function ($) {
if (typeof mtappVars !== 'object') return;
if (mtappVars.screen_id === 'edit-entry') {
$('#entry-publishing-widget').after($.MTAppMakeWidget({
basename: 'my_widget',
label: 'My Widget',
content: '<p>本文をここに記述します。</p>'
}));
}
})(jQuery);生成される HTML
canClose: false(既定):
<div id="my_widget-field" class="widget">
<div class="widget-header">
<div class="widget-action"></div>
<div class="widget-label"><h2><span>My Widget</span></h2></div>
</div>
<div class="widget-content"><p>本文をここに記述します。</p></div>
<div class="widget-footer"></div>
</div>canClose: true:
<div class="widget state-toggle-enable widget-wrapper mtapp-makewidget">
<div class="widget-header state-toggle-active" role="tab" aria-expanded="true">
<div class="widget-action"></div>
<div class="widget-label"><h2><span>My Widget</span></h2></div>
<a class="toggle-icon" href="javascript:void(0)" aria-label="開閉"></a>
</div>
<div class="widget-content" role="tabpanel" aria-hidden="false"><p>本文をここに記述します。</p></div>
<div class="widget-footer">フッター領域</div>
</div>補足
- このメソッドは HTML 文字列を返すだけです。画面への挿入は呼び出し側で行ってください(
.after()/.append()/.before()など)。 canClose: trueのときは、ヘッダーの開閉アイコンに対する委譲ハンドラが一度だけ登録されます。対象は.mtapp-makewidgetクラスを持つ MTApp 生成ウィジェットに限定されるため、PowerCMS 標準のウィジェット開閉とは干渉しません。開閉時は本文(.widget-content)とフッター(.widget-footer)がまとめて開閉します。MTAppUserMenuWidget/MTAppMoveToWidget/MTAppMultiFileUpload/MTAppOtherTypeCategoriesの内部でも、ウィジェット生成に利用されています。
関連
MTAppMakeField— メインカラムのフィールドの HTML 文字列を生成する。MTAppMoveToWidget— 既存のフィールドを新規ウィジェットにまとめてサイドバーへ移動する。