ということで、せっかく過去ログを記事別に分けるならコメント機能とかあれば誰が書いてくれるのか分からないけれどもなんか自家製ブログっぽくて良さげなので、いろいろいじっている。
種になる XML ファイルをローカルで変換してアップするので、動的なページを作るにはちょっと工夫が必要だ。そこで過去ログを PHP にしようとしたけれども、 XML 宣言のせいでうまくいかない。いや、もんたさんに php.ini の short_tag を無効にしてもらえばいいのだけれども、かぼちゃ鯖の他のユーザーさんが既に short_tag が有効な環境であるのを前提に PHP を使っていたら悪いし、他の手を考えることに。 XML 宣言を PHP で出力するのは MSXSL の仕様上無理っぽい。出力モードを XML から TEXT に変えれば何とかなるかもしれないけど、かなり面倒くさそう。かぼちゃ鯖への XSLT 関係モジュールのインストールをお願いする? それよりは自力で何とかしたい。
で、コメント欄とコメント処理用 PHP への出力は今からすぐできるのですぐ実装。サーバー上のファイルに送信されたメッセージを書き込んでいく。問題は、その書き込まれたメッセージを静的なページにどう反映させるか。
最初;
<xsl:for-each select="document(concat($site_url,$comment_path,'/',$key,'.log'))/log">
<dl>
<xsl:for-each select="item">
<dt><xsl:value-of select="concat(@num,' ',@name, ' (',@time,')')" /></dt>
<dd><xsl:value-of select="." /></dd>
</xsl:for-each>
</dl>
</xsl:for-each>
とかやろうとしたけれども、そんなことしたらローカルで XSLT 処理してアップロードしないとコメントが更新されないという非常に残念ことになるのでやめ。次に object で何とかしようと思ったけれども、なんか type 属性の値が text/html だと IE に無視されたり IE が落ちたり object で取り込んでいるファイルに強制リダイレクトされたりしたのでやめ。いったいこれはどういうことなのかねと検索して回ったら WEB 相談室の過去ログが見つかった。
読み進めていくと SSI を使うのはどうよという書き込みがあった。そうですよそうですよ、 SSI があったのですよ。
ということで今回の悩みはこれで解決。あともう少し。
IRC でのりさんから教えてもらったけれども、どうやらここらへん.htaccess でなんとかなるのらしい。とりあえずメモ。