WebデザイナーUnificブログ

日常業務であんまりデザインをしてない、Webデザイナーのブログです。ガジェット大好き。ユニークを引き起こすブログを目指してます。

EC CubeでBlackBerryでもスマートフォン版を表示させるためにUA判定を変更する方法

f:id:unific:20151121014542j:plain

EC Cubeを最近触る機会の多いunificです、こんにちは。

EC Cube2.13でECサイトを構築。EC Cubeは最初からスマートフォン用サイト(テンプレート)が用意されているので簡単!

 

と思いきや、スマホ判定をユーザーエージェントで判断しているため(当たり前だけど)ここ3年くらいに追加された新しいスマホのユーザーエージェントが入っていない。

 

自分はBlackBerry Passportを利用しているため、BlackBerry OS7とBlackBerry OS10とではユーザーエージェントで全然異なり、BlackBerry OS10でもスマートフォン版を表示される様に判定するユーザーエージェントを追加しました。

 

UA判定をしているのは

data/module/Net/UserAgent/Mobile.php

の400行目辺りにある以下の箇所。

 

function isSmartphone($userAgent = null)
{
    if (is_null($userAgent)) {
        $userAgent = @$_SERVER['HTTP_USER_AGENT'];
    }

    $useragents = array(
        'iPhone',         // Apple iPhone
        'iPod',           // Apple iPod touch
        'Android',        // 1.5+ Android
        'dream',          // Pre 1.5 Android
        'CUPCAKE',        // 1.5+ Android
        'blackberry9500', // Storm
        'blackberry9530', // Storm
        'blackberry9520', // Storm v2
        'blackberry9550', // Storm v2
        'blackberry9800', // Torch
        'webOS',          // Palm Pre Experimental
        'incognito',      // Other iPhone browser
        'webmate'         // Other iPhone browser
    );

    $pattern = implode("|", $useragents);
    return preg_match('/'.$pattern.'/', $userAgent);
}

見事にBlackBerry OS7以前のUAしか入っていません。っていうかTouchとかStormがあってBoldがないのは何故なんだ・・・

 

ここに

  • BlackBerry
  • BB10

を追記して無事でもスマートフォン版が表示される様になりました!

 

ついでにWindowsPhoneにもスマートフォン版を表示させたい場合は、

  • Windows Phone OS

と追記。

 

最近BlackBerry PassportとBlackBerry Classicも日本で販売されたし、WindowsPhoneもマウスコンピュータから販売されているので、iOSやAndroid以外にもスマートフォン版を表示させるのはメリットだと思います。

むしろPC版そのまま表示するよりは全然良いと思います。

 

数秒でできる作業なので、EC CubeでECサイトを運用している方は是非!