Movable Typeのメッセージセンターの使い方
Movable Type 6で導入されたメッセージセンターの使い方を紹介します。
1.メッセージセンターとは
メッセージセンターとは、MT管理画面の上部にアラートなどのメッセージを表示してくれる機能のことです。
すべての管理画面にメッセージを表示し、ユーザーダッシュボードにメッセージの詳細を表示してくれます。
管理画面の表示
ユーザーダッシュボードの表示
2.プラグインの作り方
メッセージセンターを利用するプラグインの作り方を紹介します。
このエントリーで紹介するサンプルプラグインは以下のリンクからダウンロードできます。
ここでは「AlertNotifier」というプラグイン名にします。
AlertNotifierプラグインのファイル構成は次のようになります。
plugins
└ AlertNotifier
├ config.yaml
└ lib
└ AlertNotifier
└ CMS.pm
プラグイン定義ファイルconfig.yamlの内容は次のようになります。このファイルの文字エンコーディングはUTF-8で保存してください。
id: AlertNotifier
name: AlertNotifier
version: 1.00
l10n_lexicon:
ja:
error occured: XXエラー発生
this is error.: エラーがあります。
callbacks:
set_notification_dashboard: $AlertNotifier::AlertNotifier::CMS::notify
コールバックの「set_notification_dashboard:」にメッセージを通知するためのハンドラ名を記載します。
callbacks:
set_notification_dashboard: $AlertNotifier::AlertNotifier::CMS::notify
詳細は割愛しますがメッセージのローカライズもconfig.yaml内で行えます。
l10n_lexicon:
ja:
error: XXエラー発生
error occurred.: エラーがあります。
ハンドラに対応するPerlモジュールCMS.pmの内容は次のとおりです。
package AlertNotifier::CMS;
use strict;
sub notify {
my $cb = shift;
my ( $loop_notification_dashboard ) = @_;
my $plugin = MT->component('AlertNotifier');
my @notifications = (
{
level => 'error',
text => $plugin->translate('error'),
detail => $plugin->translate('error occurred.'),
},
);
push @{ $loop_notification_dashboard }, @notifications;
}
1;
配列変数@notificationsにハッシュ形式で通知したいメッセージを実装します。ハッシュのキーの意味は次の通りです。
- level:メッセージの通知レベルです。error/warning/successの3種類があり、デフォルトはwarningです。
- text:見出しを記述します。サンプルの「XXエラー発生」が該当します。
- detail:詳細メッセージを記述します。サンプルの「エラーがあります。」が該当します。
表示は次のようになります。
errorの表示
warningの表示
successの表示
複数のメッセージを記載することもできます。
…前略…
my @notifications = (
{
level => 'error',
text => $plugin->translate('Error'),
detail => $plugin->translate('error occurred.'),
},
{
level => 'warning',
text => $plugin->translate('Warning'),
detail => $plugin->translate('warning occurred.'),
},
{
level => 'success',
text => $plugin->translate('Success'),
detail => $plugin->translate('You got a success.'),
},
);
…後略…
複数記載した場合、記載した順番で表示されます。
複数記載した場合の表示
複数記載した場合の表示(折りたたみを広げたところ)
追加した内容に応じてローカライズメッセージも追加してください。
l10n_lexicon:
ja:
error occured: XXエラー発生
error occurred.: エラーがあります。
Warning: XX警告発生
warning occurred.: 警告があります。
Success: 成功しました
You got a success.: XXが成功しました
- Movable Typeで最後のログイン日時を表示する「LastLoginDateTimeプラグイン」
- Movable Typeの環境変数を管理画面から設定できる「ConfigSetterプラグイン」
- Advent Calendarの最新記事を通知するMovable Typeプラグイン「AdventCalendarNotifier」