2007年4月の浦和カップ以降、同じ年の9月にエントリーを1つ上げただけで、不本意ながらこのBlogは放置状態となっていた。このたび再開するにあたって、Movable Type(以下MT)も新しくなっていることであるし、アップグレードをすることにした。
ついては例によって以下のようなサイトを参考にさせていただいた。
- Movable Type アップグレードガイド | Movable Type 4 ドキュメント
- MT3.3xからMT4.1システムアップグレード データ移行のポイント - WEBデザイン BLOG
- 小粋空間: Movable Type 3 から Movable Type 4 へのアップグレード方法
手順にのっとって、ファイルやDBのバックアップを取り、ダウンロードしたMT4.23をサーバにアップロード、実行した。
最初にうまくいかなかったのは、cgiファイルの属性の設定を忘れるという初歩的なミスのため。
次に引っかかったのはこういうエラー。
Can't locate object method "lowercase_jcode" via package "MT::I18N::default" (perhaps you forgot to load "MT::I18N::default"?)
エラーメッセージの中に「forgot to load(上げ忘れた)」という言葉があって、確かにftpソフトがアップロード中に何度か不正終了していたので、そのせいかと該当しそうなファイルを何度もアップロードしなおしてみるも、うまくいかない。そこでエラーメッセージをそのまま検索窓に投入してみると以下のようなQ&Aが出てきた。
Q. エラー「Can't locate object method "lowercase_jcode"」インストール中の画面で文字化けが発生しました。また、インストール完了後、以下のエラーが発生し管理画面にログインできません。
Can't locate object method "lowercase_jcode" via package "MT::I18N::default" (perhaps you forgot to load "MT::I18N::default"?)at lib/MT/I18N/default.pm line 110.
A.
ご利用環境の Perl のバージョンに依存して発生する現象となります。Perl 5.6.1 の環境において、Movable Type 4.2 以降のバージョンへのアップグレード、または新規インストールを行った場合に発生します。下記のリンクから、ファイルをダウンロードし適用することで、問題を回避することができます。
そこで上記のページにあったリンクからファイルを適用してみると見事に解決した。
これでとりあえずMT4.23のダッシュボード(入力画面みたいなもの)にたどり着いたが、ページのレイアウトが滅茶苦茶になっている。どうやらテンプレートをMT4.23基準のものに初期化しなければいけないらしい。しかしこの「テンプレートの初期化」プログラムがうまく動かない。
あまり引っかかったりするところではないらしく、検索をしてもそれらしいものは引っかからない。とりあえずおかしくない程度に整えるか、と手作業でスタイルシートなどをいじってみたものの、昔の自分がどういう意図で書式を設定したのかがよくわからなかったりしてなかなか進まない。
半ばあきらめかけたころにふと思いついて、件の「テンプレートの初期化」プログラムをそれまでFirefox3.0.6で作業していたのを、IE7で動かしてみることにしてみた。JavascriptなどでまれにFirefoxではうまく動かないものがあったことを思い出したからだ。
するとプログラムは何の問題もなかったかのように動き、テンプレートは更新された。いったい何のために苦労をしたのか...。
さて、それからスタイルシートやウィジェットの設定を進めた。
過去に上げたエントリーが意図どおりに見えるようにするためだ。実はこれは2007年3月にStyleCatcherを導入したときから引っかかっていたことで、それ以降は過去のエントリーが正しい(中の人にとって)見た目をなしていなかったのだ。
StyleCatcherはMT4.23では「スタイル」という名前になっているが、要は外部のデザインを自分のBlogに取り込む仕組みという基本は変わっていない。そうするとスタイルシートは以下のような無味乾燥なものになってしまう(以下はMT3.3の例)。
/* This is the StyleCatcher theme addition. Do not remove this block. */
@import url(http://xxxx.xx/xx/themes/base-weblog.css);
@import url(http://xxxx.xx/xx/themes/theme-vicksburg_red/theme-vicksburg_red.css);
/* end StyleCatcher imports */
そこでいろいろ調べてみると、こんなものが見つかった。
要するに「styles-site.cssの下の空いている部分に好きなスタイルをどんどん追加すればいいだけ」なんです!!これは「スタイルシートは一番最後に読み込まれたものが適用される」という原理を利用したものです。
ということで、StyleCatcherで適用されたデザインの大部分は生かしつつ、過去に使ったデザインを付け加えて適用することができた。
苦労はしたが、積年の引っ掛かりも解消、悪くない気分だ。

コメントする