2014/4/22
Tag : Movable Type

mtForであれこれ

MTForで1ずつ減らす方法(from="12" to="1" の感じ) | かたつむりくんのWWW
http://www.tinybeans.net/blog/2014/04/23-054120.html

をみて、確かに1ずつ減ってるなーとおもいつつ、reverseがあるmt:loopだとできないのかしら?と言うことで試してみた

<mt:SetVar name="from" value="1">
<mt:SetVar name="to" value="12">
<mt:For var="x" from="$from" to="$to">
<mt:SetVarBlock name="hoge" function="push"><mt:Var name="x"></mt:SetVarBlock>
</mt:For>
<mt:loop name="hoge" glue=" / " sort_by="reverse">
<mt:Var name="__value__">月
</mt:loop>

こんな感じでかけばいけますね。

mt:For,mt:Loopはまだまだ使いこなせてる気がしないので、 @tinybeans を見習ってがんばりたいところです。

追記

そもそも、reverse なんか使わずにいけますね。

<mt:For var="x" from="$from" to="$to">
<mt:SetVarBlock name="fuga" function="unshift"><mt:Var name="x"></mt:SetVarBlock>
</mt:For>
<mt:loop name="fuga" glue=" / ">
<mt:Var name="__value__">月
</mt:loop>

追記2

汎用性低そうだけど、prependでもいけますね。

<mt:For var="x" from="$from" to="$to">
<mt:SetVarBlock name="hogehoge" prepend="1"><mt:Var name="x">月<mt:Unless name="__first__"> / </mt:Unless></mt:SetVarBlock>
</mt:For>
<mt:Var name="hogehoge">

参考