Movable Typeの変数と条件分岐を使ってみます。
サンプルコード
タグリファレンスを見ながらいくつか試してみました。
HTML
<!-- 変数の設定と呼び出し --> <$mt:SetVar name="key_sample" value="val_sample"$> <$mt:Var name="key_sample"$> <!-- 変数をまとめて設定 --> <mt:SetVars> chara_name=アクア chara_jpb=アークプリースト chara_skill=花鳥風月 </mt:SetVars> <dl> <dt>名前:</dt> <dd><$mt:Var name="chara_name"$></dd> <dt>職業:</dt> <dd><$mt:Var name="chara_jpb"$></dd> <dt>スキル:</dt> <dd><$mt:Var name="chara_skill"$></dd> </dl> <!-- ブロック内の値を変数として設定 --> <mt:SetVarBlock name="chara_block"> <$mt:Var name="chara_name"$>・<$mt:Var name="chara_jpb"$>・<$mt:Var name="chara_skill"$> </mt:SetVarBlock> <div>SetVarBlockのテスト:<$mt:Var name="chara_block"$></div> <!-- ブロック内の値を変数として設定 --> <mt:SetVarTemplate name="chara_block2"> <$mt:Var name="chara_name"$>・<$mt:Var name="chara_jpb"$>・<$mt:Var name="chara_skill"$> </mt:SetVarTemplate> <!-- 変数設定後に書き換え --> <$mt:SetVar name="chara_name" value="めぐみん"$> <$mt:SetVar name="chara_jpb" value="アークウィザード"$> <$mt:SetVar name="chara_skill" value="爆裂魔法"$> <div>SetVarTemplateのテスト:<$mt:Var name="chara_block2"$></div> <!-- 変数と値をハッシュ(配列)としてまとめて設定 --> <mt:SetHashVar name="party"> <$mt:SetVar name="chara01" value="カズマ"$> <$mt:SetVar name="chara02" value="アクア"$> <$mt:SetVar name="chara03" value="めぐみん"$> <$mt:SetVar name="chara04" value="ダクネス"$> </mt:SetHashVar> <div>partyのchara04:<$mt:Var name="party{chara04}"$></div> <ul> <mt:Loop name="party" sort_by="key"> <li><$mt:Var name="__key__"$>: <$mt:Var name="__value__"$></li> </mt:Loop> </ul> <!-- 条件を満たす場合のみ実行 --> <mt:If name="party{chara01}" eq="アクア"> <p>女神です。</p> <mt:ElseIf eq="めぐみん"> <p>ロリっ子です。</p> <mt:ElseIf eq="ダクネス"> <p>変態です。</p> <mt:Else> <p>冒険者です。</p> </mt:If> <!-- 条件を満たさない場合のみ実行 --> <mt:Unless name="party{chara01}" eq="カズマ"> <p>カズマ以外のだれかです。</p> <mt:Else> <p>カズマです。</p> </mt:Unless>
以下のような表示結果になりました。
<$mt:SetVar name="key” value=”val“$> | 変数keyを定義してvalを設定。 変数名にハイフンは使用しないほうがよい。 |
---|---|
<$mt:Var name="key“$> | 変数keyの値を呼び出す。 |
<mt:SetVars>~</mt:SetVars> | 変数の名前と値をまとめて設定。 「変数名=値」のフォーマットで設定。 |
<mt:SetVarBlock name=”key“>~</mt:SetVarBlock> | ブロック内の値を変数keyとして設定。 ブロック内のテンプレート部分は出力されて値になる。 |
<mt:SetVarTemplate name=”key“>~</mt:SetVarTemplate> | ブロック内の値を変数keyとして設定。 ブロック内のテンプレート部分は出力されないで値になる。 |
<mt:SetHashVar name=”key“>~</mt:SetHashVar> | 変数名と値のセットをハッシュ変数(配列)keyとして設定。 |
<mt:Loop name=”key“>~</mt:Loop> | 指定したkey(ハッシュ変数)の内容に応じて繰り返し処理。 |
<mt:If name=”key” eq=”val“>~</mt:If> | keyに条件の対象となる変数名を入れて、条件を満たした場合に実行。 tag:テンプレートタグを指定して、出力された値と比較。 like:likeで指定した値が含まれている場合に実行。 eq:eqで指定した値と一致する場合に実行。 ne:neで指定した値と一致しない場合に実行。 lt:ltで指定した値よりも小さい場合に実行。 gt:gtで指定した値よりも大きい場合に実行。 le:leで指定した値以下の場合に実行。 ge:geで指定した値以上の場合に実行。 |
<mt:ElseIf> | 条件に合致しなかったときに、さらに条件式を追加。 |
<mt:Else> | 指定した条件に合致しなかいときに実行。 |
<mt:Unless name=”key“>~</mt:Unless> | keyに条件の対象となる変数名を入れて、条件を満たさない場合に実行。 |
【参考サイト】
コメントが承認されるまで時間がかかります。