この記事は時間経過やプログラムのバージョンアップなどの諸々の事情によって,現状に正しくそぐわない内容になっている可能性があります。関連記事アーカイブを参照してみてください。

MovableType のコメントでツリー型掲示板を実現するプラグイン:MTCommentTree

Posted by
ぴろり
Posted at
2005/08/04 00:04
Trackbacks
関連記事 (4)
Comments
コメント (30)
Post Comment
コメントできます
Category
プラグイン カテゴリ
  には標準でを投稿できる機能がありますが、 投稿されたは時系列に沿って表示することしかできません。 時系列に並んだの中から目的の話題のみを追いかけることは、 欄での議論が白熱した場合などそう容易なことではありません。 一方、記事に親子関係を持つツリー(スレッド)形式の掲示板では、 複数の話題を扱っていても関連する記事だけを簡単に追いかけることができます。 論評系のなどで、ツリー形式の欄が欲しいと思われた方もいらっしゃるのではないでしょうか?

 そこで今回、欄をツリー形式で表示できるを作成してみました。 このは、をツリー形式で表示するための幾つかのタグを追加します。 これによりに親子関係を持たせた、ツリー型掲示板のような表示が可能になります。

この記事をはてなブックマークに追加する この記事のはてなブックマーク数 | この記事をlivedoorクリップに追加する この記事のlivedoorクリップ数 | この記事をYahooブックマークに追加する この記事のYahoo!ブックマーク数 | この記事をdel.icio.usに追加する | Twitterにポストする

はじめに

MTCommentTree.jpg  このを導入することで、右図のようにをツリー形式で表示することができます。 記事の親子関係は入力欄にある URL フィールドを利用して管理しているため、 既に URL フィールドをお使いの場合、これをそのままにを導入することはできません。 申し訳ありませんが、ツリー表示を取るか、URL 入力欄を取るかの二者択一となっています m(_^_)m

 "オンラインソフトの発表の場としてのウェブログ"という記事で、 オンラインソフトをを使って公開する場合の方法について書いています。 ここで、ユーザとのコミュニケーションである欄について述べた部分がありますが、 その中で従来の時系列について少しをしています。 機能要望やバグ報告などが盛んに行われるようになると、 時系列では複数の話題を効率よく追うことが難しくなり、 そのためにもツリー型掲示板に近い機能が欲しくなってきます。

 したところ、最近に投稿されたをツリー化するための改造については幾つか発見することができましたが、 個別アーカイブのをツリー化できるものは残念ながら発見できませんでした。
 Lunar's 「本日の○○」:『カストマイズ』 では、 の標準を使って、最近に投稿されたをツリー表示とするための改造が紹介されています。 できた改造のほとんどはこれと同じものでした。
 また、小粋空間:サイドメニューのツリー化スクリプト(改) では、 を利用してツリー表示を実現する手法が紹介されています。 ここで公開されてる maketree.js は、に限らずやカテゴリなど様々に使うことができ、 サブカテゴリーも再帰的に展開してくれるスグレモノです。 しかし今回、目指しているツリー型掲示板に一番近いものの、このままではの親子関係を実現できそうにありません。

 当初、maketree.js を参考に々弄ってみましたが、毎に親子関係のを持たねばならず、 標準では実現できそうにないという結論に至りました。 には簡単に機能拡張が行えるという仕組みがあり、 そこで今回、欄でツリー型掲示板を実現できるようなを自作することにしました。

結局、自作することになったは全く簡単ではありませんでしたが!

今のところ、どのエントリの欄も平和なもので、 このツリー型が効果を発揮するのはまだまだ先のことになりそうです。しょんぼり。


追加されるタグ

MTCommentTree
ツリーのコンテナタグです。 標準の MTComments タグの替わりに使います。 この中では 標準の MTComment* タグに加えて、 以下のタグを使うことができます。
MTCommentHasChild
自分を親とする子が少なくとも一つある場合に真になる条件タグです。
MTCommentHasNoChild
自分を親とする子が一つもない場合に真になる条件タグです。
MTCommentIsRoot
自分がルートの場合に真になる条件タグです。
MTCommentChildRecurse
自分の子について、MTCommentTree で定義されているを再帰的に呼び出します。

導入方法

Step 0.のインストール

 アーカイブに含まれる MTCommentTree.plディレクトリにコピーします。 そして、 の管理画面のメインメニューで、"使用可能な"欄に表示されていることを確認します。

Step 1.個別アーカイブの修正

 MTComments タグを MTCommentTree に修正し、 が子を持つ場合について MTCommentHasChild タグを用いて記述します。

Step 2-1.入力フォームに url の hidden フィールドを追加

 記事の親子関係は入力欄にある URL フィールドを利用して管理しています。 URL フィールドは hidden 要素としておきます。 Cookie で url フィールドを自動設定している箇所があるので、こちらも忘れずに削除しておきましょう。

Step 2-2.各毎に返信用のを追加

 特定の記事に返信を返すと、返信はその記事の子として表示されます。 記事に返信するには、その記事のIDを URL フィールドに入力しますが、 ここで紹介している例では を利用して URL フィールドを設定しています。

Step 2-3.url フィールドを更新するための を追加

 Step 2-2で追加した返信用がクリックされた時に、 Step 2-1のURL フィールドにIDを埋め込む処理を追加します。

 これで、毎に用意された"返信する"をクリックした後にを投稿すると、 投稿されたは親子関係として表示されることになります。

親に指定されているにアイコンを表示するなど、の余地はまだまだありそうです。 このままでは、返信をクリックしても画面に変化が無いので、 意図しないにレスを返してしまうなどの事故があります。

デフォルトでは、ルート(親を持たない状態)にが投稿されます。

トラブルシュート - 動かない時は?

 私がを作り始めた頃のモノなので、とんでもない不具合が隠されている可能性が高いです。 作者に直接連絡を頂けた方が早く対処できるかもしれません(いいのかそれで)

いろいろ

  • 管理画面からの親子関係を解消するには、子の URL を空欄にしてください
  • 開発は今回が初挑戦でして、未だにその仕組みが理解できていません
  • ひとまず、の親子関係を実現できるところまでは漕ぎ着けましたが、 他にも必要なタグやバグ報告などありましたらのほど宜しくお願い致します
  • オリジナルの著作権表示を改変しない限り、自由に改造・転載・配布できます

 MTCommentTreeできます。

MTCommentTree  new
bc25033b8df79125c556ce0d20370452
ver.0.15, '06/02/21, 3427bytes, 3.1x以上
  • 3.151-ja で動作確認
  • 再構築時の警告メッセージを除去
  • の日付の不具合修正
  • MTCommentIsRootの不具合修正
  • ある条件下で投稿されたが反映されない不具合修正

最新版のやバグレポートはCommentTree の trac レポジトリでも行っています。

のお願い

 開発の継続のためには、書の購入やバグの修正、新機能の追加、欄でのユーザサポートなど、意外にお金と時間を費やします。そこで、「ビールでも奢ってやるか」ですとか「これで牛丼(並)でも食え」と仰るお方からのお申し出をいつでも受け付けております。どうぞ、よろしくお願いいたしますm(_ _)m
 金の送付には PayPal の小額決済をご利用いただけます。


この記事を読んだ人はこんな記事も読んでいます 記事リコメンデーションについて

その他の関連する記事


関連記事/トラックバック (全 4 件中、最新 5 件まで表示しています)

Open MagicVox.net のスクリーンショット
タイトル
MovableTypeで掲示板を作る
Trackbacked at
2006/05/17 23:48
from
Open MagicVox.net
評価
Web Scouter
概要
 MovableType で本サイトとは別のブログにエントリを一つ作り、 そのエントリのコメント欄を掲示板や一言 BBSとして利用する方法が広く使われているよう...

Open MagicVox.net のスクリーンショット
タイトル
MTCommentTreeプラグインとJavaScript
Trackbacked at
2006/04/17 20:41
from
Open MagicVox.net
評価
Web Scouter
概要
 MovableType のコメント欄でツリー掲示板を実現するプラグイン MTCommentTree は、MovableType のテンプレートタグを拡張するだ...

FOX通信 のスクリーンショット
タイトル
コメントをツリー式にするプラグイン、ようやく導入
Trackbacked at
2006/04/14 00:22
from
FOX通信
評価
Web Scouter
概要
去年の8月にこんなエントリを書きました。 コメントをツリー形式にするプラグイン発見 それから8ヶ月、ようやくプラグインを導入して、使えるようにしてみました。 ...

FOX通信 のスクリーンショット
タイトル
コメントをツリー形式にするプラグイン発見
Trackbacked at
2005/08/19 13:25
from
FOX通信
評価
Web Scouter
概要
mixiのMTコミュで見つけたプラグイン。 コメント欄をツリー型掲示板みたいにしてくれるらしいです。 Open MagicVox - MovableType の...

この記事にトラックバックを送るには?

寄せられたコメント (全 30 件中、最新 5 件まで表示しています)

Posted by
taka
at
2006/08/02 14:33
ID
DP8wFjGU

すいません、自己レスです。タグが消えちゃいました。
「lantenは使えないようですが、何かいい方法がないでしょうか?」でした。

Posted by
taka
at
2006/08/02 02:52
ID
DP8wFjGU

mt3.2で使ったらうまくいかず、スクリプトのcommentformをcomments_formに書き換えることに気づくまで苦労しました。
とてもべんりです。ありがとうございました。
ひとつ教えて欲しいのですが、インデックスページなどで、最新一つのルートコメントのみを表示させたいのです。
は使えないようですが、何かいい方法がないでしょうか?

Posted by
ふ〜
at
2006/06/06 11:29
ID
W6YATRCY

仕事でムーバブルタイプを導入、さらに掲示板も作ることになりました。
でもMTにはBBSやツリー機能がないことがわかり、どうしようかと悩んでおりました。
必死にググっていると、このサイトが見つかりました。
まだこれから導入するところですが、かなり使えそうです。ありがとうございます。

Posted by
ぴろり
at
2006/04/17 20:44
ID
7zK65Z56

> ぴろりさんのサイトで使用されているタグを、
> もう少し詳しく公開していただけないでしょうか?
> #特に返信の取り消しのjavascriptあたりが知りたいです

リクエストにお応えして(?)説明記事を書いてみました。参考になれば良いのですが。
http://www.magicvox.net/archive/2006/04172001.php

Posted by
Irana
at
2006/04/14 00:16
ID
PZ4GVoVc

以前こちらのプラグインを自分のブログで紹介させていただいた後、
今回ようやく導入することができました。
(そのため、再トラバさせていただきました。ご不快でしたら、お手数ですが削除をお願いします)
なんとか動作確認まではできております。

そこで、一つお願いがあります。
ぴろりさんのサイトで使用されているタグを、
もう少し詳しく公開していただけないでしょうか?
 #特に返信の取り消しのjavascriptあたりが知りたいです

申し訳ありませんが、よろしくお願い致します。

コメントを投稿する

 
 (匿名可/必須/公開)
 (匿名可/必須/非公開)
 (必須)
コメントスパム防止のため投稿前に ランダムな数字 CAPTCHAについて を入力してから投稿してください。お手数ですがご協力のほど宜しくお願いいたします。
 
MovableType, NovableType, JovableType, KovableType, MIvableType, M9vableType, M0vableType, MPvableType, MLvableType, MKvableType, MoCableType, MoFableType, MoGableType, MoBableType, MovQbleType, MovWbleType, MovSbleType, MovZbleType, MovaVleType, MovaGleType, MovaHleType, MovaNleType, MovabKeType, MovabOeType, MovabPeType, MovablWType, Movabl3Type, MovablRType, MovablDType, MovablSType, MovableRype, Movable5ype, Movable6ype, MovableYype, MovableGype, MovableFype, MovableTTpe, MovableT6pe, MovableT7pe, MovableTUpe, MovableTHpe, MovableTGpe, MovableTyOe, MovableTy0e, MovableTy-e, MovableTyLe, MovableTypW, MovableTyp3, MovableTypR, MovableTypD, MovableTypS プラグイン CGI, XGI, DGI, FGI, VGI, CFI, CTI, CYI, CHI, CBI, CVI, CGU, CG8, CG9, CGO, CGK, CGJ