Mobile Joomla!でサイトを携帯対応してみた

Joomla!はなかなかに強力なCMSなんですが、もっと強力にするって事で、携帯にも対応できないかググってみたところ、iモード(CHTML)にも対応できるというMobile Joomla!エクステンションを見つけた。

Mobile Joomla!
http://extensions.joomla.org/extensions/mobile/mobile-display/11722
http://www.mobilejoomla.com/

Mobile Joomla!の概要

  • iPhone、Android、Blackberry、Nokia、WAP、iModeなどに対応
  • デバイス毎にサブドメインでの運用が可能(サブドメインにリダイレクト)
  • 自動で、画像のサイズやjpegの画像品質の変更が可能

デバイス毎にサブドメインを振り分けたり、テンプレートを変更したり、自動で画像のサイズや容量を変更してくれたり、記事中のデバイスに依っては使用できないタグを削除してくれたりなどなど、必要な機能は大体備わってる。

が、問題が2点あり。

Mobile Joomla!の問題点

  1. デバイス(UserAgent)毎の対応画像フォーマットが正しくない物がある
  2. 文字コードの変換が出来ない

の2点で悩まされた(悩まされてる)。

デバイス(UserAgent)毎の対応画像フォーマットを正しくする

例えば、docomoの端末だと、iモードHTML4.0以降の機種はJPG画像に対応しているんですが、FireMobileSimulator(P903i)でテストしてみるとJPGからGIFに変換されて表示されてしまう。
Mobile Joomla!でデバイスの振り分けにTera-WURFLを利用していて、Tera-WURFLのデータベース上でデバイスで対応している画像フォーマットが正しくない物があるためにおきていた。

Tera-WURFL ExplorerP903iをチェックしてみると、

greyscale false
jpg false
gif true
transparent_png_index false
epoc_bmp false
bmp false
wbmp false
gif_animated false
colors 262144
svgt_1_1_plus false
svgt_1_1 false
transparent_png_alpha false
png false
tiff false

jpg falseになっている。
なので、このデータベースを修正してやれば、正常にJPG画像はJPG画像として表示されるようにできる!
って事で、修正してやります。

Tera-WURFLのデータベースを修正するには

まずは、Mobile Joomla!でインストールされるTera-WURFLの管理画面を開けるようにします。

  1. Tera-WURFL公式サイトのダウンロードページでTeraWurfl_2.*.*.zip(2.1.3で大丈夫っぽ)をダウンロードして解凍。
  2. TeraWurflLoader.phpTeraWurflConfig.phpを編集。30行目辺りから、データベースへの接続情報を入力。
    ※Mobile Joomla!でインストールされたTera-WURFLのデータベースのプレフィクスがjos_TeraWurflになっているので、データベーステーブルのプレフィクス($TABLE_PREFIX)をそれに合わせて、jos_TeraWurflに変更します。
  3. 必要なディレクトリ、ファイルをアップロード。
    • admin ディレクトリ
    • data ディレクトリ
    • TeraWurflRemoteClient ディレクトリ
    • TeraWurflUtils ディレクトリ
    • TeraWurflXMLParsers ディレクトリ
    • TeraWurflConfig.php ファイル
    • TeraWurflLoader.php ファイル
    • check_wurfl.php ファイル

    をそれぞれ、/plugins/mobile/terawurfl にアップロードする。
    dataディレクトリと、wurfl.logのパーミッションを書き込み可能に変更。
    (TeraWurflConfig.phpとTeraWurflLoader.phpは上書きでおkです)

  4. /plugins/mobile/terawurfl/admin/にアクセスして、管理画面を開けるかテスト。開けたらおk
Tera-WURFLのデータベースを修正する

近年のdocomoの端末(iモードHTML4.0以降の端末、504iとかその辺)であれば、JPEGは対応してるので、docomo全端末をJPG対応にしといて実質おkだよね…。それ以前の端末を使ってる人ってどのくらいいるんだろ。それぞれの端末毎に設定するのも非常に面倒だし。

って事で、data/wurfl.xmlを編集。
※wurfl.xml自体の容量が15MBあるので、ちゃんとしたテキストエディタじゃないと、アプリケーションがフリーズするので注意w

<device id="docomo_generic_jap_ver1" user_agent="DO_NOT_MATCH_DOCOMO_GENERIC_JAP_1" fall_back="docomo_generic">
<group id="product_info">
<capability name="can_skip_aligned_link_row" value="true"/>
<capability name="brand_name" value="DoCoMo"/>
</group>
<group id="markup">
<capability name="html_wi_imode_html_1" value="true"/>
<capability name="preferred_markup" value="html_wi_imode_html_1"/>
</group>
<group id="image_format">
<capability name="gif" value="true"/>
<capability name="wbmp" value="false"/>
</group>
中略
</device>

のところに

<group id="image_format">
<capability name="jpg" value="true"/>
<capability name="gif" value="true"/>
<capability name="wbmp" value="false"/>
<group/>

<capability name=”jpg” value=”true”/>を追加してやればおk
そんで、編集したwurfl.xmlをdataディレクトリにアップして、Tera-WURFL管理画面で、Update database from local fileをクリックで、データベースのアップデート。
※結構サーバーに不可がかかるので自己責任でお願いします

対応したか確認

管理画面のTera-WURFL test scriptで、DoCoMo/2.0 P903iを入力してSubmit。

'image_format' => 
  array (
    'greyscale' => false,
    'jpg' => true,
 以下略

と、表示されればおkです

FireMobileSimulatorなどで動作確認して、きちんとJPG画像がJPG画像で表示されれば、完了。
終ったら、adminディレクトリやdataディレクトリなど、アップした物は削除しておいた方が良さげ。

文字コードを変換するには【未解決】

最近の端末でも、UTF-8に対応していない端末は多いと思われるので、SHIF_JISに変換した方が安心なんだけど、Mobile Joomla!では変換してくれない。

別の手段が必要かー。どうしよ。
って事で、まだまだ悩まされております…。

2件のコメント

  1. どうもこんにちは。
    お返事が遅くなりまして大変申し訳ないですorz

    (1)について
    こちらは、TeraWurflLoader.php→TeraWurflConfig.phpの誤りでしたorz どうもすいません

    (2)について
    既存のファイルの上書きで大丈夫です
    TeraWurflLoader.phpと、手順2で修正したTeraWurflConfig.phpを上書きでアップロードします

    既に解決されているかもしれませんが、もしされておられなかったら、ご参考くださいm(__)m

  2. こんばんは。はじめまして。
    私趣味でJoomlaを使ってサイトを製作しています。
    今般携帯での問い合わせフォームを作成しようとしていますが、DOCOMO i-modeでJPG画像が表示されず困っておりました。検索しましてこちらのサイトを訪問させていただきました。私 phpのことは詳しくないので、この記事の解説で、どのようにしてよいかわからない点が2点あり、誠に勝手ながらお教えいただければ幸いです。

    (1)

    >TeraWurflLoader.phpを編集。30行目辺りから、データベースへの接続情報を入力。
    ※Mobile Joomla!でインストールされたTera-WURFLのデータベースのプレフィクスがjos_TeraWurflになっているので、データベーステーブルのプレフィクス($TABLE_PREFIX)をそれに合わせて、jos_TeraWurflに変更します。

    現在エディターでTeraWurflLoader.phpを編集するところまでは来ていますが、具体的にどのように記述してよいのかがわかりません。記述方をお教えいただけませんでしょうか。

    (2)現在MobileJoomlaがインストール済みですが、手順3にて、「必要なディレクトリ、ファイルをアップロード」とありますが、既存のファイルは上書きとなってもよろしいでしょうか?

    以上ご多忙とは存じますがなにとぞご教授ください。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です