Drupalのモバイル用のテーマを入れる (その2)

Last edited on 2012/07/07 (土) - 16:28

[追記] 現在は、ブラウザのUAに応じたテーマの切り換えは、 SwitchTheme というモジュールを使っています。 [追記] さらに、SwithchThemeもやめて、Mobile Tools を使っています。

Accesibility モジュールを使ったモバイル用のテーマの導入はうまくいかなかったが、他にも方法はあるだろうと思い、もう少し探したところ、mobile theme というモジュールが見つかった。

このモジュールも、ブラウザの判定を行ってモバイルデバイスからのアクセスならばモバイル用のテーマに切り替える、という機能を持っている。ブラウザの判定のために、browscap というモジュールが必要である。

mobiテーマ
mobiテーマ
wapテーマ
wapテーマ
pdaテーマ
pdaテーマ

切り替えるモバイル用のテーマは適当なものを使えばよいらしい。mobileというテーマが紹介されていたのでこれを入れてみた。

mobile theme と同様な機能を持つモジュールとして、pda theme というモジュールも見つかった。ただし、こちらは drupal.org ではなく、Drupal日本語プロジェクトで配布されている。機能はmobile theme と大体同じである。

mobile themeはbrowscapを使ってブラウザデータベースを見て判断するというやや大げさな仕組みであるのに対して、pda themeはUser Agentから判定するコードが組み込まれている。日本製だけあって日本の携帯電話のブラウザの判定には十分そうだ。

pda theme モジュールと同時に pda というテーマも配布されているので、このテーマも試してみることにした。accesibility モジュールを試した時に入れた mobi と wap の2つのテーマも合わせて、どれがよいか試してみた。それぞれ、iモードHTMLシミュレータIIで取った画面を貼っておく。

切り替え用のモジュールは、mobile theme である。これのモバイル用テーマとして、mobi, wap, mobile, pda の4テーマを比べてみた。以下、おおまかな特徴である。

mobileテーマ
mobileテーマ
  • mobile: サイト名(トップへのリンク)の表示がないのでトップに行けない。先頭に"Skip to navigation"というリンクがでてナビゲーションメニューへ飛べる。各ノードのカテゴリー(taxonomy)を表示しない。コンテンツを表示した後に、サイドバーを表示する。Primary Linkメニューの表示がない。
  • mobi: サイト名表示あり。カテゴリー表示あり。サイドバーの表示なし。
  • wap: サイト名表示あり。カテゴリー表示なし。サイドバーの表示なし。Primary Linkメニューの表示あり。
  • pda: サイト名表示あり。カテゴリー表示あり。先にサイドバーの表示の後、コンテンツの表示。画像の表示なし。Primary Linkメニューの表示あり。

iモードHTMLシミュレータで見ると、どのテーマもscriptだのstyleだのiモードで使えないタグや属性を好き勝手に出している。どのテーマもiモード用に書いてあるわけではないので当然だ。本当は iモード用のテーマを作るのがよいのかもしれない。

結局、モバイル用のテーマとしては、mobile を採用し、先頭にサイト名(トップへのリンク)を表示するようにした。

これでとりあえずPCと同じURLで携帯からアクセスすることができる。ただし、iモードにはcookieが無いからセッション管理はできない。つまりログインはできない。