EC-CUBE 2系

EC-CUBE 2系の「もっと見る」を簡潔に

by TheVOS posted Jan 02, 2020
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
Extra Form
原文出所 http://www.neobit.jp/archives/462

今更ながら、EC-CUBE 2系のスマホ版のデザイン変更で苦労しました。

EC-CUBEに組み込まれている「もっと見る」ボタンですが、Ajaxで次ページのjsonデータを取得してきて画像、商品名、価格等のspanやimgタグの中身を1個ずつコピーしている。。。(3系でも同じなのかな??)

これでは、つぶしが気かないったらありゃしないので、デザイン変更しても動作するJavaScriptに書き換えてみました。jsonではなく2ページ目のHTMLをそのままGETしてきて商品一覧部分のタグをそのまま現在の一覧の下に差し込むだけ。

・総HIT数が<span id=”productscount”>XXX</span>に書かれていること。
・もっと見るボタンにid=”btn_more_product”が付いていること。
・商品リストの個別商品が class=”list_area” に入っていて、各商品ブロックが<form>で囲まれていること。
(<form>で囲まれていないなら、2ヶ所の .closest(‘form’) は不要)

の3点だけ守られていれば、デザイン変更しても大丈夫です。

<script>
    var pageNo = 2;
    var url = "<!--{$smarty.const.P_DETAIL_URLPATH}-->";
    var imagePath = "<!--{$smarty.const.IMAGE_SAVE_URLPATH|sfTrimURL}-->/";
    var statusImagePath = "<!--{$TPL_URLPATH}-->";
	
    function getProducts(limit) {
        $.mobile.showPageLoadingMsg();
        var i = limit;
        //送信データを準備
        var postData = {};
        $('#form1').find(':input').each(function(){
            postData[$(this).attr('name')] = $(this).val();
        });
        postData["mode"] = "html";
        postData["pageno"] = pageNo;

        // デザイン変更に左右されない「もっと見る」処理に書き換えました。
        $.ajax({
            type: "POST",
            data: postData,
            url: "<!--{$smarty.const.ROOT_URLPATH}-->products/list.php",
            cache: false,
            dataType: "html",
            error: function(XMLHttpRequest, textStatus, errorThrown){
                alert(textStatus);
                $.mobile.hidePageLoadingMsg();
            },
            success: function(result){
                $('.list_area:last').closest('form').after($(result).find('.list_area').closest('form').clone(true));
                pageNo++;

                //すべての商品を表示したか判定
                if (parseInt($("#productscount").text()) <= $(".list_area").length) {
                    $("#btn_more_product").hide();
                }
                $.mobile.hidePageLoadingMsg();
            }
        });
    }
</script>

Facebook [ja]コメント 


List of Articles
カテゴリー 番号 タイトル 日付 閲覧数
ヒント&ノウハウ共有 39 페이스북위젯 삽입하기 file 2018.12.15 72
クラス 38 클래스의 사용 2019.10.03 113
クラス 37 클래스의 구조 2019.10.03 59
クラス 36 클래스와 객체의 기초 file 2019.10.03 80
メールサービス 35 메일 사용자 설명서 2019.03.29 138
ヒント&ノウハウ共有 34 구글 캘린더 합치기 1 file 2018.12.12 559
EC-CUBE 3系 33 관리 화면의 사이드 메뉴에 항목 추가하는 방법 file 2019.11.11 194
EC-CUBE 4系 32 管理機能一覧 2020.11.12 57
EC-CUBE 3.x 31 新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ file 2019.04.10 1226
EC-CUBE 2.x 30 商品数や階層に関係なく全カテゴリーを表示させる方法 file 2019.04.10 280
EC-CUBE 2.x 29 商品名などで長くなったテキストを省略する方法 file 2019.04.10 72
EC-CUBE 2.x 28 商品ステータスを変更・追加する方法 file 2019.04.10 85
EC-CUBE 2系 27 単体テストガイドライン 2019.09.28 138
EC-CUBE 2系 26 リファクタリングガイドライン 2019.09.28 193
EC-CUBE 4系 25 フロント機能一覧 2020.11.12 55
EC-CUBE 3.x 24 デフォルトのtitleを任意のものに変更する方法 file 2019.04.10 251
EC-CUBE 2.x 23 サイトデザインをPCで統一させる方法 file 2019.04.10 79
EC-CUBE 2系 22 イベントセット販売プラグインマニュアル file 2019.11.07 164
EC-CUBE 3.x 21 titleの並びや区切り記号を変更する方法 file 2019.04.10 118
マニュアル 20 THEVOS Youtube BOARD SKIN 사용 설명 2018.11.11 138
Board Pagination Prev 1 2 Next
/ 2