元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

ダッシュボードの「サイト情報」に独自のグラフを追加する

MovableType 6.0 の新機能に「Site Stats」というものがありますね。

MTDDCの時「実はPlaggableでプラグインからグラフデータを追加することもできる」と聞いていたので、気になっていました。

今回、機会があって追加する方法を調べたので、メモがわりに簡単なサンプルを作りました。

https://github.com/uzuki05/mt-plugin-StatsSample

追加方法はかんたんで、config.yamlに以下のようなレジストリを追加し、所定のサブルーチンを用意するだけです。

applications:
    cms:
        site_stats_lines:
            sample:
                hlabel: グラフのラベル
                condition: 表示するかを決定するサブルーチン
                handler: グラフデータを作成するサブルーチン

グラフデータはダッシュボード表示の度に作成していたのでは重いのでキャッシュするようになっています。(キャッシュの有効期限はStatsCacheTTL環境変数で分単位で変更可能)

もし、プラグイン設定によってグラフの内容が変わったり、グラフの表示のON/OFFを変えたいときは、そのタイミングでキャッシュをクリアする必要があります。

これは、save_config_filterコールバックあたりで実装すればよいと思います。

callbacks:
    save_config_filter.プラグインのkey: サブルーチン

MT::Utilにキャッシュクリア用のサブルーチンが用意されているので、これを使います。

MT::Util::clear_site_stats_widget_cache( $blog->id );

こんな感じに追加されました。

Stats.png