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">
    

返信する


カテゴリグループ

フォーラムカテゴリー

21 76

最新のトピック: 公開終了日の取り消し (2013年10月18日 gsk)

250 752

最新のトピック: 複数条件による記事一覧の出力 (2016年7月12日 ぐぬぬ)

164 490

最新のトピック: 「公開終了日」を表示するMTタグ (2016年7月29日 rinopo)

366 1041

最新のトピック: Data APIで「タグ一覧」を取得 (2016年8月 4日 penpal)

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