TopMovable Typeプラグイン管理画面共通 > 2013年11月
2013年11月15日

Movable Typeのメッセージセンターの使い方

November 15,2013 1:55 AM
Tag:[, ]
Permalink

Movable Type 6で導入されたメッセージセンターの使い方を紹介します。

1.メッセージセンターとは

メッセージセンターとは、MT管理画面の上部にアラートなどのメッセージを表示してくれる機能のことです。

すべての管理画面にメッセージを表示し、ユーザーダッシュボードにメッセージの詳細を表示してくれます。

管理画面の表示
管理画面の表示

ユーザーダッシュボードの表示
ユーザーダッシュボードの表示

2.プラグインの作り方

メッセージセンターを利用するプラグインの作り方を紹介します。

このエントリーで紹介するサンプルプラグインは以下のリンクからダウンロードできます。

AlertNotifier_0_01.zip

ここでは「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の表示
errorの表示

warningの表示
warningの表示

successの表示
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が成功しました
Comments [0] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3