concrete5でモバイルからのアクセスの際に条件分岐する
Posted by admin at 15:07 日時 2013/03/19
例によってメモ程度に。モバイルのUser Agent判定用のサードパーティーのライブラリーがあるので、それを読み込んできたら基本的にどこでも使えます。
Loader::library('3rdparty/mobile_detect'); $md = new Mobile_Detect(); if($md->isMobile()) { // mobile view // sample : $this->inc(elements/mobile.php); } else { // not mobile view // sample : $this->inc(elements/pc.php); }
具体的にどんな User Agent の時に判定されるのかは、concrete/libraries/3rdparty/mobile_detect.php にずらずら書かれているので、このファイルをオーバーライドすれば反映するUAの加減ができます。
ブロックテンプレートでこの書き方を使えば、特定のブロックだけ、PCとモバイルで出力を切り替えることもできるので、レスポンシブ・ウェブデザインと組み合わせて便利に使えると思います。フルページキャッシュとの相性は悪いですが。