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
カテゴリー 番号 タイトル 日付 閲覧数
クラス 19 클래스의 사용 2019.10.03 120
クラス 18 클래스의 구조 2019.10.03 64
クラス 17 클래스와 객체의 기초 file 2019.10.03 89
EC-CUBE 2.x 16 EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法 2019.10.03 156
EC-CUBE運用マニュアル 15 EC-CUBE2.12 運用マニュアル file 2019.09.29 91
EC-CUBE 2系 14 単体テストガイドライン 2019.09.28 159
EC-CUBE 2系 13 リファクタリングガイドライン 2019.09.28 214
EC-CUBE 2系 12 EC-CUBE標準規約 2019.09.28 187
EC-CUBE 3.x 11 デフォルトのtitleを任意のものに変更する方法 file 2019.04.10 261
EC-CUBE 3.x 10 titleの並びや区切り記号を変更する方法 file 2019.04.10 134
EC-CUBE 2.x 9 商品数や階層に関係なく全カテゴリーを表示させる方法 file 2019.04.10 297
EC-CUBE 2.x 8 商品名などで長くなったテキストを省略する方法 file 2019.04.10 83
EC-CUBE 2.x 7 サイトデザインをPCで統一させる方法 file 2019.04.10 90
EC-CUBE 2.x 6 商品ステータスを変更・追加する方法 file 2019.04.10 94
EC-CUBE 3.x 5 新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ file 2019.04.10 1240
メールサービス 4 메일 사용자 설명서 2019.03.29 146
ヒント&ノウハウ共有 3 페이스북위젯 삽입하기 file 2018.12.15 82
ヒント&ノウハウ共有 2 구글 캘린더 합치기 1 file 2018.12.12 597
マニュアル 1 THEVOS Youtube BOARD SKIN 사용 설명 2018.11.11 148
Board Pagination Prev 1 2 Next
/ 2