EC-CUBE 2.x

サイトデザインをPCで統一させる方法

by TheVOS posted Apr 10, 2019
?

ショートカット

Prev前へ 書き込み

Next次へ 書き込み

大きく 小さく 上へ 下へ コメントへ 印刷 添付
?

ショートカット

Prev前へ 書き込み

Next次へ 書き込み

大きく 小さく 上へ 下へ コメントへ 印刷 添付
Extra Form
原文出所 https://www.nxworld.net/cms/ec-no-mobile-template.html
EC-CUBE 2.X:サイトデザインをPCで統一させる方法

EC-CUBEはもともとスマートフォンやモバイル用のテンプレートが用意されており、それぞれのデバイスで閲覧すると各テンプレートに振り分けらるようになっているのですが、それを無効にする方法です。
この機能自体は良いと思うのですが、例えばモバイルまで手が回らないとか、単純に別テンプレートにする必要がないというときに。

※EC-CUBEのバージョンはVersion 2.12.3になります。

iPhoneでの閲覧時

画像はiPhoneでのサイト閲覧時をキャプチャしたもので、このように専用のテンプレートで表示されています。
スマートフォンっぽい感じなのは良いですが、PCのデザインの雰囲気とかなり離れている場合は微妙です...。
また、デフォルトでは思いっきりEC-CUBEのロゴが表示されていたりもします。(ここらへんはちゃちゃっとスマートフォン用のテンプレートを直せば良い話ですが)

一番好ましいのはもちろんスマートフォンやモバイルのテンプレートもしっかりカスタマイズするのが好ましいですが、納期や予算の問題などでしない(できない)場合は、いっそのこと全てPC用のテンプレートにするのも手だと思います。

今回は手っ取り早くできる方法で、具体的には予め設定されているユーザーエージェントを切るという方法になります。
/data/class/内にあるSC_Display.phpというファイルの133行目あたりから下記のような記述があります。

SC_Display.php

/**
 * 端末種別を判別する。
 *
 * 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;
}

上記コードの一部を下記のように一部コメントアウトし、ユーザーエージェントを無効にします。
これにより全てのデバイスで閲覧時にはPCのデザインで表示されるようになります。

SC_Display.php

/**
 * 端末種別を判別する。
 *
 * 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;
}

変更・アップロード後に再度スマートフォンやモバイルからアクセスすれば、PCのテンプレートで表示されるのが確認できます。
上記ではスマートフォンとモバイルの両方のユーザーエージェントを無効にしていますが、モバイルはそのまま専用テンプレートで表示したいという場合は、スマートフォン部分のみ(DEVICE_TYPE_SMARTPHONE)をコメントアウトするなどしてください。

ちなみに、以下のようにして単純に条件分岐の記述を取っ払って全てDEVICE_TYPE_PCにする方法でもいけます。
ただ、確実に今後必要でない場合などはこの方法で良いですが、後々テンプレートを適応させる可能性が少しでもあるのであれば先程のコメントアウトを用いたほうがいいかと思います。

SC_Display.php

/**
 * 端末種別を判別する。
 *
 * 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) {
  return DEVICE_TYPE_PC;
}

Facebook [ja]コメント 


List of Articles
カテゴリー 番号 タイトル 日付 閲覧数
ヒント&ノウハウ共有 39 페이스북위젯 삽입하기 file 2018.12.15 190
EC-CUBE運用マニュアル 38 EC-CUBE2.12 運用マニュアル file 2019.09.29 198
CSS 37 CSS オブジェクトフィットプロパティ file 2019.12.04 205
クラス 36 클래스와 객체의 기초 file 2019.10.03 214
EC-CUBE 2.x 35 商品名などで長くなったテキストを省略する方法 file 2019.04.10 215
EC-CUBE 2.x » サイトデザインをPCで統一させる方法 file 2019.04.10 224
EC-CUBE 4系 33 管理機能一覧 2020.11.12 227
EC-CUBE 4系 32 フロント機能一覧 2020.11.12 234
EC-CUBE 2.x 31 商品ステータスを変更・追加する方法 file 2019.04.10 235
クラス 30 클래스의 사용 2019.10.03 260
EC-CUBE 2系 29 2.13系 ソフトウェア要件 2019.10.11 276
CSS 28 Css 텍스트 외곽선 처리하기, Stroke 2019.11.28 286
メールサービス 27 메일 사용자 설명서 2019.03.29 287
EC-CUBE 2.x 26 EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法 2019.10.03 288
EC-CUBE 2系 25 EC-CUBE 2系で商品を沢山購入すると住所情報が欠落する 2020.01.02 291
マニュアル 24 THEVOS Youtube BOARD SKIN 사용 설명 2018.11.11 311
EC-CUBE 2系 23 EC-CUBE 2系でShift_JISに存在しない文字が含まれた受注データがあると、その受注内容が受注CSVからまるごと欠落する 2020.01.02 314
EC-CUBE 2系 22 EC-CUBEをインストールする file 2019.12.10 323
EC-CUBE 2系 21 イベントセット販売プラグインマニュアル file 2019.11.07 345
クラス 20 클래스의 구조 2019.10.03 355
Board Pagination Prev 1 2 Next
/ 2