JavaScript、Ajax、HTML5(API)、Ruby…Web及び関連技術の実験&情報公開&制作物紹介。

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

| トラックバック(2)

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 は決して使用しない、ということであればコメントアウトする必要はありません。

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

【追記ここまで】

以上。

トラックバック(2)

あんちもん2.Lab - コンテナタグとグローバルフィルター (2006年9月14日 19:54)

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

オラオラ - 最近のMTプラグイン・要チェックサイト (2007年3月13日 21:41)

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

カテゴリ

月別 アーカイブ

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

このブログ記事について

このページは、あんちもん2が2006年9月14日 19:31に書いたブログ記事です。

ひとつ前のブログ記事は「私のポリシー (ブラウザ編)」です。

次のブログ記事は「MTCollateの落とし穴」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。