Ecmall 商品浏览历史
查看ecmall实现商品浏览历史记录的原理,是在每次打开商品详情页面时,将当前商品的id加入cookie中,
按照这个思路,在其他需要使用浏览历史记录的系统中也可以这样设计。
/* 取得浏览历史 */ function _get_goods_history($id,$num = 9) { $goods_list = array(); $goods_ids = ecm_getcookie('goodsBrowseHistory');//取得cookie中的浏览记录 $goods_ids = $goods_ids ? explode(',', $goods_ids) : array(); if ($goods_ids) { $rows = $this->_goods_mod->find(array( 'conditions' => $goods_ids, 'fields' => 'goods_name,default_image', )); foreach ($goods_ids as $goods_id)//没有图片的商品设置为默认图片 { if (isset($rows[$goods_id])) { empty($rows[$goods_id]['default_image'])&& $rows[$goods_id]['default_image'] = Conf::get('default_goods_image'); $goods_list[] =$rows[$goods_id]; } } } $goods_ids[] = $id;//将当前商品id存进历史记录 if (count($goods_ids) > $num) { unset($goods_ids[0]);//超过9个时删除最早的一个 } ecm_setcookie('goodsBrowseHistory',join(',', array_unique($goods_ids)));//设置cookie return $goods_list; }
functionecm_getcookie($key= '') { return isset($_COOKIE[$key]) ?$_COOKIE[$key] : 0; }
functionecm_setcookie($key,$value, $expire = 0, $cookie_path=COOKIE_PATH, $cookie_domain=COOKIE_DOMAIN) { setcookie($key, $value, $expire,$cookie_path, $cookie_domain); }
Ecmall 商品浏览历史
最新推荐文章于 2021-01-26 22:40:06 发布