どうやらMovableTypeのElseIfはElseIfじゃないらしい。

はいさー。

なんかダルダルな一日の鳥ですよ。

MovableTypeの4使ってて。テンプレートタグ(つか制御構文)で、どうもElseIfがElseIfとして機能してないことを発見したさ。

<MTSetVar name="hoge" value="abc">
<MTIf name="hoge" like="abc">
<MTSetVarBlock name="hoge"><$MTVar name="hoge"$>def</MTSetVarBlock>
<MTElseIf like="def">
<MTSetVarBlock name="hoge"><$MTVar name="hoge"$>ghi</MTSetVarBlock>
</MTIf>
<$MTVar name="hoge"$>

こうするよね。
ふつーはさ、これで結果は「abcdef」のはずなんだ。

と・こ・ろ・が。

「abcdefghi」って出てくる。

つまりどういうことか。内部的にはMTElseIfは、elseifじゃなくて、別の独立したif文として変換されているに違いない。

MTElseIfはおそらくかたちだけなので、本来のプログラム文と同じ機能はどーも期待するとまずーいことになるね〜。単独でも問題無いテンプレートの組み方をした方が良いかもかも。

でわでわ。