在使用Dedecms进行网站开发时,添加最近浏览文章列表功能可以显著提升用户体验。以下是如何实现这一功能的详细步骤,确保您的网站能够更好地满足用户需求。
首先,创建一个新的数据库表来存储用户的浏览记录。执行以下SQL语句:
CREATE TABLE `数据库`.`dede_zj` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`mid` INTEGER UNSIGNED NOT NULL,
`ip` VARCHAR(45) NOT NULL,
`aid` INTEGER UNSIGNED NOT NULL,
`logintime` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
)
接下来,创建一个PHP文件名为count_zj.php,并将其存放在puls目录下。以下是该文件的内容:
M_ID;
$joinip = GetIP();
// 当前时间戳
$nowTime = time();
if($mid)
{
$row = $dsql->GetOne(" Select * From `dede_zj` where aid='$aid' and mid='$mid'");
if(!$row){
$dsql->ExecuteNoneQuery("INSERT INTO dede_zj( `id`, `mid`, `ip`,`aid` ,`logintime`)
VALUES ( ,$mid, '$joinip',$aid,$nowTime) ");
}
$db->SetQuery(" Select title From dede_archives join dede_zj on dede_archives.id=dede_zj.aid where dede_zj.mid='$mid' order by logintime desc limit 1,5");
$db->Execute();
while($row = $db->GetArray())
{
echo "document.write('$row[title]');\\\\r\\\\n";
}
}
if(!$mid){
$m = $dsql->GetOne(" Select * From `dede_zj` where aid='$aid' and ip='$joinip'");
if(!$m){
$dsql->ExecuteNoneQuery("INSERT INTO dede_zj( `id`, `mid`, `ip`,`aid` ,`logintime`)
VALUES ( ,$mid, '$joinip',$aid,$nowTime) ");
}
$db->SetQuery(" Select title From dede_archives join dede_zj on dede_archives.id=dede_zj.aid where dede_zj.ip='$joinip' order by logintime desc limit 1,5");
$db->Execute();
while($row = $db->GetArray())
{
echo "document.write('$row[title]');\\\\r\\\\n";
}
}
exit();
?>
然后,在文章模板中添加以下代码:
最后,如果您希望在引用处直接显示最近浏览的文章链接,请使用以下代码替换之前的PHP文件:
M_ID;
$joinip = GetIP();
// 当前时间戳
$nowTime = time();
if($mid)
{
$row = $dsql->GetOne(" Select * From `dede_zj` where aid='$aid' and mid='$mid'");
if(!$row){
$dsql->ExecuteNoneQuery("INSERT INTO dede_zj( `id`, `mid`, `ip`,`aid` ,`logintime`)
VALUES ( ,$mid, '$joinip',$aid,$nowTime) ");
}
$db->SetQuery(" Select title,dede_archives.id From dede_archives join dede_zj on dede_archives.id=dede_zj.aid where dede_zj.mid='$mid' order by logintime desc limit 1,5");
$db->Execute();
while($row = $db->GetArray())
{
echo "document.write(\\"\\");";
echo "document.write('".$row['title']."');";
echo "document.write(\\"\\");\\\\r\\\\n";
}
}
if(!$mid){
$m = $dsql->GetOne(" Select * From `dede_zjw` where aid='$aid' and ip='$joinip'");
if(!$m){
$dsql->ExecuteNoneQuery("INSERT INTO dede_zjw( `id`, `mid`, `ip`,`aid` ,`logintime`)
VALUES ( ,$mid, '$joinip',$aid,$nowTime) ");
}
$db->SetQuery(" Select title,dede_archives.id From dede_archives join dede_zj on dede_archives.id=dede_zj.aid where dede_zjw.ip='$joinip' order by logintime desc limit 1,5");
$db->Execute();
while($row = $db->GetArray())
{
echo "document.write(\\"\\");";
echo "document.write('".$row['title']."');";
echo "document.write(\\"\\");\\\\r\\\\n";
}
}
exit();
?>
以上步骤完成后,您的Dedecms网站将具备最近浏览文章列表的功能。请根据实际需要调整样式和布局,以确保与整体网站设计保持一致。