帝国CMS二次开发产品或文章浏览记录函数
2020-04-10 站长 站长日志
方法步骤:
一:在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){
//名称 <a href="http://www.11px.cn/tags/sjb/" target="_blank">数据表</a> 数量
global
$empire
,
$dbtbpre
;
if
(preg_match(
"/^[0-9|]+$/"
,getcvar(
$name
))){
$jilu_all
=
substr
(getcvar(
$name
),0,-1);
//1|2|3
$jilu_idin
=
str_replace
(
'|'
,
','
,
$jilu_all
);
//1,2,3
}
else
{
$jilu_idin
=0;
//避免sql错误没有返回0
}
$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>'
;
//此处是修改样式需要图片自己加
}
}
二:在内容模版最上面加入以下代码:<?
user_SetCook(
'cookiepro'
,
$navinfor
[id],0,10);
//cookie名称可以自己定别重复 ID 时间戳 数量
?>
三:在需要显示的地方加入以下代码:<?=user_GetCook(
'cookiepro'
,
'shop'
,10);?>//名称 <a href="
http://www.cmsyuanma.com/tags/sjb/" target="_blank">数据表</a>名 数量
下一篇:很抱歉没有了