スマートフォン用のテンプレートを使わない:EC-CUBE2.13.2/EC-CUBE2.12以前

2014年12月22日


EC-CUBEにはスマートフォン・モバイル用のテンプレートが予め同梱されているので、「PCはしっかり対応したいけどスマホやモバイルまでは予算が回らない」お客様におすすめ出来て便利なのですが、デフォルトだと自動的にそれぞれのデバイスごとのテンプレートに割り振られてしまうため「レスポンシブにしたい」といったご要望があった時に一手間必要です。


SC_Display.php の編集


編集するファイルはこちら

/data/class/SC_Display.php

上記ファイルを開いて、134行目あたりのこの記述を見つけてください。
2.13系でも2.12系でも、行数の違いはあれどこの辺りはおよそ同じです。

    /**
     * 端末種別を判別する。
     *
     * SC_Display::MOBILE = ガラケー = 1
     * SC_Display::SMARTPHONE = スマホ = 2
     * SC_Display::PC = PC = 10
     *
     * @static
     * @param   $reset  boolean
     * @return integer 端末種別ID
     */
    public static function detectDevice($reset = FALSE) {
        if (is_null(SC_Display_Ex::$device) || $reset) {
            $nu = new Net_UserAgent_Mobile();
            $su = new SC_SmartphoneUserAgent_Ex();
            if ($nu->isMobile()) {
                SC_Display_Ex::$device = DEVICE_TYPE_MOBILE;
            } elseif ($su->isSmartphone()) {
                //スマホからのアクセスにスマホ用テンプレートを表示
                SC_Display_Ex::$device = DEVICE_TYPE_SMARTPHONE;
            } else {
                SC_Display_Ex::$device = DEVICE_TYPE_PC;
            }
        }
        return SC_Display_Ex::$device;
    }

見るだけでなんとなく分かりますが、

} elseif ($su->isSmartphone()) {
SC_Display_Ex::$device = DEVICE_TYPE_SMARTPHONE;

スマートフォンでのアクセスに対して「DEVICE_TYPE_SMARTPHONE」としていたものを、 「DEVICE_TYPE_PC」にしてあげるだけです。

    public static function detectDevice($reset = FALSE) {
        if (is_null(SC_Display_Ex::$device) || $reset) {
            $nu = new Net_UserAgent_Mobile();
            $su = new SC_SmartphoneUserAgent_Ex();
            if ($nu->isMobile()) {
                SC_Display_Ex::$device = DEVICE_TYPE_MOBILE;
            } elseif ($su->isSmartphone()) {
                //スマホからのアクセスにPC用テンプレートを表示
                SC_Display_Ex::$device = DEVICE_TYPE_PC;
            } else {
                SC_Display_Ex::$device = DEVICE_TYPE_PC;
            }
        }
        return SC_Display_Ex::$device;
    }

もちろん、こちらの対応だけでは「スマートフォン用のテンプレートを使わないでPC版で表示する」だけの対応ですので、 スマートフォンで綺麗に表示させるためには別途対応が必要ですのでご注意下さい。

以上で対応完了となります。ご対応が難しい場合にはご相談いただけますようお願いいたします。

カテゴリー: EC-CUBE, 対応事例   パーマリンク

コメントは受け付けていません。

Home >  対応事例 > EC-CUBE > スマートフォン用のテンプレートを使わない:EC-CUBE2.13.2/EC-CUBE2.12以前