そもそもこの記事自体は先々月に書き始めたんだけど、
なんか途中で未公開保存して終わってたので、多少手を加えて公開。
とか思ったら中身何もないでやんの!
そんなわけで(?)MTifな話です。
MTifはSetVarタグと組み合わせて使うとすごく便利。
さらにMT4.1から追加されたMTElseIfも組み合わせれば複雑な条件での分岐がお手軽にできるのが魅力的。
これのおかげで先々月に某大手アミューズメント施設のサイトリニューアル時に
CMSとしてMTを導入したのだけど、色々と細かい仕様だったが難なくクリアできました。
その時に使用した分岐の書き方を1つを紹介。
例えば、とあるケーキ屋がありlこのケーキ屋(以降A)は、そのショッピングセンター内の最大で5個あるサービスのうち以下3つが使えるとします。
・テイクアウト割引
・ポイントカード対象
・メンバー割引対象
で、このAのページにそれらが使える事を表示したいわけだけど、
ショッピングセンターのように、200店舗以上もあるような所では手書きで一々かいてると面倒なのでバナーや、定型文を、チェックした場合個別ページで表示するようにします。
まずやること、カスタムフィールドでチェックボックスを最大である5タイプのサービスを作成。
次にブログ記事テンプレートの、最初に以下のような構文をそれぞれ5個書いておく。
<MTSetVarBlock name="hoge"><$MTカスタムフィールドで作成したMTタグ$></MTSetVarBlock>
次に真かどうかを判断させる為の下準備としてこれを書く(コピペでOK)
<MTsetVar name="cck" value="1">
これは、カスタムフィールドで作成したチェックボックスにチェックが入ってる場合1を返すので、それを判断させるため。
で、次にバナーを表示させるHTMLがリスト形式だとした場合
は以下のように書けばOK
<ul>
<MTIf name="cck" eq="$hoge">
<li>サービス1</li>
<MTElseIf eq="$hoge2">
<li>サービス2</li>
<MTElseIf eq="$hoge3">
<li>サービス3</li>
<MTElseIf eq="$hoge4">
<li>サービス4</li>
<MTElseIf eq="$hoge4">
<li>サービス5</li>
<MTElse>
</MTIf>
</ul>
こうかけばどれもチェックされてない場合は最後の
ただし、これはHTMLもしくは分岐の構文自体が何かしら選ぶ事を想定しての例なので注意。このままだとul残りますからね。
っとまぁ、だだだだっと説明を書いたのでわかりづらいかもしれないけど
実際にやってみれば理解はできる内容で書いたつもり。
でまぁMTSetVarBlockやMTIf、MTElseIfなどをうまく使えば
インデックスページに特定のカテゴリは表示しないや、特定のカテゴリにはこのCSSを挿入など柔軟なカスタマイズが行えるので覚えておくと便利。
※補足
MTElseIfでnameをとばしてeqを書いてあるけど、1個目のifと同じ内容を比較する場合は
飛ばしてもOK逆にいえば、違う内容を比較したい場合はnameをかけば別の内容を参照して分岐できるということ。ここ重要。
http://blog.flatbit.co.jp/btlog/mt-tb.cgi/106
Comments
まだコメントはありません。よろしければコメントをどうぞ。
Post Your Comment