TopMovable Typeテンプレートタグ > 2008年2月
2008年2月14日

MTIf タグの test モディファイアで Perl の式を利用する

February 14,2008 2:33 AM
Tag:[, ]
Permalink

Movable Type 4.1 の MTIf タグに test モディファイアというものが追加されていましたので、本エントリーにて紹介致します。

1.用途

test モディフィアの用途は、Perlの式を実行し、結果を利用して条件分岐を行うことです。Movable Type の MTSetVar タグ等で作成した変数の値を判定することもできます。

2.サンプル

MTSetVarタグで作った変数 foo の値が1文字以上の英文字であることを判定し、マッチすれば MTIf タグのブロックを実行します。

<$mt:setvar name="foo" value="OK"$>
 
<mt:if test="$foo =~ m/\w+/;">
  <$mt:getvar name="foo"$>
</mt:if>

MTSetVarタグで作った変数 bar の値が5以上であることを判定し、マッチすれば MTIf タグのブロックを実行します。

<$mt:setvar name="bar" value="10"$>
 
<mt:if test="$bar > 5">
  <$mt:getvar name="bar"$>
</mt:if>

このタグを利用すれば、かなりすごいことができそうに思われますが、とりあえず簡単なサンプルでお許しください。

Comments [0] | Trackbacks [0]
2008年2月10日

MTIf タグの tag モディファイアでテンプレートタグの値を直接参照する

February 10,2008 2:12 AM
Tag:[, , ]
Permalink

Movalbe Type 4.1 で、MTIf タグに tag モディファイアがいつのまにか追加されていました。本エントリーで紹介します。

使い方は簡単で、tag モディファイアにテンプレートタグ(ファンクションタグ)を指定すれば、変数のように値を参照できます。

1.基本

<mt:if tag="[ファンクションタグ名]">

指定したテンプレートタグに値がある場合は true、ない場合は false を返却します。

2.サンプル

ファンクションタグの値を MTSetVarBlock タグで一旦変数に取得して判定するケース

<mt:setvarblock name="count"><$MTEntriesCount$></mt:setvarblock>
<mt:if name="count">
     :
</mt:if>

は、

<mt:if tag="MTEntriesCount">
     :
</mt:if>

または

<mt:if tag="EntriesCount">
     :
</mt:if>

と書くことができます。

3.応用

以前紹介した、「ブログ記事に同一カテゴリーのブログ記事リストを表示(MT4版)」を少し書き換えてみます。

変更前

<MTIf name="entry_template">
<MTSetVarBlock name="entryid"><$MTEntryID$></MTSetVarBlock>
<MTSetVarBlock name="entrycategory"><$MTEntryCategory$></MTSetVarBlock>
 
<dt class="sidetitle">
Entries of this Category
</dt>
 
<dd class="side">
  <ul>
  <MTEntries category="$entrycategory">
  <MTSetVarBlock name="currententryid"><$MTEntryID$></MTSetVarBlock>
  <MTIf name="currententryid" ne="$entryid">
    <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
  </MTIf>
  </MTEntries>
  </ul>
</dd>
</MTIf>

変更後

<MTIf name="entry_template">
<MTSetVarBlock name="entryid"><$MTEntryID$></MTSetVarBlock>
<MTSetVarBlock name="entrycategory"><$MTEntryCategory$></MTSetVarBlock>
 
<dt class="sidetitle">
Entries of this Category
</dt>
 
<dd class="side">
  <ul>
  <MTEntries category="$entrycategory">
  <MTIf tag="EntryID" ne="$entryid">
    <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
  </MTIf>
  </MTEntries>
  </ul>
</dd>
</MTIf>

少し見通しが良くなりました。

Comments [5] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3