【发布时间】:2018-02-09 10:59:37
【问题描述】:
我需要统计 Bolt CMS 中的网页访问次数以对网页进行评级。类似于 StackOverflow 中的内容:
我的内容类型为pages,字段为visits。我知道我需要在页面模板中添加一些代码,但我不明白如何增加当前record 的字段visits。可以通过twig吗?
或者我必须在模板中添加一些自定义查询?但我不知道该怎么做。
如果有任何建议,我将不胜感激。
【问题讨论】:
我需要统计 Bolt CMS 中的网页访问次数以对网页进行评级。类似于 StackOverflow 中的内容:
我的内容类型为pages,字段为visits。我知道我需要在页面模板中添加一些代码,但我不明白如何增加当前record 的字段visits。可以通过twig吗?
或者我必须在模板中添加一些自定义查询?但我不知道该怎么做。
如果有任何建议,我将不胜感激。
【问题讨论】:
好的,有一种快速但可能不正确的方法可以做到这一点,在您的树枝模板中,您可以增加并保存访问值:
{% record.setValue('visits', record.visits +1 ) %}
{% app.storage.saveContent(record) %}
如果您正在处理一个简单的项目,这会很好,但它确实会在您网站的每个网页浏览中强制执行数据库查询(包括来自机器人/自动化脚本等),因此它对于生产媒体来说并不是真正的理想选择/高流量网站。
如果您想以更强大的方式解决它,那么使用 Async JS 跟踪器的 Google Analytics 方法可能会更好,或者您甚至可以使用 Google Analytics API 根据 Google 记录的综合浏览量定期更新您的访问.
【讨论】:
Unknown "record" tag 和 Unknown "app" tag。问题出在哪里?
我猜还有一点。堆栈溢出还会检查访问过的唯一人员。但是对于一个基本的解决方案,我会在数据库中创建一个带有简单 int 字段的表。并将其设置为 0。(对于每一页)
然后创建一个 PHP 文件,你会得到这个。
$pagid (Get url)
$result = mysql_query('Select count from counter WHERE pageid=$pagid');
$newcount = $result['count'] + 1;
mysql_query('UPDATE counter SET count=$newcount');
然后只需将其包含在每个页面中,并测试当您刷新页面时计数器是否上升。 (我在上面的代码字段中声明的是需要发生的事情的一般纲要,所以你需要稍微调整一下)
当你得到这个工作时,你可以去尝试添加一些检查器,如果访问者是唯一的等等。但这本身就是一个问题。
如果您可以使用 PHP,则添加 PHP 标签、sessions 标签和 sql 标签,其他人可能会给您比我在这里做的更好的解释。
另外,您需要使用 PHP 或其他脚本执行此操作的原因是因为 twig 模板化的“PHP”不允许您修改数据库数据。它只允许您获取它。
希望我的一些解释是有道理的,希望这可以帮助您解决问题!
【讨论】: