Ecmall 商品浏览历史

来源:互联网 发布:交易软件登录不了 编辑:程序博客网 时间:2024/06/04 18:05

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);}