我需要为 Umbraco CMS 创建一个计数器。有没有办法做到这一点?我想跟踪热门文章并将其显示在主页上。

最佳答案

您必须自己实现这一点,这不是开箱即用的。你可以这样做:

首先,您需要知道要计算的内容:请求 url 的次数?或者一个节点被查看的次数(同一个节点可能在多个 url 下可用)?点击或访问,如果用户重新加载页面,计数器应该上升吗?

对于实际实现,您需要三个部分:

1.客户端请求

每当查看应该被跟踪的页面时,您都需要触发对服务器的请求,该请求允许您增加该页面的计数器。

有几种方法可以实现这一点,我建议通过包含 图片请求 (1px 透明 gif)来实现。

例如:

<img src="/hits/4882/counter.gif" />

4882是文章页面的节点id,每个文章页面都不一样。

您可能应该包含在母版页(模板)上生成 url 的代码。

2. 服务器端处理程序

在服务器端,您需要一个响应图片请求的处理程序。 HttpHandler 非常适合这项工作。您可以在单独的项目中创建它,将 dll 放在 bin 文件夹中并添加必要的 web.config 设置。

处理程序必须执行以下操作:
  • 识别图片请求来自哪个 url/节点 - 通过使用请求的 HTTP_REFERRER header ,或通过使用 url 中的信息(如图像 url 中的节点 id,如我上面的示例中所示)。
  • 增加该页面的计数器 - 您需要向数据库添加一个表,简单的方法是使用 url 或节点 id 列和请求数列。
  • 发回图像 并确保客户端不会缓存它(设置过期 header 等)


  • 3. 显示最流行的链接

    为了在页面上显示热门文章,您需要一个 Umbraco user control 来查询数据库中的表并显示最流行的链接。

    关于c# - Umbraco CMS : How to make a hit counter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6627673/

    10-17 02:18