サイトリフォーム化の一環として、ブログツールであるところのblosxomを使った掲示板を作ろうと考えてみた!(いきなり)
blosxomはデータディレクトリ配下に適当にファイルを置いておくだけで新しいエントリとして認識してくれる特性があるので、フォームなどから入力された書き込みをファイルの形で保存し、データディレクトリに置いてやれば掲示板っぽい運用もできるんじゃないかと思い、エントリを追加する専門のプラグインを作成して掲示板を作ってみました。
高潔なるブログツールであるBlosxomを、わざわざありきたりな掲示板にしてどうするよ? という気もしないでもないのですが、トラックバックを受け付けたり、RSSシンジケートを使って新規投稿をチェックすることが可能な掲示板というのも、なんか今っぽくて良いのではないか、というところで納得していきたい。
→ newentry プラグイン(04/04/26版)
とりあえずやってることは、基本的には書き込まれた内容を適当なディレクトリにファイルとして置くことだけです(1行目に名前、2行目以降にコメントの中身を保存)。
ファイルの書き込みはstartサブルーチンで行っているのですが、投稿を受け付けた直後はキャッシュか何かの影響でblosxomがこのファイルの存在を認識してくれずにコメントが表示されないことがあったので、書き込んだ後にsystem関数でsyncコマンドを直接叩いて強制的にファイルに書き出すようにしています。でも、これって効果あるのか?(←バカ)
もうちょっとスマートなやり方はないものでしょうか。
コメントに対する返事を付ける部分は、Writebackプラグイン(hail2u.net さん謹製のStarter Kit に付属のバージョン)をほぼそのまま使っています。というか、このプラグインはWritebackを使うのが前提で作ってあります。
Writebackがあったエントリは表示位置が上がった方がより掲示板っぽいので、エントリの更新時刻をWritebackのデータファイルの更新時刻に書き換える処理を行うageプラグインも作りました。そのまんまの名前だ。
→ age プラグイン(04/04/26版)
このプラグインの中では、ついでに「最新の書き込みリストの生成」と「前のページ/次のページへのリンク」を作成する機能も持たせています。
とりあえずこれでテスト運用してみて、問題がなければ正式にこちらの方に掲示板を差し替える予定。
新規エントリ書き込み機能は、「展開予想」のリニューアルやら「絶対無敵チルドレン」専用ブログの感想書き込みやらに流用するつもりです。
まぁ、探せば似たようなプログラムはいくらでも出てきそうですけどね…orz
昨日書いた「startサブルーチンの中でファイル作るとblosxomが拾ってくれないので、拾ってくれるようにsyncを叩く」の件ですが、一度寝て起きてから考え直したらこれはいくらなんでもスパルタン過ぎるだろうということに気付き、「startで作ったファイルはfilterサブルーチンの中でblosxomのファイルリストに追加する」という穏当なやり方に修正しました。ご迷惑をおかけしました(このサイトを置いてあるサーバに)。
writeback message: このサイトのコメント受付は終了しました。