wikibase-solutions / w-s-stats
页面统计
Requires
- php: ^8.0
- ext-zip: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-06 10:48:17 UTC
README
此 MediaWiki 1.39.x 扩展按用户统计页面浏览量
- 版本 2.0.0 : REL 1.39 仅支持。添加了特殊页面的统计。添加了用于统计的 Lua 相似函数。添加了特殊页面。
- 版本 1.0.8 : 移除了全局引用
- 版本 1.0.7 : 添加了页面的时间统计
- 版本 1.0.6 : 修复了 sql 表的路径
- 版本 1.0.5 : 重写了数据库查询以使用 MW 数据库抽象层。
- 版本 1.0.4 : 安全修复!未处理的用户输入。请尽快更新到 1.0.4。
- 版本 1.0.3 : Top X 列表已更改,因为它不再显示已删除的页面
- 版本 1.0.2 : 捕获了对一个不存在页面的标题的请求
- 版本 1.0.1 : 代码清理和 i18n 消息添加
- 版本 1.0.0 : 添加了设置限制和以 WSArrays 导出的支持
- 版本 0.8.2 : 添加了对仅过滤唯一访客的支持
- 版本 0.8.1 : 添加了对 AdminLinks 的支持
- 版本 0.8.0 : 清理
- 版本 0.1.9 : 获取标题更改
- 版本 0.1.8 : 移除了 dbprefix 类变量
- 版本 0.1.7 : 按日期范围显示访问量最高的页面。以 csv 选项显示
- 版本 0.1.6 : 在用户或匿名上过滤结果
- 版本 0.1.5 : 添加了更多配置选项
- 版本 0.1.3 : 修复了 MySQL 中的错误
- 版本 0.1.2 : 跳过用户组结果
- 版本 0.1.1 : 初始版本
安装
在 MediaWiki 扩展文件夹中创建一个名为 WSStats 的文件夹。将 bitbucket 中的内容复制到这个新文件夹中。
将以下内容添加到 LocalSettings.php 中
# WSStats extensions
wfLoadExtension( 'WSStats' );
运行 更新脚本,该脚本将自动创建此扩展所需的所有数据库表。
导航到您的维基百科上的 Special:Version,以验证扩展是否已成功安装。
升级
如果您是从 2.0 版本之前的版本升级的,那么您必须访问特殊页面:Special:WSStats。如果需要更新数据库表,它将在那里显示,并且您可以更新表。您必须更新表以使统计准确。这是因为我们现在允许根据页面标题获取统计信息,而 WSStats 的先前的版本没有存储标题。
配置
默认情况下,匿名用户和 sysops 被跳过统计记录。要更改此设置,请将以下内容添加到 LocalSettings.php 中。
从以下内容开始
$wgWSStats = array();
允许对匿名用户进行统计
# Record anonymous users
$wgWSStats['skip_anonymous'] = false;
默认情况下,特殊页面也被计算在内。要省略特殊页面,请设置以下内容
# Special Pages statistics
$wgWSStats['countSpecialPages'] = false; // defaults to true
要跳过某些组中的用户,只需将组名添加到 "skip_user_groups" 中
# Record anonymous users
$wgWSStats['skip_anonymous'] = false;
# Skip if user is in following groups
$wgWSStats['skip_user_groups'][] = 'sysop';
$wgWSStats['skip_user_groups'][] = 'admin';
# Allow all usergroups, including sysop
$wgWSStats['skip_user_groups'] = [];
跳过带有特定文本的 referer url 的页面。默认操作=edit 和 veaction=edit 被忽略。此配置选项区分大小写
$wgWSStats = array();
$wgWSStats['ignore_in_url'][] = 'Template:Test';
$wgWSStats['ignore_in_url'][] = 'action=edit';
使用解析器函数
要检索统计信息,您可以使用以下解析器函数
请求页面 id 9868 的点击次数
这将返回一个数字
{{#wsstats:id=9868}}
您还可以根据标题而不是页面 ID 请求统计信息。
请求标题为 "Main Page" 的页面的点击次数
这将返回一个数字
{{#wsstats:title=Main Page}}
关于日期。日期的格式为 YYYY-MM-DD。WSStats 内部使用日期和时间。这意味着日期 2023-10-30 将内部变为 2023-10-30 00:00:00。您还可以按日期和时间搜索。请参见示例。
请求页面 id 714 自 2018-02-01 开始的点击次数
这将返回一个数字
{{#wsstats:id=714
|start date=2018-02-01}}
请求页面 id 714 自 2018-02-01 开始和 2018-02-14 结束的点击次数
这将返回一个数字
{{#wsstats:id=714
|start date=2018-02-01
|end date=2018-02-08}}
您还可以根据日期和时间获取统计数据。获取页面ID为714的访问次数,起始时间为2023-10-30 14:00:00,结束时间为2023-10-30 16:00:00。
这将返回一个数字
{{#wsstats:id=714
|start date=2023-10-30 14:00:00
|end date=2023-10-30 16:00:00
}}
根据注册用户或匿名用户筛选结果。
这将返回一个数字
{{#wsstats:id=714
|start date=2023-10-30 14:00:00
|end date=2023-10-30 16:00:00
|type=only anonymous}}
{{#wsstats:id=714
|start date=2018-02-01
|end date=2018-02-08
|type=only user}}
获取按访问次数排序的前十个页面。
这将返回一个表格。
{{#wsstats:stats}}
获取日期范围内的按访问次数排序的前十个页面。
这将返回从2018-02-01 00:00:00到2018-02-08 00:00:00的表格(不包括2018-02-08)。
{{#wsstats:stats
|start date=2018-02-01
|end date=2018-02-08}}
按访问次数排序前十个页面并显示为csv格式。
这将返回一个csv文件。
{{#wsstats:stats
|format:csv}}
按访问次数排序前十个页面并插入到WSArrays变量中。
这将返回空值,但仅设置WSArray键。如果没有安装WSArrays扩展,则不执行任何操作。
{{#wsstats:stats
|format:wsarrays
|name=<wsarray key name>}}
Get the result from WSArrays:
{{#caprint:<wsarray key name>}}
获取一段时间内一个页面的统计数据,并限制结果为100条。
自版本1.0.7以来新增功能。
这将返回一个表格。
{{#wsstats:stats
|id=1
|start date=2018-02-01
|end date=2021-02-08
|limit 100
}}
对于所有查询,您可以添加一个唯一标识符以只返回唯一视图。
这将返回一个表格。
{{#wsstats:stats
|start date=2018-02-01
|end date=2018-02-08
|unique}}
这将返回一个表格。
{{#wsstats:stats
|unique}}
对于所有前十个统计查询,您可以添加限制以获取少于或多于十个结果。
这将返回一个表格。
{{#wsstats:stats
|unique
|limit=20}}
使用Lua函数。
自版本2.0以来新增功能。
您可以使用两个Lua函数。
对于返回表格的解析函数({{#wsstats:stats..)),您可以使用wsstats.stats()。
对于返回数字的解析函数({{wsstats:...)),您可以使用wsstats.stat();
所有参数与解析函数相同,除了
- 起始日期 = startDate
- 结束日期 = endDate
示例
如果您创建一个名为WSStats的模块并添加以下内容
local p = {} function p.stats(frame) stats = mw.wsstats.stats( frame.args ) return stats end function p.stat(frame) stat = mw.wsstats.stat( frame.args ) return stat end return p
然后您可以进行如下调用
{{#invoke:wsstats|stats}} // returns a Lua table
{{#invoke:wsstats|stat|id=1|startDate=2023-09-25|endDate=2023-09-26}}