concrete5 CMSの携帯対応についてのメモです。
標準機能ではありませんが、Mobile Theme Switcherというアドオンが公開されています。OSC 京都でも紹介されていました。
アドオンの導入方法は、packages
フォルダに置き、管理画面で有効にすればOKです。マーケットプレイスに接続している場合は、管理画面からインストール作業も可能です。
このMobile Theme Switcherを使うと、スマートフォン端末から閲覧したときに、PCとは別テーマを表示させる仕組みになっています。日本の携帯端末(いわゆるガラケー)は対応していません。
ソースを見ると、models/mobile_theme.php
に、ユーザーエージェントを指定した配列がありました。
public static $mobile_agents = array( 'iphone', 'ipod', 'android', 'webos', 'fennec', 'blackberry', 'mobile safari', 'windows ce', 'opera mini', 'symbianos', 'symbian os', 'nokia' );
なので、この配列に、'docomo', 'softbank', 'kddi',
等を追加すれば、携帯振り分けが可能になります。
アドオンのコード自体に手を加えると、バージョンアップの度に書き換えが必要になります。アドオン本体には手を加えないで変更できるか?を調べているのですが、今のところ判明していません。concrete5 のシステム基本構造では、models
の読み込み順序は
/packages/パッケージハンドル/models/ファイル名
/models/ファイル名
/concrete/models/ファイル名
の優先順位でファイルを探し、実行します。
とあるので、単純にファイルを置いて上書き、とはいかないようです。
木下です。
ユーザーエージェントに登録されている文字列が見つかったときに
Mobile Theme Switcher で指定したテーマに切り替えているので
そのパッケージごとコピーして Mobile Theme Switcher for Japan
を作成しそちらで
public static $mobile_agents_japan = array(
‘docomo’, ‘softbank’, ‘kddi’
);
とでもして分離したほうがいいかもしれません。
という話をブースのほうではしていました。
どうでしょう。
木下さん、ありがとうございます。
やっぱり丸ごとコピーするのが良いですかね。
MobileTheme クラスを継承する形で作れたらいいな、とは考えていたのですが、上手くいきませんでした。
iphone等のスマートフォンと、ガラケーは別テーマが適用できるようにしたほうが良いかもしれないですね。