MTのカテゴリーアーカイブのパスを得る。

| コメント(0) | トラックバック(0)

カテゴリーアーカイブのパスを得る方法がどうにもわからなくて、これまでこんな風に書いていたのだが、カテゴリーアーカイブの公開の設定(つまりTemplateMap)がどうなっているか決め打ちできないから汎用性が無いよなぁ...って...

my $cat_pth = &get_cat_arc($category, $blog_url, '/', 'index.html');
sub get_cat_arc {
my ($cat, $blog_base, $separator, $file_pth) = @_;
my $str = $cat->basename;
my $parent = $cat->parent;
while ($parent != 0) {
my $category = MT::Category->load({
id=>$parent});
$str = $category->basename.$separator.$str;
$parent = $category->parent;
}
return $blog_base.$str.$file_pth;
}

lib::MT::Category.pmにあるじゃねぇか!

sub category_path {
my $cat = shift;
return $cat->{__path} if exists $cat->{__path};
my $result = $cat->basename;
do {
$cat = $cat->parent ? __PACKAGE__->load($cat->parent) : undef;
$result = join "/", $cat->basename, $result if $cat;
} while ($cat);
# caching this information may be problematic IF
# parent category basenames are changed.
$cat->{__path} = $result;
}

ちゃんとキャッシュもしてるみたいだし。
やっぱり、ちゃんとドキュメント整備しようよ。これじゃやっぱり「ハック」の領域だよ。

まぁいいや、これでタスクリストのいくつかが潰れた。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/mt5/mt-tb.cgi/401

コメントする

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.04

このブログ記事について

このページは、Junnama Nodaが2007年4月 3日 01:09に書いたブログ記事です。

ひとつ前のブログ記事は「MovableTypeのプレビュー機能を改良するStylePreviewプラグイン(改良)。」です。

次のブログ記事は「日本社会で起業するために実は必要でないもの, あるいは邪魔なもの。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。