下記の方が対象です。ファイルの修正をお願いします。
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でも問題はなく、ナビメニューも動作するというわけです。