コンテナタグとグローバルフィルター on MT3.3x

2ヶ月ほど前、コンテナタグとグローバルフィルターという記事で、
『ダイナミックページでは、コンテナタグへのグローバルタグアトリビュート(グローバルフィルター)の適用が無効』
と書きました。

この問題は、MT3.3xでは解決されています。

MT3.2でも、MT3.3xで変更された.phpファイルをコピーすれば、ほぼ問題なく動作します。

【2006/09/20 追記あり】

今回の現象、その理由を探るべく、PHPSmarty(MTのダイナミックパブリッシングで使用されているPHPのテンプレートエンジン)の仕様を調査していました。

その上でソースを見たら、気づいてしまったというわけです。
prefilter.mt_to_smarty.php というファイルが、ちょうどその問題の箇所を修正するように、その部分に該当する箇所だけ変更の手が加えられていた、ということに。

ということで、現在MT3.2をご使用の方のために、この問題を解決する方法をメモしておきます。

  1. MT3.3x(最新版、9/14時点で3.32)のアーカイブをダウンロード
  2. 解凍して得られた [MT33]/php/lib/prefilter.mt_to_smarty.php というファイルを、現在稼動しているMTの [MT]/php/lib/prefilter.mt_to_smarty.php に上書きコピー(アップロード)(※1)

※1【2006/09/20 追記】アップロード前に、以下の編集を施しておくことをオススメします:
新しい prefilter.mt_to_smarty.php の50行目(以下参照)を削除またはコメントアウトする:

47:
48:     # special tag step for stripping any conditional 'static' code.
49:     $tpl_source = preg_replace('/<MTIfStatic[^>]*?>.*?<\/MTIfStatic>/s', '', $tpl_source);
50:     $tpl_source = preg_replace('/<MTIgnore\b[^>]*?>.*?<\/MTIgnore>/s', '', $tpl_source);
51:
52:     if ($parts = preg_split('!(<(?:\$?|/)MT(?:.+?)(?:\$?|/)>)!s', $tpl_source, -1,
53:                        PREG_SPLIT_DELIM_CAPTURE)) {

47:
48:     # special tag step for stripping any conditional 'static' code.
49:     $tpl_source = preg_replace('/<MTIfStatic[^>]*?>.*?<\/MTIfStatic>/s', '', $tpl_source);
50: #    $tpl_source = preg_replace('/<MTIgnore\b[^>]*?>.*?<\/MTIgnore>/s', '', $tpl_source);
51:
52:     if ($parts = preg_split('!(<(?:\$?|/)MT(?:.+?)(?:\$?|/)>)!s', $tpl_source, -1,
53:                        PREG_SPLIT_DELIM_CAPTURE)) {

これは、MTIgnore というMT3.3で追加されたMTタグを機能させるための記述であり、MT3.2ではサポートされていないので、間違って<MTIgnore …>~</MTIgnore>と記述された場合にMT3.3と同様の動作をしてしまうための対策です。
MT3.2で MTIgnore は決して使用しない、ということであればコメントアウトする必要はありません。

なお、サーバ上でファイルの編集ができる場合はアップロードしてから編集してもかまいません。

【追記ここまで】

以上。

トラックバックURL

このエントリーのトラックバックURL:
http://www.antimon2.atnifty.com/mt/mt-tb.cgi/35

トラックバック

» コンテナタグとグローバルフィルター from あんちもん2.Lab
ダイナミック・パブリッシングでは、コンテナタグにグローバルフィルターを適用できない模様。スタティック生成ならできるのに。 続きを読む

» 最近のMTプラグイン・要チェックサイト from オラオラ
ここ最近のMTのプラグイン関連での要チェックサイトは、「Junnama Online (Mirror)」と「あんちもん2.Lab」です。特に あんちもん2... 続きを読む

コメントする