InstantTag - プラグインの設定なしで使える即席MTタグを定義.
<mt:instanttag name="hello">
sub {
my ($ctx, $args) = @_;
"hello, $args->{yourname}!!"
}
</mt:instanttag>
...
<p><mt:call caller="hello" yourname="taiju" /></p>
InstantTag はプラグインの設定なしで使える即席MTタグを定義するためのプラグインです。 即席MTタグを定義する場合は、MTInstantTagを使います。 即席MTタグは MTCall, MTCallFunction, または MTCallBlock タグを使って呼び出されます.
-
MTInstantTagはnameモディファイアと値を持ちます。 nameモディファイアには、即席MTタグの名前を指定します。 値には即席MTタグのハンドラ関数を指定します。
- <MTCall caller="..." />
-
MTCallFunctionのエイリアスです。
- <MTCallFunction caller="..." />
-
定義した即席MTタグがファンクションタグの場合、このMTCallFunctionを使ってください。 MTCallFunctionは、callerモディファイアを持ちます。 callerモディファイアには、定義した即席MTタグで指定した名前を指定します。 その他のモディファイアは、即席MTタグのハンドラ関数に利用されます。
- <MTCallBlock caller="..."> ... </MTCallBlock>
-
MTCallBlockタグは、MTCallFunctionタグのブロックタグ版です。 定義した即席MTタグがブロックタグの場合、このMTCallBlockを使ってください。
MTInstantTagは、ひとつだけ匿名の即席MTタグを持つことができます。
例1:
<mt:instanttag>
sub {
my ($ctx, $args) = @_;
"hello, $args->{yourname}!!"
}
</mt:instanttag>
...
<p><mt:call yourname="taiju" /></p>
MTInstantTagタグでnameモディファイアを省略した場合、その即席MTタグは匿名の即席MTタグになります。 MTCallタグ、MTCallFunctionタグ、MTCallBlockタグのいずれかでcallerモディファイアを省略した場合、匿名の即席MTタグが使用されます。 ただし、匿名の即席MTタグはひとつしか存在できません。次の匿名の即席MTタグを定義した時、一つ前の匿名の即席MTタグは上書きされます。
例2:
<mt:instanttag>sub { "hello!!" }</mt:instanttag>
...
<p><mt:call /></p>
...
<mt:instanttag>sub { "good bye!!" }</mt:instanttag>
...
<p><mt:call /></p>
この例のように複数回、匿名の即席MTタグを利用することができます。 MTCallタグでは、直近の匿名のMTInstantTagのハンドラ関数が利用されます。
PHPのサポート
HIGASHI Taiju <higashi@taiju.info>
このライブラリはフリーソフトウェアです。 あなたはこれを再配布、および、または変更することができます。 Perlと同じ条件の元で。