バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > その他 > SC_Display::prepare()について

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
asami
投稿日時: 2013/12/10 18:40
対応状況: −−−
半人前
登録日: 2009/8/5
居住地: 富山県
投稿: 20
SC_Display::prepare()について
私の使っているバージョンが古いのもあるのと私のカスタマイズのやり方の問題があると思いますので、一応ご参考までに。

管理画面・購買画面以外の画面を追加するカスタマイズで、
SC_Display::setDevice()をオーバーライドして新しいDEVICE_TYPE_○○○○と言うのを
case分に追加して新規画面を追加するカスタマイズを行いました。

カスタマイズを行っていて思ったことなのですが、

SC_Display::setDeviceでSC_Display::viewをあらかじめセットしていた場合、

SC_Display::prepare()では、
if (!$this->deviceSeted || !is_null($this->view)) {
    $device = ($is_admin) ? DEVICE_TYPE_ADMIN : $this->detectDevice();
    $this->setDevice($device);
}


SC_Display::viewがNULLじゃなければデバイスを探しにいくというプログラムになっています。

管理画面等ではSC_Display:: deviceSetedを先にセットすることをしていないので、
SC_Display:: deviceSetedが"false"のままなので通りますが、
SC_Display::prepare()以前にSC_Display::viewをセットしていた場合、
!is_null($this->view)なのでif文をすり抜けて管理画面または、購買画面(PC)、購買画面(モバイル)に流れていきます。

私と同じ方法で新規画面を追加する場合は、
SC_Display::prepare()をSC_Display_Exでオーバーライドして
if (!$this->deviceSeted || is_null($this->view)) {
    $device = ($is_admin) ? DEVICE_TYPE_ADMIN : $this->detectDevice();
    $this->setDevice($device);
}

とすると思った通りに動くと思います。

使用したECCUBE
eccube ver.2.12.5
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン

右上バナー


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は73,725名です
総投稿数は102,960件です

投稿数ランキング

1
seasoft
7333
2
468
3131
3
AMUAMU
2712
4
nanasess
2192
5
umebius
2042
6
yuh
1664
7
red
1456
8
h_tanaka
1169
9
tsuji
942
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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