重い腰を上げて、ようやく Movable Type 3.3 に移行しました。現時点での最新バージョンは 3.34 です。
移行作業中に見つけたことや、今までとやり方を変えたことなどを書き留めておこうと思います。
その前に、この間サーバーの PHP のバージョンを 4.4.4 から 5.2.0 にバージョンアップしたのですが、MT のバージョン 3.21 の時点でダイナミック・パブリッシングの挙動がおかしくなっていました。最初はそのことに気がつかなくて、金曜日の夜中に会社で徹夜して仕事している途中にたまたま見つけました。前にも同じようなことがあったので(サーバーを借りたばかりの頃に同じようなことを経験していた)、そのとき見つけたのは MT 附属の Smarty のバージョンが最新の PHP と合っていないというものだったので、最新のものを落としてきて入れ替えたらあっさり治りました。
Smarty : Template Engine
こちらから最新版をダウンロードし(現時点では 2.6.16)解凍して出来たディレクトリを smarty にリネームしてから、[MT_DIR]/php/extlib/smarty
と差し替えればハッピーになれます。
MT 3.21 に 3.34 附属の smarty フォルダをコピーしてもおかしかったので、上記の通りに最新版に入れ替えたのでした。
ところで、MT 3.34 にしてから、ダイナミック・パブリッシングが文字化けしているのを今日になって見つけました。MySQL の文字コードとか問題あるのかな。とりあえず、MT 3.34 移行時に mt-config.cgi に SQLSetNames 0
と明記しないと(ダイナミック・パブリッシングに限らず)文字化けすることは確認しました(このときと一緒)。
MySQL の文字コードの設定、見直さないとな。。。
3.34 に移行するに当たってデザインも少しだけ変更したのですが、一番大きな変更は css の管理方法を変更したことです。上ノ郷谷さんの CSS 分割管理の実践編 - 2xup.org をまずは実践も兼ねてほとんどそのまま採用させていただきました。これから自分なりの管理しやすい方法を探っていければと思います。
また、フォントサイズ固定をやめました。これで Windows の IE でもブラウザで文字サイズの変更が出来ると思います。デフォルトのサイズもちょっぴり上げて読みやすくしました。
トップページのサイドバーに5つくらい、外部サイトのフィードを取ってきて表示しているのですが、この部分を Plagger を使って実装しました。Publish::MTWidget を使って簡単に出来るのですが、5つのサイトからそれぞれ最新の5件だけ取ってきたかったので、テンプレート(mt_widget.tt)の方をいじってみました。
yosshi@~/plagger/assets/plugins/Publish-MTWidget: diff -cu mt_wi et.tt.backup mt_widget.tt
*** mt_widget.tt.backup Sun Jan 28 05:13:50 2007
--- mt_widget.tt Sun Jan 28 05:29:50 2007
***************
*** 1,8 ****
! <div class="module">
! <h2 class="module-header">[% feed.title | html %]</h2>
! <div class="module-content"><ul class="module-list">
[% FOREACH entry = feed.entries -%]
<li class="module-list-item"><a href="[% entry.link | html %]">[% entry.title | html %]</a></li>
[% END -%]
</ul>
</div>
--- 1,11 ----
! <div class="module-feeds module">
! <h2 class="module-header"><a href="[% feed.link | html %]">[% feed.title | html %]</a></h2>
! <div class="module-content">
! <ul class="module-list">
[% FOREACH entry = feed.entries -%]
+ [% IF (loop.count) < 6 %]
<li class="module-list-item"><a href="[% entry.link | html %]">[% entry.title | html %]</a></li>
+ [% END %]
[% END -%]
</ul>
</div>
クラス名を変更したりタイトルにリンクを追加したのと、あとはループの回数を6以下(つまり5回)にしただけです。cron に登録しておきました。
残作業と懸念点を上げておきます。
- MT 標準の検索は重い。検索テンプレートはコーディング済なので公開できるけど、他のもっと軽い方法がないか探してみる。
- タグまわりを MT 標準に変更したけど、MT-XSearch との連携作業がまだ残ってます。今は(さっき重いと言ったばかりの)標準の検索機能を使っている。
見た目はあまり変わらないけど内部的には変わっている、という感じになりました。