top

3.3テンプレートで4.0の新機能を使う方法

こちらの最後で3.3からアップグレードした際の差分を簡単に書きましたが、さすがにコレでは大雑把すぎるなと思ったので、具体的にどうすればいいのかをもう少し詳しく覚え書きしておきます。

■基本事項:MTのコメントの仕組み
3.2以降のMTではコメント投稿関連の機能は、コメントフォーム部分(<MTEntryIfCommentsOpen>~</MTEntryIfCommentsOpen>)の内容とJavaScriptが連動してクッキーやその他の機能を制御するようになっています。
なので、<MTEntryIfCommentsOpen>~</MTEntryIfCommentsOpen>内で使われているidやnameは勝手に変えないように。上手く動作しなくなりますので。

で、ここの部分が3.3はmt-site.js、4.0はmt.jsとの組み合わせで動くようになっています。3.3からアップグレードして4.0のコメント機能を使いたくなった場合は、<MTEntryIfCommentsOpen>~</MTEntryIfCommentsOpen>部分を4.0仕様のものと差し替えて、mt-site.jsを4.0で新規に加わったmt.jsに変更する必要があります。逆に言うと、この部分だけ差し変えればテンプレ全体を4.0仕様にしなくても、3.3テンプレのままで4.0環境へ移行することができるようになります。

1.新規テンプレートの作成
コメント機能を4.0環境にするために必要なテンプレートを作ります。

コメント入力フォーム
デザイン>テンプレート>テンプレートモジュールで「コメント入力フォーム」という名前で新規テンプレートを作ります。中身は空のままいったん保存し、アクション>テンプレートの初期化で中身を入れます。

mt.js
デザイン>テンプレート>インデックステンプレート で名前は「JavaScript」、テンプレートの種類は「JavaScript(javascript)」、出力ファイル名は「mt.js」として新規テンプレートを作ります。中身は空のままいったん保存し、アクション>テンプレートの初期化で中身を入れます。

2.エントリーアーカイブの修正
<head>内に読み込むmt-site.jsを以下のようにmt.jsに変え、

<script type="text/javascript" src="<$MTBlogURL$>mt.js"></script>

<MTEntryIfCommentsOpen>~</MTEntryIfCommentsOpen>を以下の赤字に差し替え。

<MTEntryIfCommentsOpen>~</MTEntryIfCommentsOpen>
         ↓
<$MTInclude module="コメント入力フォーム"$>

3.コメントプレビューテンプレートの修正
<!DOCTYPE html PUBLIC "-//W3C//DTD~の上に以下の赤字の一行を追加

<MTSetVar name="comment_preview_template" value="1">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head>内の読み込むmt-site.jsを以下のようにmt.jsに変え、

<script type="text/javascript" src="<$MTBlogURL$>mt.js"></script>

<MTEntryIfCommentsOpen>~</MTEntryIfCommentsOpen>を以下の赤字に差し替え。

<MTEntryIfCommentsOpen>~</MTEntryIfCommentsOpen>
         ↓
<$MTInclude module="コメント入力フォーム"$>

これでテンプレは3.3のままで4.0の新しいコメント認証機能が使えるようになります。キャプチャもきれいに入ります。3.35デフォルト初期状態なら意外にレイアウトも崩れずけっこうそのまま使えました。オリジナルテンプレートを作る際にも応用できますね。

 

トラックバックの一覧

トラックバック コメントのプレビューが直った  »» 2007年12月18日 21:43
MovableType4.0にアップグレードしてからずっとコメントのプレビューが...
トラックバック コメントの投稿でエラーが直った(プレビューは直っていない)  »» 2011年5月 7日 12:49
いつからかコメントができない状態でした。原因はレンタルサーバを変更したのにPAT...