MTElseIf タグを利用した条件分岐
MTElseIf ブロックタグを使うと、拡張された MTElse タグを利用した複雑な条件分岐 で紹介されている複雑な条件分岐を、より簡単に行えます。
実際に MTElseIf ブロックタグの働きを見てみましょう。
<MTIf name="userpic_type" eq="author">
<!-- 変数 userpic_type に設定した値が author の場合に処理するテンプレート -->
<MTElse name="userpic_type" eq="commenter">
<!-- 変数 userpic_type に設定した値が author ではないが commenter の場合に処理するテンプレート -->
<MTElse>
<!-- 変数 userpic_type に設定した値が author でも commenter でもない場合に処理するテンプレート -->
</MTIf>
このような条件分岐のテンプレートを MTELseIf ブロックタグを使用して書き直すと以下のようになります。
<MTIf name="userpic_type" eq="author">
<!-- 変数 userpic_type に設定した値が author の場合に処理するテンプレート -->
<MTElseIf eq="commenter">
<!-- 変数 userpic_type に設定した値が author ではないが commenter の場合に処理するテンプレート -->
<MTElse>
<!-- 変数 userpic_type に設定した値が author でも commenter でもない場合に処理するテンプレート -->
</MTIf>
違いは、条件を判断する対象の変数が同じ場合、MTELseIf ブロックタグを使用すると name モディファイアを省略できるところにあります。また、テンプレートとしても、MTELseIf となっていたほうが、読みやすくなっています。もちろん name モディファイアも使用できますので、変数 userpic_type に設定された値は author ではないけれど、(name モディファイアで設定された) 別の変数に設定された値は hoge だ。というような複雑な条件分岐も可能です。