TopMovable Type変数 > 2009年12月
2009年12月15日

Movable Type の配列とハッシュの入れ子

December 15,2009 12:55 AM
Tag:[, ]
Permalink

Movable Type では配列とハッシュの入れ子が可能です。

以前、MT4.1 でハッシュの入れ子が動作しなかったため、そのまま忘却の彼方でしたが、MT4.261 以降では動作しました。4.261 以前の 4.2x バージョンも動作するかもしれませんが未確認です。

それぞれの組み合わせで動作したサンプルを掲載します。

1.配列の入れ子

<mt:SetVar name="list[0]" value="0" />
<mt:SetVar name="list[1]" value="1" />
<mt:SetVar name="list[2]" value="2" />
<mt:SetVar name="foo[0]" value="$list" />
 
<mt:GetVar name="foo[0]" setvar="hoge" />
<mt:loop name="hoge">
  <mt:GetVar name="__value__" />
</mt:loop>

2.配列とハッシュの入れ子

<mt:SetVar name="list[0]" value="0" />
<mt:SetVar name="list[1]" value="1" />
<mt:SetVar name="list[2]" value="2" />
<mt:SetVar name="foo{bar}" value="$list" />
 
<mt:GetVar name="foo{bar}" setvar="hoge"/>
<mt:loop name="hoge">
  <mt:GetVar name="__value__" />
</mt:loop>

3.ハッシュと配列の入れ子

<$mt:SetVar name="week{mon}" value="Monday"$>
<$mt:SetVar name="week{tue}" value="Tuesday"$>
<$mt:SetVar name="week{wed}" value="Wednesday"$>
<$mt:SetVar name="week{thu}" value="Thursday"$>
<$mt:SetVar name="week{fri}" value="Friday"$>
<$mt:SetVar name="week{sat}" value="Saturday"$>
<$mt:SetVar name="week{sun}" value="Sunday"$>
<mt:SetVar name="list[0]" value="$week" />
 
<mt:GetVar name="list[0]" setvar="hoge" />
<mt:loop name="hoge">
  <mt:GetVar name="__value__" />
</mt:loop>

4.ハッシュの入れ子

<mt:SetHashVar name="week">
  <$mt:SetVar name="mon" value="Monday"$>
  <mt:SetHashVar name="ampm">
    <$mt:SetVar name="am" value="AM"$>
    <$mt:SetVar name="pm" value="PM"$>
  </mt:SetHashVar>
</mt:SetHashVar>
 
<mt:GetVar name="week{ampm}" setvar="foo" />
<mt:GetVar name="foo{am}" />

5.ポイント

入れ子の親データを取得する際は、GetVar(Var)タグに setvar モディファイアや SetVarBlock タグを組み合わせて、一旦他の変数に設定します。

<mt:GetVar name="foo[0]" setvar="hoge" />

次のような記述はできません。

<mt:GetVar name="foo[0][0]" />

6.制約

データを取得する際、mt:loop タグの入れ子は対応していないようです。

Comments [0] | 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
2020年
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