MTSetVarTemplateとMTIf - 自分用覚書
December 04, 2008
MTにはMTSetVarTemplateというタグがあり、これは同じテンプレート内で重複してしまう一塊のタグ類をモジュール化することなくMTSetVarTemplateで括り、それを同じテンプレート内で使用できる大変ありがたいタグです。
例えば(ほんとに例えばで・・)、以下のような場合、
<div class="case1">
<MTIfNonEmpty tag="EntryBody">
<$MTEntryBody$>
</MTIfNonEmpty>
</div>
<div class="case2">
<MTIfNonEmpty tag="EntryBody">
<$MTEntryBody$>
</MTIfNonEmpty>
</div>
MTSetVarTemplateタグを使って以下のように出来ます。
<MTSetVarTemplate name="entrybody">
<MTIfNonEmpty tag="EntryBody">
<$MTEntryBody$>
</MTIfNonEmpty>
</MTSetVarTemplate>
<div class="case1">
<$MTGetVar name="entrybody"$>
</div>
<div class="case2">
<$MTGetVar name="entrybody"$>
</div>
上の<$MTGetVar name="entrybody"$>のところには、
<MTIfNonEmpty tag="EntryBody">
<$MTEntryBody$>
</MTIfNonEmpty>
がくるようになります。
ですが、MTIfの中でMTSetVarTemplateを使うことはできないようです。
たぶん、こういう使い方の場合はモジュール化したほうが良いということですよね。
例えば以下のような感じの時。
<MTSetVarTemplate name="entrybody">
<MTIfNonEmpty tag="EntryBody">
<$MTEntryBody$>
</MTIfNonEmpty>
</MTSetVarTemplate>
<MTIf name="case1">
<div class="case1">
<$MTGetVar name="entrybody"$>
</div>
<MTElseIf name="case2">
<div class="case2">
<$MTGetVar name="entrybody"$>
</div>
</MTIf>
念のための自分用覚書でした。

