bnomei / kirby3-pageviewcounter

跟踪页面访问次数和最后访问时间戳

1.7.1 2024-02-22 10:14 UTC

README

Release Downloads Build Status Coverage Status Maintainability Twitter

跟踪页面访问次数和最后访问时间戳

商业使用


支持开源!

此插件免费,但如果您将其用于商业项目,请考虑赞助我或捐款。
如果我的工作帮助您赚了钱,我觉得我应该得到一点回报,对吧?

善良一点。分享一点。谢谢。

- Bruno
 

安装

  • 解压master.zip为文件夹site/plugins/kirby3-pageviewcounter,或者
  • git submodule add https://github.com/bnomei/kirby3-pageviewcounter.git site/plugins/kirby3-pageviewcounter,或者
  • composer require bnomei/kirby3-pageviewcounter

使用方法

通过回声一个1px x 1px图像或在您的模板的任何地方添加css。这两种技术都会增加计数器,但技术上它们以不同的方式跟踪。

A) 通过图像,跟踪滚动到第一屏下方

<?php echo $page->counterImage(); ?>

B) 通过css,跟踪鼠标悬停在body上

<?php echo $page->counterCss(); ?>

它如何工作

跟踪图像将被移到第一屏下方,并在第一次用户滚动时触发计数器使用原生懒加载。为什么?为了避免大多数机器人。它也将适用于使用页面缓存的缓存页面(即使缓存静态)。

SQLite数据库(默认)

要查看跟踪的计数和时间戳,此插件提供了两个可选字段。

在您的页面蓝图

fields:
  counter:
    label: Page view count
    type: viewcount
  lastvisited:
    label: Page last visited
    type: lastvisited
    # format: 'DD-MM-YYYY'

Kirby内置了day.js,您可以使用它来格式化日期输出

您不需要添加任何内容到您的配置文件。但您可以对默认设置进行一些更改,例如,如果您想更改sqlite文件的路径。

site/config/config.php

<?php
return [
    /* default 
    'bnomei.pageviewcounter.counter' => function () {
        return new \Bnomei\PageViewCounterSQLite();
    },
    'bnomei.pageviewcounter.sqlite.file' => function () {
        $dir = realpath(kirby()->roots()->accounts() . '/../');
        Dir::make($dir);
        return $dir . '/pageviewcounter.sqlite';
    },
    */
    // other options ...
];

页面字段(替代)

如果您不想将跟踪的计数存储在sqlite文件中,请在您的蓝图添加kirby文本或隐藏字段。我通常为它们创建蓝图,并在我的目标页面蓝图中进行扩展,如下所示...

site/blueprints/fields/viewcount.yml

type: number
min: 0
default: 0
disabled: true
label: Visit Count

site/blueprints/fields/lastvisited.yml

type: hidden

在您的页面蓝图

fields:
  viewcount:
    extends: fields/viewcount
  lastvisited:
    extends: fields/lastvisited

site/config/config.php

<?php
return [ 
    'bnomei.pageviewcounter.field.count' => 'viewcount',
    'bnomei.pageviewcounter.field.timestamp' => 'lastvisited',
    'bnomei.pageviewcounter.counter' => function () {
            return new \Bnomei\PageViewCounterField();
    },
    // other options ...
];

注意:警告,页面字段可能不适合并发请求。

设置

免责声明

此插件提供“原样”且没有任何保证。自行承担使用风险,并在生产环境中使用之前始终自行测试。如果您发现任何问题,请创建新问题

许可证

MIT

不鼓励在任何推广种族主义、性别歧视、同性恋恐惧症、动物虐待、暴力或其他任何形式的仇恨言论的项目中使用此插件。