MovableTypeのstashについて

stashとは、MTオブジェクトを呼び出すための便利なメソッドだ。
本来はMTのプラグインを作るときに使うものだが、
MTPerlScriptプラグインと組み合わせて使うことで、MTテンプレートの中でもこれを使うことができる。
つまり、テンプレートの中でMTオブジェクトを使うことができるようになる。

特殊な条件で特定のエントリーを抽出したい場合や、抽出条件を書くときにMT組み込みのタグを使うよりもperlでロジックを書いた方が早い場合など、MT組み込みのタグや既存のプラグインだけでできないことをやりたいときに、
この方法でperlスクリプトとMTオブジェクトを使ってテンプレートを書くことができる。

例:現在のBlogの、最新と最古のエントリーを取得する


use Data::Dumper;
use strict;
my $blog = $ctx->stash('blog'); #MT::Blog object

my @entry = MT::Entry->load({ blog_id => $blog->id });
#print Dumper(@entry);
@entry = sort{$a->created_on <=> $b->created_on} @entry;

print Dumper(shift(@entry));
print Dumper(pop(@entry));