MTAssetsの不具合?について。

MT4から標準装備の「MTAssets」。
当サイトでいうとトップページの右のサイドバーに表示している画像のサムネイル表示機能です。
仕事でMT4ベースのウェブサイトを作っている時に遭遇した不具合と対処法をメモしておきます。
たぶん、普通にMTAssetsを使っているうちは、あまり不具合など無いと思いますが、今回はちょっと変わった・・・というか、強引な使い方をする事になり、そのせいで記事投稿時や保存時にサーバーエラーがでてしまうという現象に悩まされました。
という事で、次回忘れないようにココに書き留めておきます。
■今回のMTAssetsの使い方。
  • サイドバーではなくフッターに表示
  • 各カテゴリ・ウェブページごとに、サイドバー(フッターも同テンプレート内に記述→でフォルト)の内容が違う
  • MTifでの表示分岐ではなく、複数のアーカイブテンプレートとテンプレートモジュール(サイドバー&フッター表示のための)をマッピングで関連づけして表示。
  • MTAssetsは、テンプレートモジュールの数だけウィジェットセットを作り、各テンプレートモジュールに読み込むと同時に、ウィジェット経由ではうまく表示されない日付アーカイブ用に、インデックステンプレートでサイドバー&フッターテンプレートを生成しインクルード。(後々カテゴリやウェブページ事にフッターの内容をウィジェットで変更できるようにするため、あえてフッター内の要素を複数のウィジェットセットで分けたため、こんなんなっちまいました)
こんな仕組み(わかりにくいですが)のサイトのため、結果的に、MTAssetsを表示させるサイドバー&フッターテンプレートが7種+日付アーカイブ用テンプレートが1つの計8種類ものテンプレートにMTAssetsが関連してしまう事態になって、不具合が起こりました。
でも、どうやら、数の問題ではなく、ウィジェットとしてはMTAssetsが1つでも、複数のウィジェットセットにMTAssetsが入り、さらにそれぞれが別々のモジュールテンプレートに読み込まれる・・・というのが不具合の原因のよう・・・。
■不具合の状況
  • 記事投稿や、記事の変更保存の時、再構築時に、Internal Server Error 500が出る。
  • 投稿記事内容はDBには保存されるので、サイト全体の再構築時には、記事の再構築も行われる。
  • サイト全体の再構築の際には、Internal Server Error 500は出ない。
■対処法
  • ウィジェット及び、ウィジェットセットを使った各テンプレートへのインクルードは不採用にする。
  • 新たに、MTAssets用のインデックステンプレートを作成し、そのファイルを各テンプレートモジュール(今回の場合は種類のモジュールテンプレート+インデックステンプレート)にインクルード。
  • 記述例:<$MTInclude file="サイトのフルパス/インデックステンプレートファイル名.html"$>をMTAssetsの表示部分に記述。

という事で、なんとかInternal Server Error 500は出なくなりました。

ただ、あと一カ所、フッター以外の場所で、MTAssetsを使わなくちゃいけないんですが、うまく切り抜けられるかどうか・・・。ま、なるようになるさ(笑)。

※教訓 ウィジェットだからといって気軽にアチコチ使うと怖い(笑) (っつうか、そんなんで良いのか?)

2007/1/5 追記
上にゴチャゴチャ書きましたが、どうやら複数の要因でのエラーらしく、結局上記の対策では記事の保存時のエラーはなんとか回避できるものの、新規投稿時のエラーは解消できていませんでした。
大変失礼しました。
カテゴリ/

トラックバック(0)

このブログ記事を参照しているブログ一覧: MTAssetsの不具合?について。

このブログ記事に対するトラックバックURL: http://www.eastvalleys.com/cgi/mt/mt-tb.cgi/31

コメントする

アーカイブ