kirikirikirikiri2685

DynamicMTMLの中でloopが動作してない

0

MT6.1.2 PowerCMS使っています。
インデックステンプレート(スタティック)です。

<MTLoadCustomFieldInfo basename="namelist">
<MTCustomFieldOptions>
<MTSetVarBlock name="op1" function="push"><$MTCustomFieldOptionValue$></MTSetVarBlock>
<MTSetVarBlock name="op2" function="push"><$MTCustomFieldOptionLabel$></MTSetVarBlock>
</MTCustomFieldOptions>
</MTLoadCustomFieldInfo>
↑ここまでは問題ないことを確認済み
<$MTSetVar name="i" value="0"$>
<MTDynamicMTML>
<$MTQuery key="wwparams" escape="html" setvar="wwparams"$>
<MTLoop name="op1">
<$MTVar name="__value__"$> ※(確認用)ここが出てない
<$MTSetVar name="i" value="1" op="+"$>
<$MTSetVarBlock name="ifval"><$MTVar name="__value__"$></MTsetVarBlock>
<MTIf name="ifval" eq="$wwparams">
	<$MTVar name="op1" index="$i" setvar="opName" $>
	<$MTVar name="op2" index="$i" setvar="opNameVal" $>
</MTIf>
</MTLoop>
</MTDynamicMTML>

これで、ダイナミック間のMTLoopがまったく動いていないようでして、変数「opName」「opNameVal」辺りの値を出力確認しても出てきません。
(ダイナミックはずせばMTLoop自体は動作しています)

返信(1)

| 返信する
  • >kirikirikirikiri2685さん
    こんにちは。

    変数op1/op2に値を代入する処理がDynamicMTMLの外にあって静的に処理されているので、DynamicMTMLの中ではこれらの変数には何も値がない状態になり、ループしない結果になります。

    MTSetVarBlockタグで変数に値を代入する部分を以下のように変えれば、おそらく動作すると思います。

    <MTML tag="MTSetVarBlock" params='name="op1" function="push"'><$MTCustomFieldOptionValue$><MTML tag="/MTSetVarBlock">
    <MTML tag="MTSetVarBlock" params='name="op2" function="push"'><$MTCustomFieldOptionLabel$><MTML tag="/MTSetVarBlock">
    

返信する


カテゴリグループ

OpenID対応しています OpenIDについて