Movable Type 5にしてみたものの...

ブログツールを巷で噂の「Movable Type 5」(以下「MT5」と記載)にバージョンアップしてみた。MT4からのバージョンアップ...実際の作業はMT4のファイルを削除して、MT5のファイルをアップロードであるが、バージョンアップはスムーズにできたものの、普通にブログとして使っている分には「MT4」のほうが使いやすかったというのが私の第一印象である。今回のバージョンアップはブログツールとしてではなく、CMS(Content Management System = コンテンツ管理システム)としての機能強化が目立っており、普通にブログツールとしてMTを使用しているのであれば、わざわざバージョンアップすることはなかったと少し後悔している。

またバージョンアップしたがために意味不明なエラーに見舞われるのも、MTの不思議な法則である。私が遭遇した不思議なエラーは以下の通りである。

(1) コメント、トラックバックのメール通知が文字化け
当ブログはコメントやトラックバックがあると、まずはメールで通知する設定をしている。毎月、2~3件のペースで有用なコメントが投稿されるのだが、このエラーはバージョンアップ直後にコメントが投稿されて気づいたエラーである。当初、できの悪いspamメールかと思ったぐらい文字化けのメールがMTから飛んできた。MTのspamフィルタ、そしてGoogle AppsとカスペルスキーとShurikenの幾重もの迷惑メールフィルタをくぐり抜けて受信されたのだから、そのメールがspamでないことは判断できた。

文字化けメールにあったMTのURLにアクセスして確認したところ、投稿されたコメントはしっかりと日本語で表示されているではないか。いったいMT5に何が起こったのだろうか。管理画面には、それらしきものを改善するための設定項目もないようである。

どうやら、これまでのバージョンでは日本語版の場合、設定しなくても初期値でメールの文字エンコードが「ISO-2022-JP」になっていたにも関わらず、MT5では初期値が「ISO-8859-1」という文字コードになっていたのが原因のようである。これを修正するには「mt-config.cgi」に「MailEncoding ISO-2022-JP」を追加する必要がある。これでメールの文字化けは改善されたが、MT4では日本語で表記されていた通知文が、MT5では英語で表記されるようになった。コメント本文は日本語で送られるので実害はないのだが、実はこれもバージョンアップの落とし穴だった。

MT5の「アップグレードの注意点」に以下の注意書きを見つけた。

  • グローバルテンプレートの一部が変更されています。アップグレード後にグローバルテンプレートを初期化してください。
  • mt-config.cgi で DefaultLanguage の記述がない場合は、"DefaultLanguage ja" を追記してください。(後略)。

バージョンアップ後ではあるが、しっかりとこれを実行したところ、全文、日本語のコメント通知が届くようになった。アップグレード前には、しっかりと公式ドキュメントは読んでおくべきである。

ちなみにグローバルテンプレートの初期化の手順は以下の通りである。

  1. 管理画面左上の「ユーザーダッシュボード」の左側にある▼をクリックし「システム」を選択
  2. 左側メニューの「デザイン」→「テンプレート」を選択
  3. 「グローバルテンプレートの管理」画面に変わるので、全てのテンプレートにチェックを付け、それぞれの上部にあるプルダウンメニューで「テンプレートの初期化」を選び「Go」を押す

(2) MT4iがエラー

当サイトでも過去に何度か紹介した、携帯端末でMTのブログが読める「MT4i」でも不具合が出た。複数のブログを運営している場合、携帯端末へ渡すURLが「mt4i.cgi?id=x」となり、携帯用に最適化されたページが表示されるのだが、MT5にしたと同時に「Script Error」が出るようになってしまった。?以降の引数を取って「mt4i.cgi」にアクセスしたところ、MTで運用されているブログ一覧が表示されたのだが、それが文字化けしている状態であった。

MT4iの公式サイトに寄せられているコメントを見ると、どうやらMT4iは、MT5と相性が良くないようである。暫定的に公開されている「MT4i 3.1」を導入することで、ある程度は解決できる。ただし「MT4i 3.1」は現時点でMT4i公式サイトでは正式に公開されていない暫定対応版なので、自己責任での利用となる。

なお「MT4i 3.1」を利用しても、複数のブログを運用している場合、2個目以降のブログのインデックスから各ブログ記事のリンクを開くと下記のようなエラーが表示された。

Software error:
Can't call method "id" on an undefined value at /[path]/mt/mt4i/mt4i.cgi line 1048.

理屈は、よくわからないが「mt4i.cgi」の1048行目をコメントアウト(行頭に「#」を記述)することによって、このエラーは改善され、現在は正常に利用できている。