movabletype.jp
検索

MTElseIf タグを利用した条件分岐

Movable Type 4.1 Beta3 より、新たに 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 だ。というような複雑な条件分岐も可能です。

シェアする

  • このエントリーをはてなブックマークに追加

トラックバック