MTAppDialogMsg

jQuery UI の dialog を使い、メッセージをダイアログ(ポップアップ)で表示する静的メソッド。タイトル・本文・モーダル表示・閉じる時のエフェクトやコールバックを指定できる。本文(content)は HTML として描画される。

jQuery UI の dialog を使って、メッセージをダイアログ(ポップアップ)で表示する静的メソッドです。タイトル・本文・モーダル表示・閉じる時のエフェクトやコールバックを指定できます。MTAppMsg が画面上部の通知バーなのに対し、こちらは画面中央に重ねて表示し、ユーザーの確認を促したいときに使います。

構文

$.MTAppDialogMsg(options);

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

パラメータ

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

プロパティ既定値説明
titlestring'メッセージ'ダイアログのタイトルバーに表示する文字列
contentstring'Movable Typeへようこそ!'ダイアログの本文。HTML としてそのまま描画されます
widthnumber | string'auto'ダイアログの横幅(数値指定時は px。単位は付けない)
heightnumber | string'auto'ダイアログの高さ(数値指定時は px。単位は付けない)
modalbooleanfalsetrue で背面を覆うモーダルダイアログにする
hideEffectstring''閉じる時のエフェクト('explode' / 'slide' / 'drop' など jQuery UI の effect 名)。非推奨エイリアス: hide_effect
closeFunctionnull閉じた時に呼ばれるコールバック。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-msgcontent が流し込まれ、jQuery UI が .ui-dialog のマークアップでラップして表示します(タイトルバー・閉じるボタン・本文コンテナが生成されます)。

補足

  • ダイアログ本体 #mtapp-dialog-msgサーバー側(Callbacks.pm)が出力します。複数回呼び出しても同じ1つのコンテナを使い回し、content を入れ替えて開き直します。
  • contentHTML としてそのまま描画されます(リンクや <br> を含められます)。そのため、信頼できない値(編集者の入力値など)を渡さないでください。MTAppMsg と同じく HTML シンクです。
  • jQuery UI の dialog ウィジェットに依存します(Movable Type / PowerCMS の管理画面に読み込まれています)。
  • hide_effecthideEffect の非推奨エイリアスです。両方指定された場合は hide_effect が優先されます。新規コードでは hideEffect を使ってください。
  • close には関数のみを渡してください(関数以外は無視されます)。

関連

  • MTAppMsg — 画面上部の通知バーにメッセージを表示する(インライン表示)。
  • MTAppshowHint — 要素にホバーで吹き出しヒントを表示する。