掲示板のスクリプト作成を計画中。考えている仕様は以下。
データとURLをずっと使えるようにするので、最初にデータ形式などの基本設計をしっかりと考えておかないと。
マルチスレッドといっても、2ちゃんねるのようではなく、普通の発言は新規投稿でし、返事を書くときはその発言へというものを考えている(普通のレスタイプ)。なので、スレッドごとにはファイルを作らずに、データは1つのファイルにまとめ、期間やファイル容量などによって分割していった方が便利そう。
ファイルを分割するのは、容量によるものが動作の効率的には一番いいだろうけど、ファイルの管理のことも考えて、月ごとに1つのファイルにするのがいいかなと考えている。
また、過去の発言内容もずっと見られるようにしておく訳だけど、レスがつけられるのは一定期間内にしておくのが、ややこしくなくて過去ログファイルの管理上もよさそう。レスがつけられる期間はスレッド作成から2ヶ月くらいを検討中。
URLを保って全ての記事への後方参照を可能にするために、スレッド(話題)ごとにURLを与えて、その中のレスごとにアンカーをつけるのがよいかな。また、後方参照は「>>ID番号」でできるようにするつもりだけど、ID番号からいつの記事かを判断できると便利そうだし、ID番号を年月日をもとに決めるのがいいかも。yyyymmddn#nというように。ただ、>>200210273#8などとなって少し長くなってしまうけど(URLでも参照できるので、その方が実用的かも)。同じスレッド内では#以降(この場合だと>>8)で参照できるようにする予定。
いくつかスレッドタイプやツリータイプの掲示板を見てみたところ、スレッドの全レスを表示するモード以外に、1つ1つのレスを表示するモードも採用しているものが多かったけど、閲覧上は全レスが表示されるモードが便利なので、個別のレスだけ表示するモードはつけない予定。また、スレッドにはタイトルをつけて投稿するけれど、レスではつけない予定。
スレッドごとのレスの数は、制限を設けない予定。
URLは、たとえばbbs/200210273#8などになる予定。この場合だと、2002年10月27日に作られた3つ目のスレッドの8番目のレスという意味。URLは次のようなものが候補。
bbs/ 掲示板トップ bbs/200210271 2002.10.27の1つ目のスレッド(全レス表示) bbs/200210271#12 ↑の12番目のレス(全レス表示) bbs/200210 2002.10のスレッドタイトル一覧
掲示板のトップページでの表示形式は、スレッドタイトルのみ、スレッド展開状態(いくつかのスレッドが内容も表示される)、ツリー形式、新しい発言順などが一般的だけど、レスごとの表示モードはつけないので、ツリー形式を採用するならスレッドタイトルのみの方がシンプルで分かりやすそう。新しい発言順の方式は、レスのみ並べてもどのスレッドへのレスかは分かりにくいので、最後に発言のあったスレッド順に表示するのがよさそう。
スレッドタイトルを、スレッドが作成された日時順で固定すると混乱が少なそうだけど、新しい投稿を見つけるには最新のレスの投稿順がよさそうだし。
携帯での表示については考慮中。
過去のバージョンのものも置いておけるように、これからはファイル名にバージョンなどの情報を入れるようにしようかな。最近公開したものではすでに実施済み。
作成中。
掲示板は、利用目的によって求める機能がほんとに様々ですねぇ。奥の深さを知りました。
おすすめの掲示板スクリプト配布サイトはレッツPHP!。Perlではないけれど、ぼくの作りたいと思っている機能はだいたい入ってます。