Movable Type 3 から Movable 4 へのアップグレード(コメント関連テンプレート差分)
Movable Type 3 から Movable 4 へアップグレードした場合、MT4 で新しく追加・変更されたコメント関連のMTタグは反映されません。
ということで机上での確認ですが、MT4 の機能を利用する場合のテンプレートの差分を示します。
なお本エントリーの反映を行う場合、インデックステンプレートの mt.js(MT3 の mt-site.js の後継) の利用が前提となりますが、アップグレードでは mt.js がインデックステンプレートに生成されません。
mt.js を取得するには、新しいブログをひとつ作成し(再構築はしない)、そこからインデックステンプレートにある「JavaScript(mt.js)」の内容をコピーし、元ブログのインデックステンプレートに新しいテンプレートとして追加してください(他に良い方法があればご教示ください)。
また、mt-site,js を読み込んでいる script 要素も適宜 mt.js を読み込むように変更してください。
以下、エントリー・アーカイブテンプレートとコメント・プレビューテンプレートのMT3/MT4の差分です。
1.認証表示用JavaScript
MT3 まで TypeKey 認証のみでしたが、MT4 から Movable Type/OpenID/LiveJournal/Vox/TypeKey と複数認証に対応するようになったので、TypeKey 認証表示用の JavaScript をそれに対応したものに変更してください。
また、コメントプレビューテンプレートには is_preview = true;
を追加してください。
MT3
<script type="text/javascript">
writeTypeKeyGreeting(commenter_name, <$MTEntryID$>);
</script>
MT4
<MTIfRegistrationAllowed>
<div id="comment-form-external-auth">
<script type="text/javascript">
<!--
writeCommenterGreeting(commenter_name, <$MTEntryID$>, <$MTEntryBlogID$>, commenter_id, commenter_url);
//-->
</script>
</div>
</MTIfRegistrationAllowed>
MT4(コメントプレビュー)
<MTIfRegistrationAllowed>
<div id="comment-form-external-auth">
<script type="text/javascript">
<!--
is_preview = true;
writeCommenterGreeting(commenter_name, <$MTEntryID$>, <$MTEntryBlogID$>, commenter_id, commenter_url);
//-->
</script>
</div>
</MTIfRegistrationAllowed>
注:この JavaScript は MT3 では form 要素の中にありましたが、MT4 では form 要素の直前に移動してください。
理由は、MT4 ではコメントフォームがデフォルトで非表示になり、認証コメントの場合はサインインすることによってコメントフォームが表示されます。
またブログ管理画面の「設定」→「登録・認証」で「認証なしコメント」をチェックすれば認証なしのコメントも可能ですが、その際はコメントフォームの代わりに「匿名でコメントすることもできます。 」というリンクが表示され(下)、それをクリックすればコメントフォームが表示されます。
この JavaScript では、インデックステンプレートの JavaScript(mt.js)の生成条件にしたがって、そういった制御を行っています。
2.form 要素
コメントフォームの form 要素の id 属性 comments-form を追加してください。
また input 要素をひとつ追加してください。
MT3
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">
<input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />
MT4
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form" id="comments-form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">
<input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />
<input type="hidden" name="__lang" value="<$MTBlogLanguage$>" />
3.コメントフォーム
(X)HTMLが変更されています。MT3 までは「名前」と「メールアドレス」を div
要素で括り、TypeKey サインインの場合に id 属性 name-email を狙って非表示にしていましたが、
MT4では「名前」と「メールアドレス」に与えられた id 属性 comment-form-name と comment-form-email で表示・非表示を切り替えています。
MT3
<div id="comments-open-data">
<div id="name-email">
<p>
<label for="comment-author">名前:</label>
<input id="comment-author" name="author" size="30" />
</p>
<p>
<label for="comment-email">メールアドレス:</label>
<input id="comment-email" name="email" size="30" />
</p>
</div>
<p>
<label for="comment-url">URL:</label>
<input id="comment-url" name="url" size="30" />
</p>
<p>
<label for="comment-bake-cookie"><input type="checkbox"
id="comment-bake-cookie" name="bakecookie" onclick="if (!this.checked) forgetMe(document.comments_form)" value="1" />
この情報を登録しますか?</label>
</p>
</div>
MT4
<div id="comments-open-data">
<div id="comment-form-name">
<label for="comment-author">名前</label>
<input id="comment-author" name="author" size="30" />
</div>
<div id="comment-form-email">
<label for="comment-email">メールアドレス</label>
<input id="comment-email" name="email" size="30" />
</div>
<div id="comment-form-url">
<label for="comment-url">URL</label>
<input id="comment-url" name="url" size="30" />
</div>
<div id="comment-form-remember-me">
<label for="comment-bake-cookie"><input type="checkbox" id="comment-bake-cookie" name="bakecookie" onclick="if (!this.checked) forgetMe(document.comments_form)" value="1" />
ログイン情報を記憶</label>
</div>
</div>
MT4(コメントプレビュー)
<div id="comments-open-data">
<div id="comment-form-name">
<label for="comment-author">名前</label>
<input id="comment-author" name="author" size="30" value="<$MTCommentAuthor encode_html="1"$>" />
</div>
<div id="comment-form-email">
<label for="comment-email">メールアドレス</label>
<input id="comment-email" name="email" size="30" value="<$MTCommentEmail encode_html="1"$>" />
</div>
<div id="comment-form-url">
<label for="comment-url">URL</label>
<input id="comment-url" name="url" size="30" value="<$MTCommentURL encode_html="1"$>" />
</div>
<div id="comment-form-remember-me">
<label for="comment-bake-cookie"><input type="checkbox" id="comment-bake-cookie" name="bakecookie" onclick="if (!this.checked) forgetMe(document.comments_form)" value="1" />
ログイン情報を記憶</label>
</div>
</div>
4.CAPTCHA 入力フィールド
MT4 で追加された CAPTCHA の入力フィールドを表示する場合は下記の青色部分を追加してください。
この設定とは別に、ブログ管理画面の「設定」→「コメント」で、CAPTCHA プロバイダの設定が必要です。
:
<p id="comments-open-text">
<label for="comment-text">コメント: <MTIfAllowCommentHTML>(スタイル用のHTMLタグが使えます)</MTIfAllowCommentHTML></label>
<textarea id="comment-text" name="text" rows="15" cols="50"></textarea>
</p>
<MTIfNonEmpty tag="MTCaptchaFields">
<MTIfCommentsAccepted><MTIfRegistrationAllowed><MTElse><$MTCaptchaFields$></MTIfRegistrationAllowed></MTIfCommentsAccepted>
<div id="comments-open-captcha">
</div>
</MTIfNonEmpty>
<div id="comments-open-footer" class="comments-open-footer">
:
5.表示・非表示で使われる id 属性
下の5つの id 属性値は mt.js で参照されるものです。変更しないようにしましょう。
comment-form-name
comment-form-email
comments-open-data
comments-open-text
comments-open-footer;
- Movable Type 4.01 リリース
- Movable Type 4.01 リリース候補第2版を公開
- Movable Type 4.01 リリース候補版を公開
- Movable Type 4.01 Beta2 リリース
- Movable Type 4 にアップグレードするメリット
- Movable Type 4.01 Beta リリース
- Movable Type 4 のデフォルトテンプレートで @import が表示される問題
- Movable Type 3 から Movable Type 4 へのアップグレード方法
- Movable Type 4 リリース
- Movable Type 4 のリリース候補第4版を公開
- Movable Type 4 のリリース候補第3版を公開
- Movable Type 4 リリース候補第2版を公開
- Movable Type 4 リリース候補版を公開
- SmartyPants とは
- Movable Type 4 Beta 7 公開
≫ MT3.35から4へのアップグレード注意点 from ストレンジャー
MovableType3.35から4へのアップグレードですが、旧テンプレートがそ... [続きを読む]
≫ MT3.35から4へのアップグレード注意点 from ストレンジャー
もうひとつのブログの方でやってみた、MovableType3.35から4へのアッ... [続きを読む]
≫ MT3からMT4へアップグレード from CoffeeTime
とりあえず、携帯用のプログラムMT4iのMovable Type4対応バージョン... [続きを読む]
新たにテンプレートを作成し、名前を「JavaScript」、テンプレートの種類を「JavaScript (javascript)」、出力ファイル名を「mt.js」、内容は空 (何かあっても問題ないです) で保存してから Template Backup and Refresh プラグインを使ってテンプレートの初期化をすると mt.js のコードがゲットできますよ!
手間は五分五分といった感じですが、どうせ日の目をみる機会の少ないプリセットプラグインなので使ってあげたらいいと思います!
>松澤 涼さん
こんばんは。
素晴らしい!その手がありましたね。
とってもためになりました~!ありがとう。
>ぽぽさん
こんばんは。
コメントありがとうございました。
お役に立てたようでよかったです。