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

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

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

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

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

 function init() 内の最後に追加

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

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

<!--{assign var=list value="`$smarty.const.ROOT_URLPATH`products/list.php"}-->
<!--{if $smarty.server.PHP_SELF==$list}-->
<script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->js/jquery-1.4.2.min.js"></script>
<!--{else}-->
<script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->js/jquery-1.8.2.min.js"></script>
<!--{/if}-->

↓【変更】

<!--{assign var=list value="`$smarty.const.ROOT_URLPATH`products/list.php"}-->
<!--{if $smarty.server.PHP_SELF==$list}-->
<!--{if $arrSphone === true}-->
<script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->js/jquery-1.8.2.min.js"></script>
<!--{/if}-->
<!--{if $arrSphone === false}-->
<script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->js/jquery-1.4.2.min.js"></script>
<!--{/if}-->
<!--{else}-->
<script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->js/jquery-1.8.2.min.js"></script>
<!--{/if}-->

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

ダウンロードはこちら

○ 上記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でも問題はなく、ナビメニューも動作するというわけです。