MT4iでMovable TypeをiPhoneに最適化した、の少し詳細
MT4iでMovable TypeをiPhoneに最適化したの件、忘れかけてしまっているから、少し詳細を記載。
今回記載する内容は、読む人が読めば、まあ理解できるだろうという程度で。
MT4iをもう1つインストール(その前にもう1つインストールして動くようにする)
今回実施したベースは3.0.8X1だけど、3.0.8でも同じだと思う。
MT4iをもう1つインストールして動くようにするには、libだけ共通に使うことにして、lib以外の一式を複製した。例えば、mt4i.cgi、mt4imgr.cgiはmt4s.cgi、mt4smgr.cgiという具合。テンプレートディレクトリも別に。キャッシュディレクトリも別にしたので、mt4i-purge-cache.plもmt4s-purge-cache.plという風に別に(これは動作まで検証していないけど)。環境設定用のファイル、mt4icfg.cgiもmt4scfg.cgiといった別のものを用意する必要がある。
当然、名前だけを変更してもダメで、各スクリプト内で読み書きしているファイル名やパス名を全てを書き換える必要がある。テンプレートファイルも別に用意する。そう、ここまでして何が実施したかったかというと、携帯用とスマートフォン用のテンプレートファイルの完全分離がやりたかったのだ。
今回は、あまり考えないでこの方法で2つ動くようにした。
MT4iのUA判断にスマートフォンを追加(もう1つインストールするなら別に要らないけど)
実はこちらを実施して、テンプレートファイルをきちんと作れば、MT4iを2つインストールして動かさなくても、MT4iで携帯版とスマートフォン版の同時対応をすることができる。
現在(2010/10/17時点)のMT4i 3.1alpha版では、新しい条件タグ、AGENT_SMARTPHONEが使用できる(3.1 alpha7以降)。
ただし実装は、
HTTP_USER_AGENT に 'iPhone' あるいは 'Android' を含む場合が対象。
とのこと。なので、もっと対象を自由にしたい場合は、自分で条件を追加する必要がある。
これについては、自分は「Web サイトのスマートフォン最適化: UA 判別篇 - terkel.jp」を参考にした。けれど、そちらにも書かれているように、新しいUAに追随し続けなければならないので、どうしたものなのかな。
テンプレートを用意
「iPhoneテンプレートfor MT」を元に作成。大きな変更点はヘッダを自分好みにしたとか、カテゴリのリンクを追加したこと、MT4iのリンクを追加したことくらい。
ふりかえり
MTでPC向けにページを静的に作成させている状況で、MT4iで携帯向けのページを(半)動的に生成しているのが、元々の状況。これにiPhone対応入れたいなと思ったら、こんな考え方で実装した。
記事単位まで動的生成している人はテンプレート導入だけでもよいかも。このあたりは負荷、トラフィック、応答スピードなどで、自分のところはどうするか判断するところじゃないのかな。