QA@IT

Movable Type(3.37)が移設後から、$MTInclude moduleでエラーでてサイト構築ができません。

2056 PV

現在、Movable Type(3.37)を新しいサーバに移設を試みているのですが、サイト構築時に$MTInclude moduleで読み込んだテンプレートを構築しようとすると下記のようなエラーがでて構築ができません。
” <MTInclude>タグでエラーが発生しました: 読み込むテンプレート・モジュール「hoge」が見つかりません。”

構築状況は、MTで構築されたblogが4つあります。
その4つの内の一つ(仮にblogAとします)にモジュールが大量に入っております。
そのblogAの中にあるモジュールを他のblogから使用すると上記のエラーがでます。

対応として、blogAにあるモジュールを各blogの中に同じ名前でモジュールを作成すれば、構築が可能なのですが、何分大量にありますので、できれば、既存のどおりblogAにあるモジュールをほかのblogからも参照できれば幸いです。

既存のものは、問題なく上記の状況で構築が可能です。

▼今回の移設手順

  • 既存サーバからファイルのDL後、新規サーバにUP
  • DBのエクスポート、インポート
  • 権限、ユーザの設定
  • ファイルのパスの変更

回答

参照しているテンプレート・モジュールがどのブログで宣言されているものなのか指定をしたらどうでしょうか。MTInclude>タグに、テンプレート・モジュールが宣言されているブログのIDを blog_id で指定が必要になっているのかもしれません。

編集 履歴 (0)
  • 回答ありがとうございます。
    こちらの記載が明確でなかったのですが、実際のテンプレートは下記のように参照しております。IDは指定してあるのですが、、だめのようです。
    ```perl
    <MTMultiBlog include_blogs="1">
    <$MTInclude module="hoge"$>
    </MTMultiBlog>
    -

そういえば、MT3からMT4.2などへアップグレードしたときに、従来は module だったのに、widgetに自動でなるものがあった気がします。アップグレード後に見えなくなっているモジュールの指定について、ウィジットとして指定するようにすれば動くかもしれません。

  • 複数のブログに hoge というモジュールがあると参照できないので、<$MTInclude blog_id="1" module="hoge"$> とする
  • module="hoge" の hoge はモジュールとしてblog_id=1のブログに存在しているか確認する。hogeが widgetとなっている場合は、widget="hoge" と指定しなおす。
編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。