Page Top

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>

念のための自分用覚書でした。

最新記事

Movable Type用テンプレートComunica Templates