明けましておめでとうございます。
今回はMT4から実装されたSetvarBlockタグを使って条件分岐を行ってみます。
FLOGで実際使用しています。
まずやりたい事は、FLOG内のエコノミープランのカタログ内で
売れたロゴは一目でわかるようにthumbnail画像を差し替え、もしくはSold Outの帯を入れる。
今回は、後者を選択してみました。
使用する前のインデックステンプレートの一部は以下のようになっています。
<div class="itemList">
<p><$MT:EntryTitle$></p>
<MTEntryAssets type="image">
<a href="<$MT:EntryPermalink$>">
<img src="<$MTAssetThumbnailURL height="100"$>" alt="<$MTAssetLabel$>" title="<$MTAssetLabel$>" /></a>
</MTEntryAssets>
<p id="More"><a href="<$MT:EntryPermalink$>">このロゴを詳しく見る</a></p>
</div>
ここでちょっと話は飛びますがAssetsタグを使用して
bodyタグ内のAssetsタイプイメージを呼び出し、動的にサムネイルの作成を行わせています。
その際に、<$MTAssetThumbnailURL height="100"$>の部分にて
画像の高さを100pxに固定にし、比率は固定にて作成するように指示しています。
更につっこんだ小技を使用することにより、例えば長方形の画像であっても正方形でサムネイルを作成すること等もできますが、今回は割愛。
で、今回の主題に入ります。
画像の帯はCSSのpositionとbackgroundを使って配置する事にしましたので
以下の一文を入れます。
<p class="sot">Sold Out</p>
上記一文を売れた場合のみ入れるようにするためのトリガーを
エントリーのフィールドで使用していない、キーワード部分に売れた場合のみ「soldout」と記載することにしました。
これで、下準備はできましたのでいよいよ、SetVerBlockタグを使用していくことにします。
まずは、soldoutとMTEntryKeywordsを設定します。
<MTSetVarBlock name="status">soldout</MTSetVarBlock> <MTSetVarBlock name="sold"><$MTEntryKeywords$></MTSetVarBlock>
上のように書くことで、statusの中身はsoldout、soldの中身は動的にキーワードにより変化させるようにしましたので、次はこれらを呼び出し、statusとsoldの中身を比較させて条件分岐させるようにします。
(nameの値は好きに設定してください。)
<MTIf name="status" eq="$sold"> <p class="sot">Sold Out</p> </MTIf>
上記のようにMTIfを使うことで比較させ、一致した場合のみ表示されるように行いました。
nameの部分のでSetVarで設定したモディファイのstatusを呼び出しています。
次に、eq部分はMTIfのモディファイにあたるので、soldと書けませんので$soldと変数設定を行います。
こうすることにより、name部分でsoldoutという一文が呼び出され、eq部分でMTEntryKewwordsを呼び出し比較を行います。一致していれば<p class=〜が表示されるようにるはず!
ということで、試してみたところ無事成功でした。
ここの#0004が上記条件にあてはまった部分になります。
こんな感じで使用できるのでSetVarBlockは結構便利だと思います。
1番簡単な使用法としてはMTの記事全件のリストを表示する場合とかでしょうか。
MT3.x時代なんかですと
<MTEntries lastn="9999">・・・・</MTEntries>
といった使い方をしていたと思うのですが
SetVarblockを使用すれば・・・・
<MTSetVarBlock name="ect"><$MTBlogEntryCount$></MTSetVarBlock>
<MTEntries lastn="$ect">・・・</MTEntries>
これで、正しいやりかたで常に全件出力ができます。
こんな感じでMT4はSetVarBlockをがんがん使って行く事により色々前まで出来なかった事が
出来るのではないかなーと思った次第です。
久々に長文を書いたので疲れました・・・ガクリ
追記:
中西君が何やらplugin制作をしていた所に口出しをした際に気づいたのですが
MTSetVarBlockタグ内にMTタグを複数個使っても問題なく動作してました。
ってことは、これは色々便利だなぁ・・・。
http://blog.flatbit.co.jp/btlog/mt-tb.cgi/44
Comments
まだコメントはありません。よろしければコメントをどうぞ。
Post Your Comment