kenanのブログ

闘病生活

mobircをiphoneで使いたいので

retletさんが頑張ってAjaxモードをiPhone用にカスタマイズしてくれたのでとても使いやすくなってるmobirc

http://retlet.net/log/2008/07/mobirc-iphone.html


とりあえず簡単にできそうなAjaxモードとiPhoneモードの分離をしてみた。

今現在はAjax.pmをそのままiPhone用にいじって使っているけどどうせならiPhone.pmとか作ってそっちだけ編集したいよねってこと。

修正するファイルは以下の通り。

mobirc/lib/App/Mobirc/Web/Router.pm
mobirc/lib/App/Mobirc/Web/C/Ajax.pm
mobirc/lib/App/Mobirc/Web/Template/Root.pm
mobirc/lib/App/Mobirc/Web/Template/Ajax.pm


mobirc/lib/App/Mobirc/Web/Router.pm
Routerの一番したにパスを追加。

 + connect 'iphone/'        => { controller => 'iPhone'  action => 'base' };
 + connect 'iphone/:action' => { controller => 'iPhone' };

mobirc/lib/App/Mobirc/Web/C/Ajax.pmをコピーしてiPhone.pm作成
名前を変えるだけ。

1  - package App::Mobirc::Web::C::Ajax;
1  + package App::Mobirc::Web::C::iPhone;

12 -        'ajax/base' => (
12 +        'iphone/base' => (

26 -        'ajax/channel' => (
26 -        'iphone/channel' => (

51 -        'ajax/menu' => (
51 +        'iphone/menu' => (

63 -        'ajax/keyword' => {
63 +        'iphone/keyword' => {


TOPページにiPhoneへのリンクを追加
mobirc/lib/App/Mobirc/Web/Template/Root.pm

                ul {
                    li {
                        a { href is '/mobile/'; 'mobile' };
                    };
                    li {
                        a { href is '/ajax/'; 'ajax' };
                    };
                    li {
                        a { href is '/mobile-ajax/'; 'mobile-ajax' };
                    };
 +                  li {
 +                      a { href is '/iphone/'; 'iphone' };
 +                  };
                };

mobirc/lib/App/Mobirc/Web/Template/Ajax.pmコピーしてiPhone.pm

1   - package App::Mobirc::Web::Template::Ajax;
1   + package App::Mobirc::Web::Template::iPhone;

10  - template 'ajax/base' => sub {
10  + template 'iphone/base' => sub {

64  - template 'ajax/menu' => sub {
64  + template 'iphone/menu' => sub {

104 - template 'ajax/keyword' => sub {
104 + template 'iphone/keyword' => sub {

120 - template 'ajax/channel' => sub {
120 + template 'iphone/channel' => sub {

これでTOPページにiPhoneのリンクが追加されてiPhone.pmのテンプレートからよんでくれるはず。

追記:iphone.jsの修正漏れ

mobirc/assets/static/iphone.js (mobirc.jsのコピー)も名前を変えておきます。

25 -       docroot + 'ajax/menu?time=' + ts(),
25 +       docroot + 'iphone/menu?time=' + ts(),

29 -       contents_load(docroot + 'ajax/channel?channel=' + encodeURIComponent($(this).text()), $(this).text());
29 +       contents_load(docroot + 'iphone/channel?channel=' + encodeURIComponent($(this).text()), $(this).text());

35 -       contents_load(docroot + 'ajax/keyword')
35 +       contents_load(docroot + 'iphone/keyword')