バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > その他 > 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公式 Amazon Payプラグイン

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
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.