CMS管理画面でコメント機能を実装するの続きです。今回は、Novius OSの管理画面で入力したコメントをチャットワークに送信してみます。
Novius OSの管理画面でコメントをすると、メール通知することができます。メールで受け取れればOKという人もいるでしょうし、メールで通知を受け取るよりも、グループウェアに通知した方が効率が良い、という人もいるでしょう。
なので、コメント内容をチャットワークに送信してみます。
チャットワークやNovius OSの設定方法はNovius OSを題材に、FuelPHPでチャットワークAPIを使ってみよう #PHP #FuelPHP(CodeIQ Magazine)をごらんください。
この記事と同じように、FuelPHPのイベント機能を使ったカスタマイズします。
Novius OSの管理コメントでは、ounziw_pagecomment::after_commentというイベントトリガーが用意されているので、ここにイベントを追加すればOKですね。具体的には下記のようなコードを書き、bootstrap.phpに記述します。
/**
* Copyright (c) 2014 Fumito MIZUNO
* License: MIT
* http://opensource.org/licenses/mit-license.php
*/
Event::register('ounziw_pagecomment::after_comment', 'comment_to_chatwork');
function comment_to_chatwork($data)
{
$message = $data['page_title'] . $data['comm_author'] . $data['comm_content'];
$response = chatworkpost($message);
}
function chatworkpost($message) {
Package::load('chatwork');
$chatwork_roomnum = '17949259';
return Chatwork::post("/rooms/$chatwork_roomnum/messages", array('body' => $message));
}
こうするだけで、Novius OSとチャットワークの連携ができます。カスタマイズのためのコードを見てもらうと分かると思いますが、FuelPHPのイベント機能やパッケージ機能を活用しています。これには様々なメリットがあります。
もちろん、FuelPHPの機能を使っているため汎用性が高い、というのもありますが、それだけではありません。Novius OS特有のものが少なく教育コストがかからない、FuelPHPを知っているエンジニアであればNovius OSをカスタマイズできるためエンジニアを確保するのが楽、等のメリットがあります。Novius OSがFuelPHPという汎用フレームワークベースのCMSだからですね。
