帝国如何实现调用用户的访问记录,今天跟着小编来看一看吧,效果图如下
一:在e/class/userfun.php中加:
//--------------------开始------------------ functionuser_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_arras$key=>$val){ if(($key<$num)&&$val){ $pro.=$val.'|'; } } }else{ $pro=$prodq; } esetcookie($name,$pro,$time); //esetcookie($name,'',0); //print_r($_COOKIE); } functionuser_GetCook($name,$tbname,$num=10){//名称数据表数量 global$empire,$dbtbpre; if(preg_match("/^[0-9\|]+$/",getcvar($name))){ $jilu_all=substr(getcvar($name),0,-1);//1|2|3 $jilu_arr=explode('|',$jilu_all); foreach($jilu_arras$k=>$v){ $jilu_idin.=(int)$v.','; } $jilu_idin=substr($jilu_idin,0,-1);//1,2,3 $sql=$empire->query("selectid,title,titlepic,titleurlfrom{$dbtbpre}ecms_{$tbname}whereidin({$jilu_idin})orderbyfind_in_set(id,'{$jilu_idin}')limit{$num}");//按idin里面的排序 while($jilu_r=$empire->fetch($sql)){ $titleurl=sys_ReturnBqTitleLink($jilu_r); echo'<li><ahref="'.$titleurl.'">'.$jilu_r['title'].'</a></li>';//此处是修改样式需要图片自己加 } }else{ echo'暂时浏览记录!'; } } //--------------------结束------------------
二:在内容页模版最上面加:
<?=user_SetCook('cookiepro',$navinfor[id],0,10);//cookie名称可以自己定别重复ID时间戳数量?>
三:在要显示的地方加一句:
<?=user_GetCook('cookiepro','shop',10);//名称数据表名数量?>
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:312334557@qq.com 我们将配合处理!
原文地址:《帝国CMS实现用户当前访问的历史记录(产品浏览记录)》发布于2022-04-09 19:35:29