質問 > フロント機能 > スマホでの表示も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したい) 多分クラス周り消しちゃってるんだと思います。
|
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のクラスをオーバーライドするように書かれておらず、 単なる関数として書かれているのが原因です。
|
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したい) 前のコメントに全部ソース書いてます。
|
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/スマホで切り替えてもデフォルトの動きをする という事でしょうか? ・エラーが出る という事でしょうか?
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |