2013年9月14日カテゴリー:

ECCUBEレスポンシブWebデザインの修正ファイル

下記の方が対象です。ファイルの修正をお願いします。
2013年9月14日以前に、レスポンシブWebデザインをご購入してくださった方
(レスポンシブWebデザインのバージョンすべてに共通)

(1)■data/class/pages/LC_Page.php 2カ所追加

 はじめの部分、 // {{{ properties の、
/** プラグインを実行フラグ */
var $plugin_activate_flg = PLUGIN_ACTIVATE_FLAG; の次に追加

[php]
/** スマホ・PC判別 */
var $arrSphone;
[/php]

 function init() 内の最後に追加

[php]
// スマホ・PC判別
$ua = $_SERVER[‘HTTP_USER_AGENT’];
if(ereg(“Android|iPhone”, $ua)){
// スマートフォン端末
$this->arrSphone = true;
}else{
// PC端末
$this->arrSphone = false;
}
[/php]

(2)■data/Smarty/templates/default/site_frame.tpl 変更
130行目あたり

[php]






[/php]

↓【変更】

[php]











[/php]

▼修正ファイルダウンロード

ダウンロードはこちら

○ 上記2つのファイルに、カスタマイズを追加していない場合は、上書きしてください。
○ カスタマイズしている場合は、お手数ですが修正箇所のコード書き換えをお願いします。

▼修正の理由
商品一覧ページ(検索ページ等も含む)をスマホで開いた時、ページ上部のナビメニューが動作しないため。
(PCで開いた時は、上部のナビメニューは表示されないので気がつきにくい箇所です)

▼なぜ、動作しないのか?

商品一覧ページと他のページでは、バージョンの違うjQueryを利用しています。
商品一覧ページでは、jquery-1.4.2.min.jsを利用していますが、jquery-1.4.2.min.jsでは上記メニューが動かないことが分かりました。
本来なら、すべてのページにjquery-1.8.2.min.jsを適用したいところなのですが、商品一覧ページの「カゴに入れる」ボタンがjquery-1.4.2.min.jsでなければ動作しないのです。
(EC-CUBEの最新バージョンでも未だにjquery-1.4.2が利用されているのは、おそらくこの理由だと思います)

※商品一覧ページに「カゴに入れる」ボタンを表示させない作り方であれば、すべてのページにjquery-1.8.2を適用することは可能です。

▼修正内容

まず、■data/class/pages/LC_Page.phpで、アクセスしてきたディバイスが、スマホかPCかを判別します。
次に、■data/Smarty/templates/default/site_frame.tplで、
商品一覧ページ(list.php)を開いた時、
ディバイスがスマホなら、jquery-1.8.2を適用、PCならjquery-1.4.2を適用、としました。

スマホの場合、商品一覧ページでは「カゴに入れる」ボタンが非表示になっているので、jquery-1.8.2でも問題はなく、ナビメニューも動作するというわけです。