携帯電話からアクセスしてくれる人があるようなので MT4i を導入する。Movable Type 2.661 用に少し改造。
アクセス解析を見ると,そんなに多くはないけれど,携帯電話からアクセスしてブログを読んでくれている人がいる模様。そこで,Movable Type のモバイル版を生成してくれる CGI MT4i を導入する。私自身,Webサイトを見られる携帯電話を持っていないので (!!),確認は PC のブラウザからしかしていない。
環境は Movable Type 2.661 + 日本語パッチ,MT4i 3.1a
MT4i 3.1 からは検索機能がつくそうで (MT4iの3.1アルファには、検索機能がついている - WolaWola),「おっ,これはいいかも」と思ったが,「Error: 検索機能は MT 4.15 以降でのみ使用可能です。」ということで残念。それならば旧バージョンの 3.0 でもいいが,せっかく検索の入力欄があるのだから,そのうち自分でコーディングするかも知れないという淡い期待を残しつつ,3.1を導入することにした。
こういうのは,どこに設置するかが問題で,/i/ だと「i-mode 専用」のように思えるらしい。そこで,「mobile」の意味で /m/ にすることにした (http://nlogn.ath.cx/m/)。
MT4i の最新版の入手先は Projekt Zwischen - Trac にある通りで,Subversion でチェックアウトすることになる。
バージョン 3.1a も 3.0 と同様の手順で大丈夫 (MT4i/3.0/インストール - t2o2-Wiki)。
必要となる,Perl 5.8 標準以外のモジュールは次の通り。
Encode は Perl 5.8 で標準モジュールとなったのでリストからは除外。標準モジュールを調べるには Module::CoreList が便利で,これをインストールすると Linux なら corelist コマンドが使えるようになって,「corelist <モジュール名>」でチェックできる。
まずは mt4i.cgi の修正から。以下は 3.1a の行数で示すが,3.0.8 でも行数が違うだけで内容は同じ。
インストールしてトップページを表示すると,カテゴリ選択欄が正しく表示されない。一番最後のカテゴリのみが表示されるだけで,選択できない。そこで,567行目付近のコードを次のように修正する。
「最近のコメント15件」にはコメントが何も表示されない。1613行目付近を次のように修正する。
しかし,コメントが15件どころか「ダーッ」と前件表示されてしまう。limit が効いていない模様。Fenrir さんのところでは上手くいっているみたいなんだけど,どうやってるのかなぁ (Fenrir's BLog: モバイルサイトマップの追加 と MT4iの改造)。
↑とつぶやいたら,Fenrir さんが教えてくれました。「最近のコメント15件」を正しく表示するには,以下の修正を行います (1604行目付近)。
MT 2.661 では,「特定のカテゴリを非表示にする」は何も指定してはいけない。指定すると「子カテゴリがないよ」というエラーになる。
自分自身のサイトへは,モバイルゲートウェイを経由しないでアクセスするようにしたい。これは Fenrir さんの方法をそのまま使わせてもらう (Fenrir's BLog: モバイルサイトマップの追加 と MT4iの改造)。3495行目付近に強調部分を追加する。
キャッシュを削除するスクリプト purge_old_cache.pl を動作させてみると,次のエラーになる。
そこで,purge_old_cache.pl の 56 行目を修正する。
検索機能は,MT 2.661 では動作しないので,トップページから外してしまう。修正は tmpl/index.tmpl を編集して,該当箇所を削除すればよい。
2008年1月15日追記:
最近のコメントが15件以上表示されてしまう問題について追記しました。Fenrir さんに感謝します。
2011年11月9日追記:
元記事へのリンクを追加する方法について書きました (nlog(n): MT4i の個別記事に元記事へのリンクを追加する)。
Master Archive Index
Total Entry Count: 1957
コメント表示されない問題の修正を記事アップした後に行っていたようです。トラックバックを戴いた記事に追加情報を掲載しましたので、ご参考まで。
Posted by: fenrir at January 15, 2009 00:24fenrir さん
Posted by: n at January 15, 2009 07:12追加の修正情報によって,最近のコメントが全部ではなく15件だけの表示になりました。
ありがとうございました。