今日はコメント周りの新機能について触ってみました。
大きなアップデートとして挙げられるのは、次のような要素でしょうか。
- Captchaに対応した
- OpenIDによる認証機能が追加された
- 内部的にツリー構造を持つようになった
それぞれについて、気づいたことなどメモしておきます。
Captcha
まずCaptchaですが、以下の箇所で設定を有効にする必要があります。
Admin > Setting > Feedback > CAPTCHA Provider
設定をMovable Type Defaultに変更することで、匿名コメントの際にはCaptchaの入力が求められるようになりました。テンプレートの変更などは必要ありませんでした。
上記「CAPTCHA Provider」の設定がプルダウンでの選択になっていることから分かるように、他のCaptchaエンジンを利用することも出来ます。実際にextrasディレクトリにreCaptchaを利用するためのサンプルプラグインが同梱されているのですが、ちょっと使い方が分かりませんでした。設定値保存されないし。
後、自分の環境では問題ありませんでしたが、たぶん、Image::Magickのインストールされている環境がCaptchaの動作には必須じゃないかなと思います。
OpenID
次に、OpenIDによるコメント認証ですが、これはもっと簡単。
特定のブログが選択された状態で、
Preference > Blog Settings > Comments を開き、Allowed Authentication Methodsの中から受け入れる外部認証サービスをチェックするだけで有効となります。あー、ひとつも利用していない状態から有効にした場合はテンプレートの再構築が必要かもしれません。
MovableType を選択した場合、MovableTypeの管理画面へのログイン情報を使った認証が行えます。さらに、AllowRegistrationを有効にした状態だと、コメントの投稿を受け付ける際にその場でアカウントを発行することが出来ます。この設定は Admin > Settings > Feedback と、各ブログの Preference > (なぜか)General にあります。
コメントを投稿する側は、いったんメールアドレスなどの必要情報を入力し、その後、登録したメールアドレスに送られるメールからConfirmするという、まあ良くある流れでユーザーを作成できます。
ただ、自分のMTにボカボカユーザーが増えていくというのは、考えただけで管理の手間がかかりそうです。個人ユーザー向けの機能では無いのかな、と思いました。自分はとりあえず試しただけで、使ってません。
追記: データベースを確認したところ、OpenIDでの認証の場合にも、管理画面から確認できないだけで、mt_authorテーブルにコメント投稿者の情報が格納されるようです。
Voxのアカウントを利用した認証は、楽でよいですね。迷うことなく利用できました。すごい便利です。まあ、過疎ブログなので、匿名でも全然構わないんですけどね、スパムだけは来るので。この機能は有難いです。以前からのTypeKeyを使った認証も可能なようですが、一覧に無いので試してません;-)
コメントのツリー構造
投稿された各コメントが、それぞれ親コメントを持てるようになっています。現在の実装では、管理画面からReplyした場合にのみ親コメントが指定されるようです。あ、コードに些細なミスがあって、今は管理画面からのReplyも出来ないです。さすがベータ版ですね。自分は野良fixして使ってみてます。
ブログからもReplyを有効に出来ないか、コードを見ながら試してみたのですが、どうもまだ出来てないようです。
#TODO: this should be refactored for more general use
ということで、これから拡張していく模様。
また、ツリー構造といっても、内部的に親コメントを持っているだけで、現在はテンプレートが対応していないため、実際のブログには何も表示されていません。
これは逆に言えば、好きに作れ、ということですね。
- MTCommentParent
- MTCommentReplies
- MTIfCommentParent
- MTIfCommentReplies
- MTCommentRepliesRecurse
この辺りのMTタグを使ってツリー構造を表現できそうです。動作は多分名前から連想したとおりの動作です。カテゴリー周りのタグを使ったことがあるなら、迷うことは無いかと思います。
実際にツリーを作ってみましたが、ちょっと横に長くなって見づらくなってしまったのと、今いちすっきりとした書き方にならなかったので、ツリー型は一時あきらめて、親コメントへのリンクをつけるだけにしてみました。
この辺はカスタマイズのやりがいがあるので、正式リリースの頃には色々なカスタマイズ例が出てくるのではないかと思います。と他力本願しておきます。