2005年10月22日(土)
MTCommentIfLastOne(MovableType)
サブカテゴリーを含めたカウントをやろうとしたが全く知識が足りていないっぽいので他の簡単そうな部分から手を着けることにした。
”最近のコメント”の最後のコメントの頭につける記号だけ変更したかったので CommentIfLastOne という条件タグのプラグインを作成。まあ同じものは既に世の中にあるだろうけれどな。
以下ソース。適当な名前.pl で保存して、pluginフォルダへ置く。
package MT::Plugin::CommentIfLastOne;
MT::Template::Context->add_conditional_tag(CommentIfLastOne => sub {
my $e = $_[0]->stash('entry') or return 0;
my $num = $_[0]->stash('comment_order_num') or return 0;
($e->comment_count == $num);
});
こんな感じで使う。
<MTComments lastn="5">
<MTCommentIfLastOne>
└
<MTElse>
├
</MTElse>
</MTCommentIfLastOne>
<a href="<$MTEntryPermalink$>#c<$MTCommentID$>">
<$MTCommentAuthor$> (<$MTCommentDate format="%m/%d %X"$>)
</a><br/>
</MTComments></li>
その後サブカテゴリー周りをもう少し調べてみようとしてそれらしい部分も見つけたが、MTのソースを読んでいてオブジェクト指向Perlの記述や書式が全く理解できていないのが非常に問題だという事が分かってきた。
さすがにここはちゃんと本を買って勉強しないとダメっぽいので、既にあるものを使うかもう少し延ばすかって感じだ。