MTMultiBlog タグブロック内での MTInclude タグの入れ子について(続き)
以前、「MTMultiBlog タグブロック内での MTInclude タグの入れ子について」という記事で、「MultiBlog タグと Include タグを入れ子にすると再構築エラーが発生する」という旨の内容を書いたのですが、コメントで対処方法を教えて頂きました。ありがとうございました。
また前回は、事象の詳細まで記していませんでしたので、今回は図で説明します。
1.現状の動作
まず前提として、図の一番上の「ポータルブログ(blog_id1)」では、その下にある2つのブログ(blog_id2/blog_id3)を、MultiBlog プラグインの設定で収集対象にしています。
この状態で、ポータルブログのメインページを再構築すると、メインページからインクルードしている2つのテンプレートモジュールは①のルートでインクルードされることを期待するのですが、現状の動作では、
- 「記事の概要」テンプレートモジュール:ポータルブログのテンプレートモジュールをインクルード
- 「記事のメタデータ」テンプレートモジュール:MultiBlog タグで処理しているブログのテンプレートモジュール(②③)をインクルード
となります。
blog_id2 のブログの処理では、ポータルブログと同じテンプレートモジュールがあるので再構築エラーにならないのですが、blog_id3 のブログの処理では、該当のテンプレートモジュールがみつからないため、再構築エラーになります(前回記事の事象)。
つまり、入れ子になっているテンプレートモジュールは、ポータルブログのテンプレートモジュールが使われません。
MultiBlog プラグインの設定で収集するブログを指定する代わりに、include_blogs モディファイアで収集するブログを指定しても、同様の事象でした。
ちなみに、テンプレートモジュールがないブログに同じ名前のテンプレートモジュール(内容は適当)を作れば、正常に再構築が完了します。
2.対処方法
各 Include タグに blog_id モディファイアを記述し、モディファイアの値に自ブログの番号を設定します。
先の図の場合、ポータルブログの「記事の概要」テンプレートモジュールからインクルードしている「記事のメタデータ」の MTInclude タグに、自分のブログID「blog_id="1"」を設定します。
対処前
<mt:include module="記事のメタデータ" />
対処後
<mt:include module="記事のメタデータ" blog_id="1" />
3.参考記事
参考記事は下記です。ありがとうございました。
- MovableTypeプラグインの独自CGIをNginxに対応させる方法
- Movable Type 5で「Got an error: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)」というエラーになる場合の対処
- 旧バージョンのMTでPerl5.26(Perl5.24以降)に対応する方法
- MT6.2のファイルアップロードで「Undefined subroutine &POSIX::strftime」になる問題の対処
- Movable Typeのファイルアップロードで「アップロードしたファイルは大きすぎます。」というエラーになる場合の対処
- Movable Typeのパスワード変更で「URLが不正です。」というエラーなる件についての対処
- Movable Typeで「Cannot find column 'blogs' for class 'MT::Blog'」となる場合の対処
- Movable TypeでMTPageNextタグが効かなくなる不具合について
- Movable Typeの復元で「Request-URI Too Large」になるときの対処
- サーバ故障と「Connection error: Too many connections」エラーおよびMySQLテーブル破損について
- Movable Typeでエラー発生箇所を特定する方法
- IE9でMovable Typeを利用する方法
- MTIfタグにtagモディファイアを利用する場合の注意事項
- Movable Type 5のブログの設定で「Can't call method &quot;label&quot; on unblessed reference」が発生する問題について
- Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)