mt-site.js について(その2:注意事項)
Movable Type 3.2-ja 以降でデフォルト・テンプレートをご利用になるか、新たにテンプレートを作成される場合、mt-site.js の振る舞いの制約上、いくつか注意する点があります。またコメント・トラックバック関連の表示でいくつかの不具合が確認されていますので、下記の修正あるいは設定を推奨します。
1.cookie登録のチェックボックスを追加
修正の対象はコメント・プレビューテンプレートです。
エントリー・アーカイブには、コメント投稿フォームに cookie 登録用のチェックボックス
この情報を登録しますか?
が存在しますが、コメント・プレビューテンプレートにはこのチェックボックスが存在しません。このチェックボックスが存在しないと、ページを開いた時に
document.comments_form.bakecookie has no properties
という JavaScript エラーが発生します。これは mt-site.js の individualArchivesOnLoad に含まれるコード
if (mtcmtauth || mtcmthome) {
document.comments_form.bakecookie.checked = true;
} else {
document.comments_form.bakecookie.checked = false;
}
が実行される時に document.comments_form.bakecookie がみつからないためです。
ということで、本チェックボックス(青色部分)を下記の位置に追加しましょう。
<p>
<label for="comment-url">URL: </label>
<input id="comment-url" name="url" size="30" value="<$MTCommentPreviewURL$>" />
</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>
2.コメント関連タグのID属性について
mt-site.js はコメント投稿フォームにある下記のID属性を利用して表示・非表示を制御しています。
- comments-open
- comments-open-data
- name-email
- comments-open-text
- comments-open-footer
mt-site.js ではこれらのID属性有無チェックは行っていないため、テンプレートを自作される場合(特に他へ公開される等)はこれらのタグを含むようにしましょう。
3.トラックバック関連タグのID属性について
mt-site.js はトラックバック欄にある下記のID属性を参照して、表示・非表示を制御しています。
- trackbacks-info
3項と同様、テンプレートを自作される場合等はこれらのタグを含むようにしましょう。
4.その他1(commenter_name.js の削除)
コメント・プレビューテンプレートのヘッダ部分に記述されている
<script type="text/javascript" src="<MTStaticWebPath>js/commenter_name.js"></script>
は不要です。この行が残っているとコメント・プレビュー画面で JavaScript エラーが発生する可能性があるため削除しましょう。
commenter_name.js というファイルは、英語版の初期β版には含まれていましたが、それ以降は含まれていません。また commenter_name.js の内容は mt-site.js に包含されていますので削除しても問題はありません。
公開テンプレートでは現在コメントアウトしていますが、初期のテンプレートでは有効になっている場合があるため、JavaScript エラーになる場合はこの行を削除してください。
5.その他2(cookie登録用チェックボックスの振る舞い)
コメント投稿フォームの「情報を登録しますか?」チェックボックスのチェックを外すと、mt-site.js の forgetMe が実行され、それまで入力していたコメント情報が消去されてしまいます。お世辞にも使い勝手が良いとは言えないので、別途修正案を提示したいと思います。
とりあえず無闇にチェックを外はずないよう気をつけましょう。
- Movable Type 4.2 のブログ記事ページを XHTML 1.0 Strict で valid にする
- dTree を Movable Type 4.1/MTOS のネイティブタグで実装する
- Lightbox JS/Litebox で BlogPet を背景画像の下に隠す
- mt-site.js について(その3:cookie登録の改善)
- mt-site.js について(その1:仕組みと動作)
≫ commenter_name.jsの謎とスクリプトエラー解決 from ういんぐめも
こちらで書いていたcommenter_name.jsの謎ですが、解決しました! 小粋空間さんのmt-site.js について(その2:注意事項)に詳しい答が載っ... [続きを読む]
≫ MT周りの整備 from blog@browncat.org
webサーバのログを見るとommenter_name.jsがないとかエラーが出て... [続きを読む]
≫ mt-site.jsについて ('commenter_name'は宣言されていません。) from 沢庵亭
Movable Typeを3.2にアップグレードした際に個別アーカイブを表示する... [続きを読む]
いつもお世話になっております。
3.2-ja-2をインストールし、コメントプレビューを見ると、スクリプトエラーで『commenter_nameは宣言されていません』と出ます。
もちろん、テンプレートでコメントアウトされてる部分はいじっておりません。
でも、他に絵文字を使えるように追加したのですが、数日間はエラーも出ないで動いていました。
急にエラーが出るようになりました。
ちなみに、追加したのは
<$MTCommentPreviewBody$>と
<$MTCommentBody$>
のタグの前後に
<MTConvertIconMacro>
</MTConvertIconMacro>や
</textarea>の後ろにスクリプトタグを入れた事が原因でしょうか。
また、ヘッダー部分にスクリプトを追加する部分で…<$MTBlogURL$>…となっているところを
…<$MTStaticWebPath$>…にしているのですが、それが原因でしょうか。
たしかにエラーが『commenter_nameは宣言されていません』なので、上記は関係ないかなとも思ってます。
管理画面での設定に問題があるのでしょうか。
yujiroさんの思い当たることがあれば、ご教授をお願いできませんでしょうか。
よろしくお願いいたします。
>ゆきさん
こんばんは。
JavaScript 関連のエラーのようですね。Firefox をお使いになればエラーの詳細が分かりますのでお試し頂けますでしょうか(サイトを拝見させて頂かないとすいませんが原因はわかりません)。
エラーの確認方法はJavaScript エラーを解消するを参照ください。
解消できないようであれば設定を一旦元に戻されてみるという手もあります。
以上です。
それではどうぞよろしくお願い致します。
長文であまりよく書けなかったので、大変申しわけありませんでした。
一気にいろいろなスクリプトを追加してメインしか確認しなかったために、いざ他で確認したときにエラーが起きてたようです。
yujiroさんのおっしゃるとおり、全部デフォルトに戻して再度1つずつ丁寧に確認しながら設定するようにいたします。
丁寧なアドバイスありがとうございました。
>ゆきさん
こんばんは。
ご連絡ありがとうございました。
確認作業、大変と思いますが頑張ってください。
ではでは!
yujiroさん、いつもお世話になっております。
再び同じ質問をさせて頂きます。
以前は、いろいろ身に覚えがあったので自分でイチからやりなおしましたが、今回はどうしたらいいかわからないので、
再度質問させていただきます。
前回は、yujiroさんの提供するテンプレートと比べるとタグを何個か削除してしまっていたのでタグを戻すと正常に動きました。
今回はどうしてもわからないので一応『comment_nameは宣言されていません』のエラー以外はブログは見られるので、URLを掲載します。
Perl版ダイナミックパブリッシングというのを導入していて、メイン、エントリー、カテゴリー、日別をダイナミックにしています。
Firefoxを使っていないのでどうやって見たらいいかわからないんです。
お手数ですが、何がいけないのか教えていただけたらと思います。
ちなみに、mt-site.jsは自動的に生成されるスクリプトなので、ディレクトリなどにその実体があるわけではないんですよね?
>ゆきさん
こんにちは。
mt-site.js を直接指定するとダイナミックパブリッシングエラーになっているようです。
Perl版ダイナミックパブリッシングの問題につきましては壱さんのサイトで確認された方が良いと思います(私が一度も試していないというのもあります)。
なお mt-site.js は(スタティックページの場合)再構築を契機に生成され、実体として配置されるファイルです。
それではよろしくお願い致します。
yujiroさん、お返事ありがとうございます。
yujiroさんがおっしゃるように、壱さんのところで聞いてみます。
再構築が契機となると、何か対処方法のヒントにもなりそうです。
自分でもいろいろ試してみようと思います。
わざわざ確認して頂いて、ありがとうございました。
>ゆきさん
こんばんは。
PHP版のダイナミックパブリッシングを試してみましたが、mt-site.js は生成NGでした。
それとは別に、ダイナミックパブリッシングは再構築時間短縮やディスク容量確保が目的ですが、mt-site.js にアクセスする元ページ(エントリー・アーカイブ・ページ等)のトラフィックやパフォーマンス(mt-site.js がスタティックページであればアーカイブページの表示が速くなる)とのバランスを考えると、mt-site.js はスタティックページにしておく方が良いでしょう。
そういう意味では、トップページやRSSフィード等もスタティックページが本来だと思います。
それではよろしくお願い致します。