基於ecshop的移動端 etouch實現動態擷取分類商品列表

來源:互聯網
上載者:User
修改檔案 category.php

關鍵兩個地方需要修改

if ($_GET['act'] == 'asynclist') {        $sayList = array();        if (is_array($goodslist)) {            foreach ($goodslist as $vo) {                $shop_price = empty($vo['promote_price']) ? $vo['shop_price']:$vo['promote_price'];                $watermark_img = empty($vo['watermark_img']) ? '':'.'themes/' . $_CFG['template'].'/images/'.$vo['watermark_img'].'.png" alt="基於ecshop的移動端 etouch實現動態擷取分類商品列表".$vo['goods_name'].'" />';               /* $sayList[] = array(                    'pro-inner' => '         .$vo['url'].'" > .$config['site_url'].$vo['goods_thumb'].'" alt="基於ecshop的移動端 etouch實現動態擷取分類商品列表".$vo['goods_name'].'">                     .$vo['url'].'" >'.$vo['name'].'                                 '. $shop_price .'                      '.$vo['market_price'].'          月銷:'.$vo['sales_count'].'          '.$watermark_img.'        '                );*/                $collectStr = '';                if($vo['collect']){                    //如果已經搜藏了那麼                    $collectStr = '$vo['goods_id'].')">';                }else{                    //如果沒有搜藏那麼                    $collectStr = '$vo['goods_id'].')">';                }                $sayList[] = array(                 'pro-inner'=>'                     .$vo['url'].'">                        .$config['site_url'].$vo['goods_thumb'].'" alt="基於ecshop的移動端 etouch實現動態擷取分類商品列表".$vo['goods_name'].'">                                                                                            '.$vo['name'].'                                                

'. $shop_price .'

月銷:'.$vo['sales_count'].'

'.$collectStr.'  ' ); } } echo json_encode($sayList); exit; }

還有一個叫做 category_get_goods 這個函數此函數新增了一個欄位 collect返回欄位可以用於前端整頁模式渲染的時候實現判斷是否已經搜藏 並且根據是否搜藏顯示不同的樣式和綁定不同的事件函數

/** * 獲得分類下的商品 * * @access  public * @param   string  $children * @return  array */functioncategory_get_goods($children, $brand, $min, $max, $ext, $size, $page, $sort, $order){$display = $GLOBALS['display'];    $where = "g.is_on_sale = 1 AND g.is_alone_sale = 1 AND ".            "g.is_delete = 0 AND ($children OR " . get_extension_goods($children) . ')';    if ($brand > 0)    {        $where .=  "AND g.brand_id=$brand ";    }    if ($min > 0)    {        $where .= " AND g.shop_price >= $min ";    }    if ($max > 0)    {        $where .= " AND g.shop_price <= $max ";    }    /* 獲得商品列表 */$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ' .                "IFNULL(mp.user_price, g.shop_price * '$_SESSION[discount]') AS shop_price, g.promote_price, g.goods_type, " .                'g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img ' .            'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .            'LEFT JOIN ' . $GLOBALS['ecs']->table('member_price') . ' AS mp ' .                "ON mp.goods_id = g.goods_id AND mp.user_rank = '$_SESSION[user_rank]' " .            "WHERE $where $ext ORDER BY $sort $order";    $res = $GLOBALS['db']->selectLimit($sql, $size, ($page - 1) * $size);    $arr = array();    while ($row = $GLOBALS['db']->fetchRow($res))    {        if ($row['promote_price'] > 0)        {            $promote_price = bargain_price($row['promote_price'], $row['promote_start_date'], $row['promote_end_date']);        }        else        {            $promote_price = 0;        }        /* 處理商品浮水印圖片 */$watermark_img = '';        if ($promote_price != 0)        {            $watermark_img = "watermark_promote_small";        }        elseif ($row['is_new'] != 0)        {            $watermark_img = "watermark_new_small";        }        elseif ($row['is_best'] != 0)        {            $watermark_img = "watermark_best_small";        }        elseif ($row['is_hot'] != 0)        {            $watermark_img = 'watermark_hot_small';        }        if ($watermark_img != '')        {            $arr[$row['goods_id']]['watermark_img'] =  $watermark_img;        }        $arr[$row['goods_id']]['goods_id']         = $row['goods_id'];        if($display == 'grid')        {            $arr[$row['goods_id']]['goods_name']       = $GLOBALS['_CFG']['goods_name_length'] > 0 ? sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];        }        else        {            $arr[$row['goods_id']]['goods_name']       = $row['goods_name'];        }        $arr[$row['goods_id']]['name']             = $row['goods_name'];        $arr[$row['goods_id']]['goods_brief']      = $row['goods_brief'];        $arr[$row['goods_id']]['goods_style_name'] = add_style($row['goods_name'],$row['goods_name_style']);        $arr[$row['goods_id']]['market_price']     = price_format($row['market_price']);        $arr[$row['goods_id']]['shop_price']       = price_format($row['shop_price']);        $arr[$row['goods_id']]['type']             = $row['goods_type'];        $arr[$row['goods_id']]['promote_price']    = ($promote_price > 0) ? price_format($promote_price) : '';        $arr[$row['goods_id']]['goods_thumb']      = get_image_path($row['goods_id'], $row['goods_thumb'], true);        $arr[$row['goods_id']]['goods_img']        = get_image_path($row['goods_id'], $row['goods_img']);        $arr[$row['goods_id']]['url']              = build_uri('goods', array('gid'=>$row['goods_id']), $row['goods_name']);        $arr[$row['goods_id']]['sales_count']      = get_sales_volume($row['goods_id']); //顯示月銷量 by wangif (isset($_SESSION['user_id']) || $_SESSION['user_id'] != 0)        {             /* 檢查是否已經存在於使用者的收藏夾 */$sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('collect_goods') .                " WHERE user_id='$_SESSION[user_id]' AND goods_id = '".$row['goods_id']."'";            if ($GLOBALS['db']->GetOne($sql) > 0)            {                $arr[$row['goods_id']]['collect'] = 1;            }            else            {                $arr[$row['goods_id']]['collect'] = 0;            }        }else{            $arr[$row['goods_id']]['collect'] = 0;        }    }    return$arr;}

用戶端js代碼參考

/* * * 添加商品到收藏夾 */var _current_collect = null;var _current_goodsId = 0;functioncollect(_this,goodsId){  _current_collect = _this;  _current_goodsId = goodsId;  jQuery.get('user.php?act=collect',{id:goodsId},collectResponse,"JSON");}functionuncollect(_this,goodsId){  _current_collect = _this;  _current_goodsId = goodsId;  jQuery.get('user.php?act=uncollect',{id:goodsId},collectResponse,"JSON");}/* * * 處理收藏商品的反饋資訊 */functioncollectResponse(result){if(parseInt(result.error) === 0){         _current_collect.className = '';         _current_collect.className ="ycd-font-icon uncollect";         _current_collect.setAttribute('onclick',"uncollect(this,"+_current_goodsId+")");         _current_collect.innerHTML = '';     }     if(parseInt(result.error) === 3){         _current_collect.className = '';         _current_collect.className ="ycd-font-icon collect";         _current_collect.setAttribute('onclick',"collect(this,"+_current_goodsId+")");         _current_collect.innerHTML = '';     }    //這裡加入成功//注意這裡引入了一個自己寫的基於zepto移動端函數庫的一個外掛程式 請參考我以前寫的一篇文章裡面有這個外掛程式的代碼    Zepto('body').popup({            title:'提示資訊'            ,id:'alert'            ,closeOnOk:true            ,ok:'確定',            message:result.message        }); }

總結

以前非常喜歡php 弄過一段時間 所以php代碼也是基本上都能夠看懂 mysql 也學過
沒有php 基礎的童鞋可以先去學學php基礎
現在博主努力專研前端 後端也在學習 最近學習javascript 和 html5的新api 這些
記錄下自己的工作

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介紹了基於ecshop的移動端 etouch實現動態擷取分類商品列表,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.