2015年09月30日
コメントを評価する機能を追加する LikeComment プラグイン
PowerCMS ではユーザーのログインが必要な会員制サイトを簡単に構築できます。コミュニティ機能的な盛り上がりのために、コメント機能を利用するサイトの構築要件のために「コメントを評価する」プラグインを作成しました(記事を評価する機能はコミュニティ機能にありますが、コメントを評価する機能が Movable Typeにはありません)。
MTのコメント機能ですが、コミュニティサイト系の案件で活用するケースも再び増えて来ている気がします。
mt-comments.cgiに methods(__mode=like)を追加する実装とし、jsonで戻り値を戻すようにしています(Data APIのエンドポイントを追加したほうがきれいだったかな、と後で思いましたが...)。ダイナミックで数を表示するテンプレートタグをあわせて作成しました。
データベースに一つテーブルを追加するので、インストール時にはDBのバックアップをお願いします。
リクエスト
mt-comments.cgi?__mode=like&_type=add_like&comment_id=1&blog_id=1
すべてのリクエストはログインしている必要があります。
_type パラメタの値
_type値 | 意味 |
---|---|
add_like | 評価する |
take_like | 評価を取り消す |
add_not_like | 評価しない |
take_not_like | 評価しないを取り消す |
get_likes | 評価する、しない数を得る |
テンプレートタグ
テンプレートタグ | 動作 |
---|---|
<MT:IfAuthorLikeThisComment> | ログインユーザがコメントを評価している |
<MT:IfAuthorNotLikeThisComment> | ログインユーザがコメントを評価している |
<MT:CommentLikeCount> | 評価するの数 |
<MT:CommentNotLikeCount> | 評価しないの数 |
<MT:CommentLikeTotalCount> | 評価する、評価しないの合計 |
_type ごとのリクエストと戻り値
評価/評価しない数を得る
リクエスト
http://www.example.com/mt-comments.cgi?__mode=like&blog_id=1&comment_id=1&_type=get_likes
戻り値
{"comment_id":"1","status":"success","likes":{"like":"10","not_like":"5","total":"15"},"message":"Likes of this comment."}
評価する
リクエスト
http://www.example.com/mt-comments.cgi?__mode=like&blog_id=1&comment_id=1&_type=add_like
戻り値
{"comment_id":"1","status":"success","likes":{"like":"11","not_like":"5","total":"16"},"message":"You like this comment."}
評価を取り消す
リクエスト
http://www.example.com/mt-comments.cgi?__mode=like&blog_id=1&comment_id=1&_type=take_like
戻り値(評価していなかったときはこのように返る)
{"comment_id":"1","status":"not changed","likes":{"like":"11","not_like":"5","total":"16"},"message":"You do not have to evaluate this comment."}
評価しない
リクエスト
http://www.example.com/mt-comments.cgi?__mode=like&blog_id=1&comment_id=1&_type=add_not_like
戻り値
{"comment_id":"1","status":"success","likes":{"like":"11","not_like":"6","total":"17"},"message":"You do not like this comment."}
評価しない、を取り消す
リクエスト
http://www.example.com/mt-comments.cgi?__mode=like&blog_id=1&comment_id=1&_type=take_not_like
戻り値
{"comment_id":"1","status":"success","likes":{"like":"11","not_like":"5","total":"16"},"message":"You do not have to evaluate this comment."}
- カテゴリー
- プラグイン
コメントを投稿する