ecshop浏览历史记录原理

2012-02-29 09:25 来源:www.chinab4c.com 作者:ecshop专家

    ecshop里面有浏览历史记录,在ecshop二次开发的时候,常常对这个地方进行调整.到不是说修改浏览历史记录的原理。而是修改ecshop浏览历史记录的数据显示方式.很简单,ecshop的商品浏览历史记录。他是借助cookie 来实现的。他是记录在ecshop的$_COOKIE['ECS']['history']变量里面的。

   我们先看ecshop的商品详细内容页面goods.php,里面有段程序.

   if (!empty($_COOKIE['ECS']['history']))
{
    $history = explode(',', $_COOKIE['ECS']['history']);

    array_unshift($history, $goods_id);
    $history = array_unique($history);

    while (count($history) > $_CFG['history_number'])
    {
        array_pop($history);
    }

    setcookie('ECS[history]', implode(',', $history), gmtime() + 3600 * 24 * 30);
}
else
{
    setcookie('ECS[history]', $goods_id, gmtime() + 3600 * 24 * 30);
}
  首先我们看下includes/lib_insert.php里面的function insert_history()函数

  在商品的浏览历史记录里面,可以通过商品ID来取得所有的浏览历史记录.

  $where = db_create_in($_COOKIE['ECS']['history'], 'goods_id');
        $sql   = 'SELECT goods_id, goods_name, goods_thumb, shop_price FROM ' . $GLOBALS['ecs']->table('goods') .
                " WHERE $where AND is_on_sale = 1 AND is_alone_sale = 1 AND is_delete = 0";

  从而返回一个浏览历史记录的商品信息数组.

  来源:http://www.chinab4c.com