MT4.261&MT4.32でMTIncludeBlockタグが正常動作しない不具合
MTIncludeBlock
タグとは呼び出すテンプレートモジュールにブロックの内側に格納した変数を渡す事ができるタグです。
そのMTIncludeBlock
タグが動作しない不具合をMT4.261で確認しました。
また、MT4.32でも不具合を確認しました。
既にSix Apartへフィードバック済みですので、次バージョン以降の修正待ちです。
MT4.27及びMT4.34でも不具合は修正されていません。
不具合の詳細
私が発見したのはMTIncludeBlock
タグの内側で設定された変数がテンプレートモジュールで参照できないという不具合です。
次のようなテンプレートモジュールbannerがあったとします。
<a href="<$MTGetVar name="banner_link"$>"><img alt="<$MTGetVar name="banner_alt"$>" src="images/<$MTGetVar name="banner_name"$>.jpg" width="<$MTGetVar name="banner_width"$>" height="<$MTGetVar name="banner_height"$>" /></a>
これを以下のようなコードで呼び出したとします。
<MTIncludeBlock module="banner">
<$MTSetVar name="banner_link" value="http://example.com/"$>
<$MTSetVar name="banner_name" value="advertisement_a"$>
<$MTSetVar name="banner_width" value="728"$>
<$MTSetVar name="banner_height" value="90"$>
</MTIncludeBlock>
この場合の出力結果を並べてみました。
一行目が本来の出力結果で、二行目が現在の出力結果です。
<a href="http://example.com/"><img alt="" src="images/advertisement_a.jpg" width="728" height="90" /></a>
<a href=""><img alt="" src="images/.jpg" width="" height="" /></a>
不具合によって変数が参照できていません。
不具合への対処
この不具合ではMTIncludeBlock
タグの内側で設定された変数だけが参照できません。
なのでMTIncludeBlock
の開始タグと一緒に設定した変数は通常どおりに参照できます。
例えば、上の例で使ったものを不具合が発生しないように書き換えると次のようになります。
<MTIncludeBlock module="banner" banner_link="http://example.com/" banner_name="advertisement_a" banner_width="728" banner_height="90">
</MTIncludeBlock>
これは、あくまで変数に設定する値がプレーンな場合にのみに有効な方法です。
ただ、この書き方ならMTIncludeBlock
タグを使わずともMTInclude
タグで事足ります。
MTIncludeBlock
タグの真骨頂である変数の値にMTタグを設定したい場合には、MTSetVar
タグやMTSetVarBlock
タグを使って設定するしかありません。
コメント[0]
コメント投稿フォーム
コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。
トラックバック[0]
トラックバックはまだありません。
コメントはまだありません。