バージョン選択

フォーラム

メニュー

オンライン状況

74 人のユーザが現在オンラインです。 (64 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 74
もっと...

サイト内検索

質問 > フロント機能 > スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mori2
投稿日時: 2017/8/1 11:14
対応状況: −−−
新米
登録日: 2017/8/1
居住地:
投稿: 7
スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
▼テンプレート
[EC-CUBE] 2.13.3
[レンタルサーバ] エックスサーバー
[OS] Windows7
[PHP] PHP 5.3.3
[データベース] MySQL 5.5.45
[WEBサーバ] 不明
[ブラウザ] IE、Safari、Crome
[導入プラグインの有無] 不明
[カスタマイズの有無] 不明

前任者から引き継ぎがなく、かつ当方もWebに全く詳しくないため困っております。

現在、スマホでアクセスするとEC-CUBEのデフォルトのスマホ表示になっています(全体的にグレーで、画面左上に「EC-CUBE」のロゴが表示されているやつです)。

スマホのデザインカスタマイズをする時間/スキルが現状不足しているので、取り急ぎスマホでのアクセス時にもPCのデザインを表示させたいと思っています。

ネットで調べると「SC_Display.php」ではなく「SC_Display_Ex.php」を修正すべし、とのことなのですが、「SC_Display_Ex.php」を以下のように記述しても何も変わりません。

誤りを教えていただきたいです。

「SC_Display_Ex.php」の全文を貼り付けますので、ご教示宜しくお願い致します。





<?php

public function setDevice($device = DEVICE_TYPE_PC)
{
switch ($device) {
case DEVICE_TYPE_MOBILE:
if (USE_MOBILE === false) {
exit;
}
$this->response->setContentType('text/html');
$this->setView(new SC_MobileView_Ex());
break;
case DEVICE_TYPE_SMARTPHONE:
// $this->setView(new SC_SmartphoneView_Ex());
// break;
case DEVICE_TYPE_PC:
$this->setView(new SC_SiteView_Ex());
break;
case DEVICE_TYPE_ADMIN:
$this->setView(new SC_AdminView_Ex());
}
$this->deviceSeted = true;
}


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_PC;
// SC_Display_Ex::$device = DEVICE_TYPE_SMARTPHONE;
} else {
SC_Display_Ex::$device = DEVICE_TYPE_PC;
}
}

return SC_Display_Ex::$device;
}


yuh
投稿日時: 2017/8/1 15:44
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
多分クラス周り消しちゃってるんだと思います。



<?php

require_once CLASS_REALDIR . 'SC_Display.php';

class SC_Display_Ex extends SC_Display
{
    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_PC;
            } else {
                SC_Display_Ex::$device = DEVICE_TYPE_PC;
            }
        }

        return SC_Display_Ex::$device;
    }
}


----------------


http://ec-lab.net/

mori2
投稿日時: 2017/8/1 17:09
対応状況: −−−
新米
登録日: 2017/8/1
居住地:
投稿: 7
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
さっそくのお返事ありがとうございます。
教えていただいたものに書き換えたのですが、状況は変わらないです。。

状況を追記いたしますと、
【動作確認をしているスマホ】iPhone6とASUS_Z00ED
【PHPの書き換えをしているソフト】Terapad
【いろいろ書き換える前のSC_Display_EXの内容(全コピペ)】
<?php

require_once CLASS_REALDIR . 'SC_Display.php';

class SC_Display_Ex extends SC_Display
{
}


【無関係かもですが、SC_Displayの内容(全コピペ)】

<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) 2000-2014 LOCKON CO.,LTD. All Rights Reserved.
*
* http://www.lockon.co.jp/
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/

/**
* Http コンテンツ出力を制御するクラス.
*
* @author Ryuichi Tokugami
* @version $Id: SC_Display.php 23648 2014-10-12 05:06:47Z kim $
*/
class SC_Display
{
public $response;

/** 端末種別を保持する */
// XXX プロパティとして保持する必要があるのか疑問。
public static $device;

/** SC_View インスタンス */
public $view;

public $deviceSeted = false;

/*
* TODO php4を捨てたときに ここのコメントアウトを外してね。
* const('MOBILE',1);
* const('SMARTPHONE',2);
* const('PC',10);
* const('ADMIN',99);
*/

public function __construct($hasPrevURL = true)
{
$this->response = new SC_Response_Ex();
if ($hasPrevURL) {
$this->setPrevURL();
}
}

public function setPrevURL()
{
// TODO SC_SiteSession で実装した方が良さげ
$objCartSess = new SC_CartSession_Ex();
$objCartSess->setPrevURL($_SERVER['REQUEST_URI']);
}

/**
* LC_Page のパラメーターを, テンプレートに設定し, 出力の準備を行う.
*
* @param LC_Page $page LC_Page インスタンス
* @param $is_admin boolean 管理画面を扱う場合 true
*/
public function prepare($page, $is_admin = false)
{
if (!$this->deviceSeted || !is_null($this->view)) {
$device = ($is_admin) ? DEVICE_TYPE_ADMIN : $this->detectDevice();
$this->setDevice($device);
}
$this->assignobj($page);
$this->view->setPage($page);
$this->response->setResposeBody($this->view->getResponse($page->getTemplate()));
}

/**
* リロードを行う.
*
* SC_Response::reload() のラッパーです.
*/
public function reload($queryString = array(), $removeQueryString = false)
{
$this->response->reload($queryString, $removeQueryString);
}

public function noAction()
{
return;
}

/**
* ヘッダを追加する.
*/
public function addHeader($name, $value)
{
$this->response->addHeader($name, $value);
}

/**
* デバイス毎の出力方法を自動で変更する、ファサード
* Enter description here ...
*/
public function setDevice($device = DEVICE_TYPE_PC)
{
switch ($device) {
case DEVICE_TYPE_MOBILE:
if (USE_MOBILE === false) {
exit;
}
$this->response->setContentType('text/html');
$this->setView(new SC_MobileView_Ex());
break;
case DEVICE_TYPE_SMARTPHONE:
$this->setView(new SC_SmartphoneView_Ex());
break;
case DEVICE_TYPE_PC:
$this->setView(new SC_SiteView_Ex());
break;
case DEVICE_TYPE_ADMIN:
$this->setView(new SC_AdminView_Ex());
}
$this->deviceSeted = true;
}

/**
* SC_View インスタンスを設定する.
*/
public function setView($view)
{
$this->view = $view;
}

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

public function assign($val1,$val2)
{
$this->view->assign($val1, $val2);
}

/**
* @param LC_Page $obj
*/
public function assignobj($obj)
{
$this->view->assignobj($obj);
}

public function assignarray($array)
{
$this->view->assignarray($array);
}
}
mori2
投稿日時: 2017/8/1 17:14
対応状況: −−−
新米
登録日: 2017/8/1
居住地:
投稿: 7
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
すみません、念のためさらに追記です。

【PHPファイルの書き換え方】FFFTPでドラッグ&ドロップで上書き

その他、お伝えすべき状況があれば追記いたしますので、何卒宜しくお願い申し上げます。


yuh
投稿日時: 2017/8/1 17:22
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
SC_Display_Ex.phpに書かれてるのが
SC_Displayのクラスをオーバーライドするように書かれておらず、
単なる関数として書かれているのが原因です。


----------------


http://ec-lab.net/

mori2
投稿日時: 2017/8/1 17:57
対応状況: −−−
新米
登録日: 2017/8/1
居住地:
投稿: 7
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
本当に、すぐにお返事くださり感謝の極みです。
わたしに何の知識もなく、お手間ばかり取らせて申し訳ありません。

PHPについて全く知らず、「クラス」「オーバーライド」「関数」の意味も分かっておりませんので、そこから調べていきます。

解決してもしなくても、こちらでまたご報告させていただきます。
今しばらくお付き合いいただけましたら幸いです。

どうぞ宜しくお願い致します。
mori2
投稿日時: 2017/8/2 9:32
対応状況: −−−
新米
登録日: 2017/8/1
居住地:
投稿: 7
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
yuh様

おはようございます。その後、自分なりにオーバーライドなどについて調べてSC_Display_Ex.phpを書き直してみたのですが、以下の記述でも状況が変わらないです。

NGな点がありましたら教えていただければ幸いです。
(改行の場所?などがダメなのでしょうか?)

SC_Display_Ex.phpの全文です↓



<?php

require_once CLASS_REALDIR . 'SC_Display.php';

class SC_Display
{

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;
}


class SC_Display_Ex extends SC_Display
{

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_PC;
} else {
SC_Display_Ex::$device = DEVICE_TYPE_PC;
}
}

return SC_Display_Ex::$device;
}
}

yuh
投稿日時: 2017/8/2 14:19
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
前のコメントに全部ソース書いてます。


----------------


http://ec-lab.net/

mori2
投稿日時: 2017/8/2 16:20
対応状況: −−−
新米
登録日: 2017/8/1
居住地:
投稿: 7
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
引用:

前のコメントに全部ソース書いてます。


理解がついて行っておらず申し訳ありません。つまり、2017/8/1 15:44のソースをそのまま使えば良い、という意味でしょうか?
恐縮ながら、2017/8/1 17:09に、

引用:

さっそくのお返事ありがとうございます。
教えていただいたものに書き換えたのですが、状況は変わらないです。。


と書かせていただいております通り、一旦SC_Display_Ex.phpの中身をすべて消去して、
教えて頂いたソースを全コピペしたのですが、上手く動作しません。

私はどのファイルをどのように修正すべきなのでしょうか?
2017/8/1 15:44のソースを何らかの加工をして(オーバーライドして?)、SC_Display_Ex.phpにコピペすべきなのでしょうか?

お忙しいところ恐れ入りますが、お教えいただけましたら幸いです。
どうぞ宜しくお願い致します。
yuh
投稿日時: 2017/8/2 21:33
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: スマホでの表示もPCと同じにしたい(スマホ対応をOFFしたい)
こちらの環境では正常に動作するんですが、
上手く動作しないというのは
・PC/スマホで切り替えてもデフォルトの動きをする
という事でしょうか?
・エラーが出る
という事でしょうか?


----------------


http://ec-lab.net/

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,303名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.