ダッシュボードの「サイト情報」に独自のグラフを追加する
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 );
こんな感じに追加されました。