なかなか苦戦しました. 自分メモの意味で、エントリしときます.
新しいテンプレートをゲストブック用に作ればいいだけ なんてまじめに思ってましたが、全然見当違いでした. そもそもテンプレートの意味がよく分かってなかった.
cgi かなんかのゲストブックを探してきて... とも思ったけど、またスパムの管理とかが面倒そうだし. 検索してる過程で、WordPress なんてものも見つかったのですが、ゲストブックのためだけに構築するのも、ちょっと. と、いいつつ、鯖にアップして動作みるところまではやっちゃいましたが.
昨日、寝つくまでの間にいろいろ考えまして、得た結論.
ゲストブック用に新規エントリを作り、エントリアーカイブをゲストブック本体として、コメント書き込みの形で足跡を残してもらう.
ま、いちばん安直な解決ですな.
問題は、他のエントリと見た目の区別がつかないこと. そして、Blog を見て回る時に、好ましくない位置からゲストブックのエントリに飛べてしまうこと.
この辺の解決に、ちょっとだけ頭を使いました.
Guest Book というタイトルで、新規エントリを作ります. エントリの内容に、ゲストブックであることの能書きを書きます.
このエントリを差別化するため、専用のカテゴリを作ります. GuestB としました.
また、他のエントリの途中にまぎれこませないようにするため、投稿日の設定も重要. ここの開設が 2005 年 8 月ですので、2005 年 7 月 31 日のエントリとして設定しました. これで、仕込みは終わり.
あとは、各テンプレートに条件分岐を書いて、このエントリが見えないようにしてしまいます.
条件分岐は、すでに使っている Compare plug-in を使いました.
まずは、インデックスページ.
ここは、カテゴリ一覧にゲストブックカテゴリが表示されないようにすることと、月リストに 2005 年 7 月が表示されないようにすることが必要です.
カテゴリ一覧の部分はリストタグで表示させているわけですが、ここを、
<MTIfNotEqual a="[MTCategoryLabel]" b="GuestB"> 〜 </MTIfNotEqual>
ではさむと、ゲストブックカテゴリの時だけリストアップされなくなります.
月リストのところも、同じ考えで O.K.
<MTIfNotEqual a="[MTArchiveDate format='%Y%m']" b="200507">
を使います.
カテゴリアーカイヴ、日付アーカイヴページのサイドバー部分も、同じように処理.
で、ゲストブック本体となる、エントリアーカイヴのページ.
まず、ゲストブックエントリの時のみ、左右のサイドバーが表示されないようにします. これも条件分岐で簡単. エントリアーカイブなので、分岐に使う条件にはいろいろなものが使えますな.
あと、コンテンツのすぐ上とか、右サイドバーにある、前後のエントリに飛ぶリンク部分. ここからゲストブックエントリに飛べないように、うまく消さなければなりません.
日付的にはゲストブックのエントリがいちばん古くなっていますから、ひとつ後ろのエントリから飛んでくることしか起こり得ません.
よって、<MTEntryPrevious> 〜 </MTEntryPrevious> で表示させているひとつ前のエントリに飛ぶリンク部分の中身を、
<MTIfNotEqual a="[MTEntryTitle]" b="Guest Book"> 〜 </MTIfNotEqual>
ではさんで処理すればいいです.
最後の詰めは、カレンダーです. 前後の月に飛ぶためのリンク部分から、2005 年 7 月のカレンダーが表示されないようにしなければなりません.
前月に飛ぶ矢印を表示している部分を、これまで同様の分岐で処理します.
で、インデックスページの右サイドバーに、ゲストブックへのリンク(ゲストブックにするエントリのエントリアーカイヴへのリンク)を貼ります.
ついでなので、管理者プロフィールやリンクページのリストと一緒に、ひとくくりにしちゃいました.
ここからも、ゲストブックへのリンクを貼っときます. → □
自分では、なかなかうまくいったかと思ってますが... 久しぶりにいぢって、Movable Type のリハビリにはなったかも.
早速の改良点.
これ、あくまでコメントなので、最近のコメントのところにもリストアップされちゃうんですね. ゲストブックエントリのコメントのみ表示されないようにするのは、どうしたもんか. エントリごとにコメントを並べたりする plug-in があったと思うので、うまく使えばできるかもしれませんが...
そもそも、誰も足跡つけてくれないかもしれないんで、しばらくは放置ですかね.