ビリヤードとかゆるーく
Style :
■ Categories :
■ Tags :

デザインを修正。
ほんのごくわずかだけど読みやすくなった・・・のか?


いままではインデックスやアーカイブに同じ部分を重複して書いていたが、
メンテ性がワルーイのでテンプレートをモジュール化した。
で、条件によって読み込むモジュールを動的に変更したい場合があった。
ちょうどAntみたいに、ある変数が定義されていたらタグの中を出力するようなタグが
ないか探してみたが、なかった。
ので、作ってみた。


MTIfDefined.pm

use strict;
use MT::Template::Context;

#nameで指定した名前の変数がMTSetVarで定義されていれば、
#このタグの中身を出力する条件タグ。
if (MT->can('add_plugin')) {
require MT::Plugin;
my $plugin = new MT::Plugin();
$plugin->name("IfDefined Plugin, v.0.01");
$plugin->description("Add MTIfDefined conditional tag.");
MT->add_plugin($plugin);
}

MT::Template::Context->add_conditional_tag(IfDefined => sub {
my ($ctx, $args) = @_;
defined( $ctx->{__stash}{vars}{$args->{name}} )or return 0;
return 1;
});