メールフォームプラグインの「HTMLヘッダーが見つかりませんでした」のエラーの対処

「HTMLヘッダー」というモジュールテンプレートが見つかりませんでした拙作のメールフォームプラグインでよくある質問として、メールフォームを再構築すると、「『HTMLヘッダー』というモジュールテンプレートが見つかりませんでした」とエラーメッセージが表示された、ということがあります。
このご質問についてお応えします。

1.エラーが起こる原因

このエラーが起こるのは、以下のような状況のときです。

  • サンプルテンプレートとして、「Movable Type 4.2標準テンプレートセット用」をインストールしている
  • サイトのテンプレートセットとして、「プロフェッショナルウェブサイト」「コミュニティブログ」「コミュニティ掲示板」を使っている

「Movable Type 4.2標準テンプレート用」のサンプルテンプレートは、Movable Type 4.2に標準で入っている「既定のブログ」のテンプレートセットに合わせた構造になっています。
しかし、「プロフェッショナルウェブサイト」「コミュニティブログ」「コミュニティ掲示板」の各テンプレートセットは、「既定のブログ」のテンプレートセットとは構造が異なり、「HTMLヘッダー」のテンプレートモジュールはありません。
そのため、「HTMLヘッダー」のテンプレートモジュールを組み込むことができず、再構築時にエラーになってしまいます。

2.Movable Type 4.1用のサンプルテンプレートを使う

「プロフェッショナルウェブサイト」「コミュニティブログ」「コミュニティ掲示板」の各テンプレートセットは、Movable Type 4.1時代のテンプレートセットをベースにしたような構造になっています。
したがって、これらのテンプレートセットとメールフォームプラグインを組み合わせたい場合は、「Movable Type 4.2標準テンプレート用」のサンプルテンプレートではなく、「Movable Type 4.1標準テンプレート用」のサンプルテンプレートを使います。

「プロフェッショナルウェブサイト」「コミュニティブログ」「コミュニティ掲示板」の各テンプレートセットをお使いの方で、これからメールフォームプラグインをインストールされる方は、サンプルのメールフォームのテンプレートとして、「Movable Type 4.1標準テンプレート用」をインストールするようにしてください。

また、「プロフェッショナルウェブサイト」「コミュニティブログ」「コミュニティ掲示板」の各テンプレートセットをお使いの方で、かつ「Movable Type 4.2標準テンプレート用」のサンプルテンプレートをインストールしてしまったという方は、以下の手順を取ってください。

  • 1.すでにメールフォームの設定を行われている場合は、その設定を削除します。
  • 2.テンプレート一覧のページで、以下のテンプレートを削除します。
    • 「mail_form:メールフォーム」のインデックステンプレート
    • 「mail_common:メールフォーム共通部分」「mail_preview:送信確認」「mail_post:送信完了」「mail_error:送信エラー」「mail_body:メール本文」「mail_reply:返信メール」のテンプレートモジュール
  • 3.「Movable Type 4.1標準テンプレート用」のサンプルテンプレートをインストールします。
  • 4.メールフォームの設定を作り直します

3.「モーション」「アクションストリーム」テンプレートセットの場合

現在のMovable Type 4.261(個人無償ライセンス/商用ライセンス)では、同梱のテンプレートセットとして「モーション」と「アクションストリーム」もあります。
これらのテンプレートセットは、「既定のブログ」のテンプレートセットに近い構造になっています。
そのため、メールフォームのサンプルテンプレートも、「Movable Type 4.2標準テンプレートセット用」を使うことができます。

ただし、「アクションストリーム」テンプレートセットをお使いの場合は、「mail_form:メールフォーム」のインデックステンプレートと、「mail_preview:送信確認」「mail_post:送信完了」「mail_error:送信エラー」の各テンプレートモジュールから、以下の部分を削除してください。

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="<$MTLink template="rsd"$>" />
<script type="text/javascript" src="<$MTLink template="javascript"$>"></script>