织梦dedecms模板中怎么显示最近浏览文章列表

COS、CDN

在织梦DeDeCMS中显示最近浏览文章列表通常涉及到记录用户的浏览历史,并在模板中调用这些信息。织梦本身并没有内置这样的功能,因此需要自己编写一些代码来实现。

下面是一个基本的步骤指南来实现这一功能:

步骤 1: 记录用户的浏览历史

  1. 创建浏览历史表:首先需要在数据库中创建一个表来存储用户的浏览历史记录。
  2. 插入浏览记录:每当用户浏览一篇文章时,就在这个表中插入一条记录,包含用户ID(如果用户已登录)、文章ID、浏览时间等信息。

步骤 2: 修改模板文件

  1. 创建模板文件:创建一个新的模板文件,例如 recently_viewed.htm
  2. 编写查询代码:在模板文件中使用织梦的模板标签来查询最近浏览的文章列表。

步骤 3: 调用模板文件

  1. 在页面中调用模板:在需要显示最近浏览文章列表的页面中调用刚才创建的模板文件。

示例代码

下面是一个简单的示例代码,展示如何实现上述功能。

步骤 1: 创建浏览历史表

在织梦的数据库中创建一个表,例如 dede_browsehistory,包含以下字段:

  • id (INT, 主键)
  • userid (INT, 用户ID)
  • articleid (INT, 文章ID)
  • viewtime (DATETIME, 浏览时间)

步骤 2: 插入浏览记录

在用户浏览文章时,向 dede_browsehistory 表中插入记录。这通常在文章详情页的PHP脚本中实现。

php
 
// 假设用户已登录,$userid 是用户ID,$articleid 是文章ID $userid = 1; // 示例用户ID $articleid = 123; // 示例文章ID // 插入浏览记录 $sql = "INSERT INTO `dede_browsehistory` (`userid`, `articleid`, `viewtime`) VALUES ('$userid', '$articleid', NOW())"; $dsql->ExecuteNoneQuery($sql);

步骤 3: 修改模板文件

创建一个模板文件 recently_viewed.htm,用于显示最近浏览的文章列表。

html
 
<div class="recently-viewed"> {dede:sql sql="SELECT * FROM `#@__browsehistory` WHERE userid='[!$userid!]'"} {dede:loop value="$dsql->GetResult($sql)"} {dede:arctitle id='[$field.articleid]'} <a href="[$field.url]">[$field.title]</a> {/dede:arctitle} {/dede:loop} {/dede:sql} </div>

步骤 4: 调用模板文件

在需要显示最近浏览文章列表的页面中调用模板文件。

html
 
<!-- 在页面中调用最近浏览文章列表 --> <div class="recently-viewed-container"> {dede:include file="recently_viewed.htm" /} </div>

注意事项

  • 安全性:确保在插入记录时使用参数化查询或转义字符串以防止SQL注入。
  • 性能:考虑到性能问题,可能需要定期清理旧的浏览记录。
  • 用户隐私:如果用户未登录,则可以考虑使用cookie或其他方式来识别匿名用户。

如果你需要更具体的帮助或示例,请随时告诉我。

COS、CDN
热门