帝国CMS实现历史记录(产品浏览记录)
一:在e/class/userfun.php中加: //--------------------开始------------------function user_SetCook($name, $id, $time = 0, $num = 10) { //cookie名称 ID 时间戳 数量
if (!$id) {
printerror2('不存在的记录', $_SERVER['HTTP_REFERER']);
}
$prodq = $id . '|';
$projilu = getcvar($name);
if ($projilu) {
$prozuhe = $prodq . $projilu; //把新浏览的放在第一
$pro_arr = explode('|', $prozuhe);
$new_arr = array_merge(array_unique($pro_arr)); //去除重复,重新索引下标
foreach ($new_arr as $key => $val) {
if (($key < $num) && $val) {
$pro.= $val . '|';
}
}
} else {
$pro = $prodq;
}
esetcookie($name, $pro, $time);
//esetcookie($name,'',0);
//print_r($_COOKIE);
}
function user_GetCook($name, $tbname, $num = 10) { //名称 数据表 数量
global $empire, $dbtbpre;
if (preg_match("/^+$/", getcvar($name))) {
$jilu_all = substr(getcvar($name), 0, -1); //1|2|3
$jilu_arr = explode('|', $jilu_all);
foreach ($jilu_arr as $k => $v) {
$jilu_idin.= (int)$v . ',';
}
$jilu_idin = substr($jilu_idin, 0, -1); //1,2,3
$sql = $empire->query("select id,title,titlepic,titleurl from {$dbtbpre}ecms_{$tbname} where id in ({$jilu_idin}) order by find_in_set(id,'{$jilu_idin}') limit {$num}"); //按id in 里面的排序
while ($jilu_r = $empire->fetch($sql)) {
$titleurl = sys_ReturnBqTitleLink($jilu_r);
echo '<li><a href="' . $titleurl . '">' . $jilu_r['title'] . '</a></li>'; //此处是修改样式需要图片自己加
}
} else {
echo '暂时浏览记录!';
}
}
//--------------------结束------------------
二:在内容页模版最上面加:
<?=user_SetCook('cookiepro',$navinfor,0,10);//cookie名称可以自己定别重复 ID 时间戳 数量 ?>
三:在要显示的地方加一句:
<?=user_GetCook('cookiepro','shop',10);//名称 数据表名 数量 ?>
页:
[1]