Movable Type 5で「テンプレート「Create Entry」の再構築中にエラーが発生しました」というエラーが発生する件について

Movable Type 5で「テンプレート「Create Entry」の再構築中にエラーが発生しました」というエラーが発生する件について

Posted at August 24,2010 3:55 AM
Tag:[Community, MovableType, MTInclude, TroubleShooting]

MTQの「コミュニティ掲示板 初期作成でテンプレートエラーになる」で、タイトルの再構築エラーの件が話題になったので、情報展開します。

1.問題点

コミュニティブログまたはコミュニティ掲示板の再構築で次のようなエラーが発生する。

テンプレート「Create Entry」の再構築中にエラーが発生しました: <mtInclude>タグでエラーがありました: 「Header」というモジュールテンプレートが見つかりませんでした。

再構築エラー

2.原因

MTのインストール時に選択した使用言語と、新たに作成するコミュニティブログまたはコミュニティ掲示板の「使用言語」の選択が異なっているため。

インストール時の使用言語の選択
グローバルテンプレート一覧画面

「使用言語」の選択(一番下の項目)
ブログ作成画面

この事象は、上の画像のように、インストール時の使用言語が「日本語」で、ブログ作成時の言語が「English」、あるいはインストール時の使用言語が「English」で、ブログ作成時の言語が日本語の場合などに発生します。

3.対処1

コミュニティブログまたはコミュニティ掲示板作成時、誤った言語選択を行っていた場合は、作成したブログを削除し、「使用言語」をインストール時の言語に合わせてブログを再作成してください。次項の「対処2」を行う必要はありません。

4.対処2

MTインストール時の選択言語(日本語)と、新たに作成したコミュニティブログまたはコミュニティ掲示板の言語を異なるものにする必要がある場合、次に示す、ブログの各テンプレートの修正を行えば、再構築エラーを解消することができます。

ここでは、インストール時の言語が「日本語」で、新たに作成するコミュニティブログまたはコミュニティ掲示板の使用言語に「English」を選択した場合の対処方法を説明します。

「Create Entry」インデックステンプレート

対処前

…前略…
<$mt:Include module="Header"$>
…中略…
<$mt:Include module="Footer"$>
…後略…

対処後

…前略…
<$mt:Include module="ヘッダー"$>
…中略…
<$mt:Include module="フッター"$>
…後略…

「Archive Index」インデックステンプレート

対処前

…前略…
<$mt:Include module="Header" body_class="mt-archive-index"$>
…中略…
<$mt:Include module="Footer"$>

対処後

…前略…
<$mt:Include module="ヘッダー" body_class="mt-archive-index"$>
…中略…
<$mt:Include module="フッター"$>

「Main Index」インデックステンプレート

対処前

…前略…
<$mt:Include module="Header" body_class="mt-main-index"$>
…中略…
<$mt:Include module="Footer"$>

対処後

…前略…
<$mt:Include module="ヘッダー" body_class="mt-main-index"$>
…中略…
<$mt:Include module="フッター"$>

「Sidebar」テンプレートモジュール

テンプレート名を「サイドバー」に変更

「Entry Form」テンプレートモジュール

対処前

…前略…
<form method="post" action="<$mt:CGIPath$><$mt:CommunityScript$>" name="entry_form" id="create-entry-form" enctype="multipart/form-data">
    <input type="hidden" name="__mode" value="post" />
    <input type="hidden" name="blog_id" value="<$mt:BlogID$>" />
    <input type="hidden" id="magic_token" name="magic_token" value="" />
    <mt:SetVarBlock name="field-content"><input id="entry-title" class="ti" name="title" /></mt:SetVarBlock>
    <$mt:Include module="Form Field" id="entry-title" class="" label="Title"$>
 
    <mt:SetVarBlock name="field-content"><textarea id="entry-body" class="ta" name="text" rows="15" cols="50"></textarea></mt:SetVarBlock>
    <$mt:Include module="Form Field" id="entry-body" class="" label="Body"$>
 
    <mt:If tag="BlogCategoryCount">
        <mt:SetVarBlock name="field-content">
            <select id="entry-category" name="category">
                <option value="0">Select Category...</option>
            <mt:TopLevelCategories>
                <mt:SetVarBlock name="loop_to"><$mt:Var name="__depth__" _default="0"$></mt:SetVarBlock><mt:SetVarBlock name="spacer"><mt:For start="1" end="$loop_to">    </mt:For></mt:SetVarBlock><option value="<$mt:CategoryID$>"><$mt:Var name="spacer"$><$mt:CategoryLabel$></option>
                <$mt:SubCatsRecurse$>
            </mt:TopLevelCategories>
            </select>
        </mt:SetVarBlock>
        <$mt:Include module="Form Field" id="entry-category" class="" label="Category"$>
    </mt:If>
 
    <mt:EntryCustomFields>
        <mt:SetVarBlock name="custom_field_name"><$mt:CustomFieldName escape="html"$></mt:SetVarBlock>
        <mt:SetVarBlock name="field-content"><$mt:CustomFieldHTML$></mt:SetVarBlock>
        <mt:SetVarBlock name="custom_field_id">profile_<$mt:CustomFieldName dirify="1" escape="html"$></mt:SetVarBlock>
        <mt:SetVarBlock name="required"><mt:CustomFieldIsRequired>1<mt:else>0</mt:CustomFieldIsRequired></mt:SetVarBlock>
        <$mt:Include module="Form Field" id="$custom_field_id" class="" label="$custom_field_name" required="$required"$>
    </mt:EntryCustomFields>
    <input type="submit" accesskey="s" name="post" id="entry-submit" value="Submit" />
</form>
…後略…

対処後(4ヶ所修正)

…前略…
<form method="post" action="<$mt:CGIPath$><$mt:CommunityScript$>" name="entry_form" id="create-entry-form" enctype="multipart/form-data">
    <input type="hidden" name="__mode" value="post" />
    <input type="hidden" name="blog_id" value="<$mt:BlogID$>" />
    <input type="hidden" id="magic_token" name="magic_token" value="" />
    <mt:SetVarBlock name="field-content"><input id="entry-title" class="ti" name="title" /></mt:SetVarBlock>
    <$mt:Include module="フォームフィールド" id="entry-title" class="" label="Title"$>
 
    <mt:SetVarBlock name="field-content"><textarea id="entry-body" class="ta" name="text" rows="15" cols="50"></textarea></mt:SetVarBlock>
    <$mt:Include module="フォームフィールド" id="entry-body" class="" label="Body"$>
 
    <mt:If tag="BlogCategoryCount">
        <mt:SetVarBlock name="field-content">
            <select id="entry-category" name="category">
                <option value="0">Select Category...</option>
            <mt:TopLevelCategories>
                <mt:SetVarBlock name="loop_to"><$mt:Var name="__depth__" _default="0"$></mt:SetVarBlock><mt:SetVarBlock name="spacer"><mt:For start="1" end="$loop_to">    </mt:For></mt:SetVarBlock><option value="<$mt:CategoryID$>"><$mt:Var name="spacer"$><$mt:CategoryLabel$></option>
                <$mt:SubCatsRecurse$>
            </mt:TopLevelCategories>
            </select>
        </mt:SetVarBlock>
        <$mt:Include module="フォームフィールド" id="entry-category" class="" label="Category"$>
    </mt:If>
 
    <mt:EntryCustomFields>
        <mt:SetVarBlock name="custom_field_name"><$mt:CustomFieldName escape="html"$></mt:SetVarBlock>
        <mt:SetVarBlock name="field-content"><$mt:CustomFieldHTML$></mt:SetVarBlock>
        <mt:SetVarBlock name="custom_field_id">profile_<$mt:CustomFieldName dirify="1" escape="html"$></mt:SetVarBlock>
        <mt:SetVarBlock name="required"><mt:CustomFieldIsRequired>1<mt:else>0</mt:CustomFieldIsRequired></mt:SetVarBlock>
        <$mt:Include module="フォームフィールド" id="$custom_field_id" class="" label="$custom_field_name" required="$required"$>
    </mt:EntryCustomFields>
    <input type="submit" accesskey="s" name="post" id="entry-submit" value="Submit" />
</form>
…後略…

5.修正内容の解説

コミュニティブログまたはコミュニティ掲示板で使われているテンプレートから、グローバルテンプレートを呼び出しています。グローバルテンプレートのテンプレート名はインストール時の言語に依存します。日本語でインストールすれば日本語で表示されます。

以下はグローバルテンプレートの一覧画面です。

グローバルテンプレート一覧画面

グローバルテンプレートを呼び出すには、MTIncludeタグを利用します。「ヘッダー」テンプレートモジュールを呼び出すには次のようにします。

<$mt:Include module="ヘッダー"$>

ところが、コミュニティブログまたはコミュニティ掲示板のテンプレートに含まれる、MTIncludeタグのmoduleモディファイアの値は、ブログ作成時に選択した言語に依存します。

「English」を選択した場合、ヘッダーテンプレート呼び出しのMTIncludeタグは、次のようになります。

<$mt:Include module="Header"$>

これはコミュニティブログまたはコミュニティ掲示板に限ったことではありませんが、この2つのテーマはグローバルテンプレートを呼び出すところが、クラシックブログなどの、他のテーマと異なっています。クラシックブログであれば、テンプレートモジュールの呼び出しが自テーマ内に閉じているので、言語選択は影響しません。

そして、このようなアンマッチな状態で再構築を行うと、「Header」というテンプレートモジュールは存在しないため、冒頭のような再構築エラーが発生します。

エラーを解消するには、MTIncludeタグで呼び出すテンプレートモジュールの名称と、呼び出されるテンプレートモジュール名を対応させます。

なお、ブログ作成画面の言語選択のプルダウンメニューに次のような説明がありますが、このエントリーで示す修正が必要であることを指しています。

グローバルテンプレート一覧画面

グローバルなDefaultLanguage設定と異なる言語を選んだ場合、グローバルテンプレートの名称が異なるため、テンプレート内で読み込むモジュール名の変更が必要な場合があります。
関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)