« サッサーの名前の由来 | トップページ | 「最近のコメント」のツリー表示 »
2004.05.09
カテゴリアーカイブ毎に異なるカスタマイズを実施する
Movable Type や TypePad系(ココログを含む。ただし、ココログの場合はココログプロ限定) での話。
カテゴリのアーカイブは全カテゴリ共通のテンプレートを使ってビルド(構築)されます。しかし、特定のカテゴリのアーカイブだけ別のスタイルシートを適用したり、カテゴリ毎にサイドバーを替えたり、などなど、カテゴリ毎に独自のカスタマイズを行ないたいという需要はあると思います。
すぐに思いつくのが、各カテゴリ毎に自由にいじれるファイルを用意して、カテゴリアーカイブ表示時にカテゴリ共通テンプレートに動的に読みこませるという方法。カテゴリの名前、もしくはIDのようなものがファイル名として使うことができれば、あっさり実現できそうです。
実際、MovableType の場合は、カテゴリの名前を英語、カテゴリの説明を日本語にするという手法(BLOG質問箱: カテゴリを日本語名で表示する 参照)を使っている場合は、カテゴリを特定する名前(ファイル名として流用できる名前)として <$MTArchiveCategory$> を問題なく使うことができます。
つまり、例えば <$MTArchiveCategory$>.html というような名前のファイルを用意して、カテゴリアーカイブテンプレートに読み込ませるようにすれば OK。
ところが、ココログプロの場合は、カテゴリの名前は日本語(要するに非ASCII文字)なので <$MTArchiveCategory$> が日本語になってしまい、ファイル名として流用することができません(試しに日本語を含むファイル名のファイルをアップロードしようとすると、そんな文字は使えないと、ココログサーバに怒られます)。 また、他のテンプレートタグを駆使しても、現カテゴリのIDやラベルを取得することはできません。コンテナタグを使えば、全カテゴリのID一覧を取得できますが、取得したIDのうち、どれが自カテゴリのIDなのか判断する手段がなく、結局使えません。
では、どうするのか? カテゴリアーカイブファイル自体は、カテゴリID をディレクトリ名とするディレクトリに配置されるので、そのディレクトリをカレントディレクトリと見たてれば、そのカテゴリ独自のファイルをいくらでもそのディレクトリに置くことが可能ですよね。例えば、custom.txt というファイルを全カテゴリのディレクトリに置き、SSI なり <$MTInclude$> なりで取りこめばいい訳です。って、言葉で書くとわかりにくいですね。図を書けば、多少はわかりやすくなると思いますが、今回はパス (^^;
要するに、ココログプロの場合は、
/blogのトップディレクトリ/catXXXXXX/custom.txt
(XXXXXX はカテゴリを示すID、ラベルに相当する数字)
というファイルをカテゴリの数だけ用意することになります。で、カテゴリアーカイブテンプレートの適当な位置に
<!--#include virtual="custom.txt"-->
と書いて、読みこませてやれば OK。なんで拡張子が .html じゃなくて .txt かというと、ココログのファイル管理ツールは .html のファイルがさわれない(間違えてアップロードしたとき消せない)から。中身は html ファイルなんだけど、拡張子は .txt にしておくと、あとあとメンテがしやすいです。
ということで、上記の手法を使って、「観測気球」の各カテゴリアーカイブの最下部に、そのカテゴリ独自の情報(関連リンク集や、関連アフィリエイトリンク、などなど)を載せるようにしてみました。まだ、とりあえずやってみた、って段階なので、今後、もうちょっとちゃんとしたものにしたいと思います。
投稿者: tsupo 2004.05.09 午前 08:49
| 固定リンク
|
|
| ![]()
|
|
アマゾンわくわく探検隊
トラックバック
この記事のトラックバックURL:
この記事へのトラックバック一覧です: カテゴリアーカイブ毎に異なるカスタマイズを実施する:



