MTAppDialogMsg
jQuery UI の dialog を使い、メッセージをダイアログ(ポップアップ)で表示する静的メソッド。タイトル・本文・モーダル表示・閉じる時のエフェクトやコールバックを指定できる。本文(content)は HTML として描画される。
jQuery UI の dialog を使って、メッセージをダイアログ(ポップアップ)で表示する静的メソッドです。タイトル・本文・モーダル表示・閉じる時のエフェクトやコールバックを指定できます。MTAppMsg が画面上部の通知バーなのに対し、こちらは画面中央に重ねて表示し、ユーザーの確認を促したいときに使います。
構文
$.MTAppDialogMsg(options);静的メソッド($.MTAppDialogMsg)です。
パラメータ
options {Object} — 省略可。以下のプロパティを持ちます。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
title | string | 'メッセージ' | ダイアログのタイトルバーに表示する文字列 |
content | string | 'Movable Typeへようこそ!' | ダイアログの本文。HTML としてそのまま描画されます |
width | number | string | 'auto' | ダイアログの横幅(数値指定時は px。単位は付けない) |
height | number | string | 'auto' | ダイアログの高さ(数値指定時は px。単位は付けない) |
modal | boolean | false | true で背面を覆うモーダルダイアログにする |
hideEffect | string | '' | 閉じる時のエフェクト('explode' / 'slide' / 'drop' など jQuery UI の effect 名)。非推奨エイリアス: hide_effect |
close | Function | null | 閉じた時に呼ばれるコールバック。function(event, ui) の形で受け取れます |
戻り値
なし(undefined)。
使用例
// 最小構成(タイトル・本文だけ指定)
$.MTAppDialogMsg({ title: '完了', content: '保存しました。' });
// モーダル表示・幅指定・閉じた時にコールバック
$.MTAppDialogMsg({
title: 'お知らせ',
content: '公開設定を変更しました。<br>反映には数分かかります。',
width: 400,
modal: true,
close: (event, ui) => {
console.log('ダイアログが閉じられました');
}
});user.js での記述例
user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。
(function ($) {
if (typeof mtappVars !== 'object') return;
if (mtappVars.screen_id === 'edit-entry') {
$.MTAppDialogMsg({ title: '完了', content: '保存しました。' });
}
})(jQuery);生成される HTML
ダイアログの器となる空要素は、プラグインがサーバー側(Callbacks.pm)で管理画面のフッターに出力します。フロント側で要素を用意する必要はありません。
<!-- Callbacks.pm が mtapp_html_foot に出力する空コンテナ -->
<div id="mtapp-dialog-msg"></div>$.MTAppDialogMsg() を呼ぶと、この #mtapp-dialog-msg に content が流し込まれ、jQuery UI が .ui-dialog のマークアップでラップして表示します(タイトルバー・閉じるボタン・本文コンテナが生成されます)。
補足
- ダイアログ本体
#mtapp-dialog-msgは サーバー側(Callbacks.pm)が出力します。複数回呼び出しても同じ1つのコンテナを使い回し、contentを入れ替えて開き直します。 contentは HTML としてそのまま描画されます(リンクや<br>を含められます)。そのため、信頼できない値(編集者の入力値など)を渡さないでください。MTAppMsgと同じく HTML シンクです。- jQuery UI の dialog ウィジェットに依存します(Movable Type / PowerCMS の管理画面に読み込まれています)。
hide_effectはhideEffectの非推奨エイリアスです。両方指定された場合はhide_effectが優先されます。新規コードではhideEffectを使ってください。closeには関数のみを渡してください(関数以外は無視されます)。
関連
MTAppMsg— 画面上部の通知バーにメッセージを表示する(インライン表示)。MTAppshowHint— 要素にホバーで吹き出しヒントを表示する。