页面统计

安装: 0

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 1

开放问题: 1

类型:mediawiki-extension

v2.0.0 2023-09-28 08:42 UTC

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}}