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/cgi/mt/mt-tb.cgi/401

コメントする

Facebook

Twitter

このブログ記事について

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

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

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

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

Powered by Movable Type 6.2.6