コメントをスレッド表示したくてプラグインを探したところ、MTThreadedCommentsを見つけた。
ソースカスタマイズ、データベーステーブルの変更を行うので、自身のある人だけにした方が良いです。
MTThreadedComments のインストール
- MTThreadedComments.pl を MT plugins にダウンロードします。
# wget http://akosut.com/software/download/MTThreadedComments.pl
- ソースにパッチを当てるんですが、説明はバージョン2.6なので3.121-jaとは異なっています。3.121-ja の場合は下記の通りです。
MTインストール先/lib/MT/Comment.pm
MTインストール先/lib/MT/App/Comments.pm
- データベースのテーブルを拡張します。
mysql> use MT_DATABASE_NAME;
Database changed
mysql> alter table mt_comment add column comment_subject text;
Query OK, 0 rows affected (0.39 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> alter table mt_comment add column comment_parent_id integer;
Query OK, 0 rows affected (0.24 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> alter table mt_comment add index comment_parent_id(comment_parent_id);
Query OK, 0 rows affected (0.24 sec)
Records: 0 Duplicates: 0 Warnings: 0
以上でインストールは完了しました。
テンプレートの修正
プラグイン作者によると、コメントの入力フローを変更する必要があると言っています。
- 個別エントリーアーカイブにはコメント入力フォームは表示せず、入力フォームを開く為のリンクを表示する。
- コメント・リストのテンプレート(Comment Listing Template)をコメント入力フォームとして、コメントを入力する対象となったエントリー又はコメントを表示する。
だそうです。
では、修正します。
※ ここでは、コメント部のレイアウト変更を適用されていることを前提としています。
- Nested Comments テンプレート追加
[テンプレート・モジュール]-[新しいテンプレート・モジュールを作る]にてスレッド表示用のコメントテンプレートを追加します。名前は、Nested Comments とします。 - 個別エントリーアーカイブの修正
<MTComments>タグ内を下記のように変更します。コメント入力部(<MTEntryIfCommentsOpen>タグ内)を下記のように変更します。
- コメント・リストのテンプレートの修正
<MTComments>タグ内を下記のように変更します。<MTComments>タグに属性として lastn=”1″ を追加する。
- Comment Fields List テンプレートの修正
コメントを入力する為のTEXTAREAの直前に下記内容を追加する。 - Comment Fields Previewテンプレートの修正
コメントを入力する為のTEXTAREAの直前に下記内容を追加する。 - スタイルシートテンプレートの修正
下記内容を追記します。
以上で完了です。
ちゃんと表示されるかテストしてください。
テストコメント。
階層1
コメントテスト2
階層1
コメントテスト3
階層2
コメントテスト4
階層3