mwstake / periodic-related-changes
MediaWiki 扩展,用于设置相关更改的周期性通知
Requires
- composer/installers: 1.*,>=1.0.1
- pear/mail_mime: 1.*,>=1.10.1
- phpoffice/phpexcel: ^1.8
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-19 14:08:51 UTC
README
周期相关更改(PRC)是 MediaWiki 扩展,用于指定用户在指定时间段内(通常是每周)获取页面相关更改。
阅读用户手册以更好地了解如何使用此工具。
安装
安装 PRC 非常简单。
确保已安装 Echo
此扩展依赖于 Echo 扩展 来发送消息。Echo 目前无法通过 composer 安装,因此您需要先单独 安装 Echo。
使用 composer 获取扩展
如果您熟悉 composer,则要安装 PRC,只需添加对 mwstake/periodic-related-changes 的依赖项即可。
如果您还没有 composer,您需要 下载它。
从命令行,运行以下命令
php composer.phar require mwstake/periodic-related-changes dev-master
更新 LocalSettings.php
将以下行添加到您的 LocalSettings.php 中
wfLoadExtension( 'PeriodicRelatedChanges' );
运行 update.php
在命令行中
php maintenance/update.php --quick
验证安装
您应该在维基的 Special:Version 页面上看到“PeriodicRelatedChanges”被列出。
设置批量电子邮件通知
最后,如果您希望每天或每周批量发送通知,则绝对有必要确保运行辅助脚本 processEchoEmailBatch.php
。
您需要设置一个重复性作业,该作业每天至少运行以下命令一次
php extensions/Echo/maintenance/processEchoEmailBatch.php
在基于 Unix 的系统(如 Linux 或 OS X)上,这可以通过 cron job 完成。在 Windows 上,您可能希望使用 PowerShell 中的 scheduled task cmdlets 或 SCHTASKS。
强制将通知发送到特定的时间表。
由于 Echo 处理通知的限制,无法实现细粒度的时间表。然而,管理员可以强制所有批量 Echo 通知在指定时间发送。
在 Unix 上
例如,如果您想在使用 Unix cron job 的情况下在周五下午 5 点将所有 PRC 通知发送出去,以下 cron 条目将有效
0 17 * * 5 php extensions/Echo/maintenance/processEchoEmailBatch.php -i
在 Windows 上
类似地,在 Windows 上使用 SCHTASKS 执行此操作可能如下所示
SCHTASKS /Create /SC weekly /D FRI /TN PRCNotifications /ST 17:00 /TR c:\do_prc.bat
当然,您必须在 do_prc.bat
中执行以下命令
php extensions/Echo/maintenance/processEchoEmailBatch.php -i
注意事项
请注意,以这种方式设置每周通知将影响 所有 批量 Echo 通知,而不仅仅是 PRC 的通知。这意味着,如果用户指定他们希望每天通过电子邮件接收其页面评论的通知,但您只每周运行一次 processEchoEmailBatch.php
,则他们每周只能收到一次通知。
配置
您可能需要为 Echo 和 PRC 配置一些项目。以下代码行中的每一行都可以放入您的 LocalSettings.php 文件中。
中国大陆可以使用Echo发送HTML格式的电子邮件,但需要启用此功能。 (文档)
$wgAllowHTMLEmail = true;
如果您想批量发送电子邮件(这是“定期”功能的一部分),您需要在Echo中启用批量通知。 (文档)
$wgEchoEnableEmailBatch = true;
您可以将用户的默认电子邮件格式设置为HTML。 (文档)
$wgDefaultUserOptions['echo-email-format'] = 'html';
可选:不允许用户更改到纯文本电子邮件格式。
$wgHiddenPrefs[] = 'echo-email-format';
默认情况下,为所有用户启用通过电子邮件发送的PRC通知。
$wgDefaultUserOptions['echo-subscriptions-email-periodic-related-changes'] = true;
不允许用户关闭通知。
$wgHiddenPrefs[] = 'echo-subscriptions-email-periodic-related-changes';
默认情况下,设置用户每周接收电子邮件。
$wgDefaultUserOptions['echo-email-frequency'] = 7;
常量 =EchoEmailFrequency::WEEKLY_DIGEST= 被设置为这个数字(7),但在MediaWiki的一些版本中,该常量不能在LocalSettings.php文件中使用。
可选:不允许用户更改到每日电子邮件。
$wgHiddenPrefs[] = 'echo-email-frequency';
默认情况下,禁用未分批的、在Wiki上的Echo通知。
$wgDefaultUserOptions['echo-subscriptions-web-periodic-related-changes'] = false;
用户权限
PRC暴露了两个新的权限,可以分配给用户组
periodic-related-changes
- 查看并更改登录用户的PRC通知。periodic-related-changes-any-user
- 查看并更改任何用户的PRC通知。
默认情况下,periodic-related-changes
权限分配给了 user
组,以便任何登录用户都可以查看和修改自己的PRC通知;periodic-related-changes-any-user
权限分配给了 sysop
(通常在Wiki上显示为“管理员”)组。
如果您想从这些组中撤销权限,您可以在 LocalSettings.php
中执行如下操作:
// Take away the default rights $wgGroupPermissions['user']['periodic-related-changes'] = false; $wgGroupPermissions['sysop']['periodic-related-changes-any-user'] = false; // Give them to other groups $wgGroupPermissions['watchers']['periodic-related-changes'] = true; $wgGroupPermissions['watch-admin']['periodic-related-changes-any-user'] = true;
支持
如果在运行中遇到问题,请在MediaWiki的 支持中心 提出问题,并标记我(@MarkAHershberger)。