2008年8月11日月曜日

Movable Typeの携帯電話対応

うっかりといえば、私がうっかりなのですが、意外にググってみるとうっかりさんは多いようです。
何の話かというと、MTの携帯電話対応。
ブログ界の中心的な存在であるMTは、当然ながら携帯電話対応などとうの昔に済んでいる。
そう思いこんでいたのです。

ところが、そんなことはありませんでした。

標準では、携帯電話対応がされていない事実に愕然としました。
携帯電話での表示も、モブログもサードパーティのサービスに期待するしかないのです。

そこで、携帯電話での表示対応として、こちらのツールを試しに利用させていただきました。

MT4i - t2o2-Wiki

一通り基本的な機能を備え、DoCoMo、Softbank、auと主な3社に対応しています。
非常にすばらしいソフトです。
導入も簡単で、標準のままでインストールする分にはなにも困りませんでした。

ただ、私はそのままではちょっと希望に添いませんでした。
私の希望は、以下の通り。



1) 携帯電話用アドレスを「http://guym.jp/m/」にしたい。
標準のフォルダ名が「mt4i」に固定されているため、そのまま使用するとアドレスは「http://guym.jp/mt4i/」になってしまう。

2) 2つのブログで利用したい。
キャッシュもテンプレートも別のフォルダで行いたい。

 

この2つの理由から、少しだけ手直しが必要でした。
特に、「http://guym.jp/」は「http://guym.sakura.ne.jp/blog/」(のような感じ)のエイリアスです。
つまり、実際の構造は以下のようになっています。

guym.sakura.ne.jp

+---www----+---mt4 MT4フォルダ
                 +---blog ブログデータフォルダ(http://guym.jp/)
                         +----m MT4iフォルダ(http://guym.jp/m/)

 

本来は、mt4と同じ階層に置かなければならないので、アドレスは「http://guym.sakura.ne.jp/m/」になってしまいますが、それだと「http://guym.jp/」よりも上の階層になってしまうので成り立たなくなってしまいます。

問題は、「mt4i」では「mt4i」というフォルダ名を固定して使っていることだったので、その部分だけ直させていただきました。

 

mt4i.cgi (→ index.cgiにリネームし、mt4imgrで設定も変更)

4053行目:my $cache_file = $bin.'/cache/page/'.$key;
4135行目:my $dirstr = $bin.'/cache/page/';
4144行目:my $cache_file = $bin.'/cache/page/'.$key;
4155行目:my $cache_file = $bin.'/cache/page/'.$key;
4183行目:file_cache_dir => $bin.'/cache/tmpl',

lib/mt4i/Cache.pl

0011行目:my $cache_file = $bin.'/cache/'.$key;
0041行目:my $dirstr = $Bin.'/cache/';
0050行目:my $cache_file = $Bin.'/cache/'.$key;
0061行目:my $cache_file = $Bin.'/cache/'.$key;
0069行目:my $log_pl = $Bin.'/lib/mt4i/Log.pl';(バグ修正)


現在、動作確認中。
でも、なんか「?cat=0」とかつけておかないと更新されないのでどこかおかしいのでしょう。


3 件のコメント :

  1.  うむむ……。
     ちゃんと動いているっぽいな……。

    返信削除
  2.  ああ、キャッシュはブログIDを持っているから分けることはないのですね。
     フォルダをすべて定数で定義して、それを簡単に変更できれば各フォルダの設置場所が柔軟になるのか……。
     って、Perlってまったくわからんよね、私(笑)。
     というか、MT4.2RC5のコメント書き込みのJavaScriptにもバグがあるのかな?
     cookieを書き込むときの「expires.toGMTString()」が取得できていないような……。
     暇なときに調べるかなぁ。

    返信削除
  3.  今頃、MT4iの質問コメントを読み返していて気がついた。
    >/tmpl/mt4i/ にあるテンプレートを、/tmpl/mt4i/[blog_id(数字)]/ に置いて頂くと、ブログ毎に異なるテンプレートを使用していただくことができます
     つまり、各ブログフォルダには、cgiだけおいて、残りのキャッシュとテンプレートはmt4と同階層のmt4iフォルダに入れておく……ということなのですね。
     うーん。正直なところ、わかりにくいというかきれいじゃないような気がしました。
     結局、各データができるわけですから、mt4iのフォルダごとブログフォルダへコピーでいいような気がします。
     それから、PCのIEで見るとIEのキャッシュが削除されず、記事が増えてもインデックスページが更新されないようです……私だけかなぁ。

    返信削除

楽天市場:おすすめ