45式::雑記
45式::雑記は、日々の事を記してないから日記ではなく雑記です。

MT4.261&MT4.32でMTIncludeBlockタグが正常動作しない不具合

コメント
0件
トラックバック
0件

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]

トラックバックはまだありません。

カテゴリ
アーカイブ
ヘルプ
Feed

フィードとは