bnomei / kirby3-pageviewcounter
跟踪页面访问次数和最后访问时间戳
1.7.1
2024-02-22 10:14 UTC
Requires
- php: >=8.1
- getkirby/composer-installer: ^1.2
- jaybizzle/crawler-detect: ^1.2
- matomo/device-detector: ^6.1
Requires (Dev)
- getkirby/cms: ^4.0.0-rc.2
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^9.5
README
跟踪页面访问次数和最后访问时间戳
商业使用
支持开源!
此插件免费,但如果您将其用于商业项目,请考虑赞助我或捐款。
如果我的工作帮助您赚了钱,我觉得我应该得到一点回报,对吧?
善良一点。分享一点。谢谢。
- 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 ... ];
注意:警告,页面字段可能不适合并发请求。
设置
免责声明
此插件提供“原样”且没有任何保证。自行承担使用风险,并在生产环境中使用之前始终自行测试。如果您发现任何问题,请创建新问题。
许可证
不鼓励在任何推广种族主义、性别歧视、同性恋恐惧症、动物虐待、暴力或其他任何形式的仇恨言论的项目中使用此插件。