Extension:Echo
There is a stalled attempt to move this functionality into core MediaWiki; for more information, see 通知 and Requests for comment/Notifications in core. |
Notifications 发行状态: 稳定版 |
|
---|---|
实现 | 通知 |
描述 | 提供了一个wiki内部可以供其他扩展使用的通知系统。 |
作者 | |
最新版本 | 持续更新 |
兼容性政策 | 快照跟随MediaWiki发布。 master分支不向后兼容。 |
数据库更改 | 是 |
表 | echo_email_batch echo_event echo_notification echo_subscription echo_target_page echo_push_provider echo_push_subscription echo_push_topic echo_unread_wikis |
许可协议 | MIT授權條款 |
下載 | |
|
|
|
|
|
|
季度下載量 | 139 (Ranked 41st) |
正在使用的公开wiki数 | 2,698 (Ranked 187th) |
前往translatewiki.net翻譯Echo扩展 | |
問題 | 开启的任务 · 报告错误 |
通知扩展,在面向系统管理员和开发人员的代码和文档中历来称为Echo、提供了一个wiki内通知系统,为用户提供有关wiki上活动的警报和通知,例如其他用户在讨论页上提到他们,或者他们的编辑被恢复。 其他MediaWiki扩展可以利用Echo发送自己的通知,例如感谢 和讨论工具 两个扩展。
安装
- 数据库用户必须已被授予数据库的“REFERENCES”权限。 How you check this depends on how you set up the database in the first place. For example, if you used a control panel application, then that interface should provide a way to check and change the privileges of the database user (
$wgDBuser
in LocalSettings.php ). - 下载文件,并将解压后的
Echo
文件夹移动到extensions/
目录中。
开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo - 将下列代码放置在您的LocalSettings.php 的底部:
wfLoadExtension( 'Echo' );
- 运行更新脚本,它将自动创建此扩展必须依赖的数据库表。
- 在您方便的时候配置即可
- 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。
为了允许每天或每周通过邮件发送摘要通知(对于在首选项中选择的用户),Echo扩展目录中的以下脚本需要每天运行,可以在cron作业中安排:
maintenance/processEchoEmailBatch.php
配置
可以使用条件用户选项 为新用户设置不同的通知首选项,而不影响现有用户。
有关更多详细信息,请参见Special:DisplayNotificationsConfiguration。
参数
参数 | 默认值 | 备注 |
---|---|---|
$wgEchoEnableEmailBatch
|
true
|
是否打开电子邮件批处理功能 |
$wgEchoUseJobQueue
|
false
|
|
$wgEchoEmailFooterAddress
|
'' | 组织地址(或您希望显示在电子邮件通知页脚中的任何文本)。 应在LocalSettings.php中定义 |
$wgNotificationSender
|
$wgPasswordSender
|
电子邮件通知中“发件人”和“回复对象”的电子邮件地址。 应在LocalSettings.php中定义 |
$wgNotificationSenderName
|
消息“emailsender” (MediaWiki) | 电子邮件通知中“发件人”的名称。 应在LocalSettings.php中定义 |
$wgNotificationReplyName
|
No Reply | 电子邮件通知中“回复”的名称。 应在LocalSettings.php中定义 |
$wgEchoCluster
|
false
|
如果设置为false,请使用主数据库;要使用特定的外部数据库,只需使用$wgExternalServers 中定义的任何键 |
$wgEchoSharedTrackingDB
|
false
|
用于跟踪跨wiki未读通知的共享数据库;不跟踪为false |
$wgEchoSharedTrackingCluster
|
false
|
共享跟踪数据库所在的群集;如果在主屏幕上,则为false。 必须是在$wgExternalServers 中定义的键 |
$wgEchoMaxUpdateCount
|
2000 | 允许用户进行实时更新的最大通知数,这也是允许用户拥有的最大通知数量。 |
$wgEchoMaxMentionsCount
|
50 | 允许用户一次发送的提及通知的最大数量 |
$wgEchoMentionStatusNotifications
|
false
|
启用提及成功/失败通知 |
$wgEchoMentionsOnMultipleSectionEdits
|
true
|
触发多节编辑的提及 |
$wgEchoMentionOnChanges
|
true
|
只要在同一节中添加了签名,就可以触发对现有评论的编辑提及 |
$wgEchoMaxMentionsInEditSummary
|
0 | 将收到从编辑摘要链接的通知的最大用户数,或0表示没有通知 |
$wgEchoBundleEmailInterval
|
0 | 每个捆绑电子邮件之间的时间间隔(秒);为测试Wiki设置一个小数字。 如果不支持延迟队列,则应将其设置为0以禁用电子邮件绑定 |
$wgEchoNewMsgAlert
|
true
|
是否为登录用户启用新的通话页面消息提醒。 |
$wgNotifyTypeAvailabilityByCategory
|
[
// 否则,用户->用户电子邮件可能会触发额外的冗余通知电子邮件。
'emailuser' => [
'web' => true,
'email' => false,
],
'mention-failure' => [
'web' => true,
'email' => false,
],
'mention-success' => [
'web' => true,
'email' => false,
],
]
|
定义可用于每个通知类别的通知类型。 如果省略了任何通知类型,则默认为$wgDefaultNotifyTypeAvailability。 |
$wgEchoNotifiers
|
[
'web' => [ 'EchoNotifier', 'notifyWithNotification' ],
'email' => [ 'EchoNotifier', 'notifyWithEmail' ],
]
|
可能的不同类型通知传递的定义。 每个定义都包含一个类名和一个函数名。 另请参阅EchoNotificationController类。 |
$wgEchoAgentBlacklist
|
[] | 不会触发通知的用户名列表 |
$wgEchoOnWikiBlacklist
|
Echo-blacklist | 社区维护的黑名单的页面位置在NS_MEDIAWIKI以内,每行包含一个用户名,不会触发通知。 设置null为禁用。 |
$wgEchoPerUserWhitelistFormat
|
%s/Echo-whitelist | NS_USER命名空间中每个用户通知代理白名单的位置的sprintf格式。 %s将替换为用户名。 白名单每行必须包含一个用户名,无论黑名单中是否存在,该用户名都将始终触发通知。 设置null 为禁用。
|
$wgEchoCrossWikiNotifications
|
false
|
是否启用跨wiki通知功能。 要启用此功能,您需要:
|
$wgEchoUseCrossWikiBetaFeature
|
false
|
跨wiki通知测试版功能的功能标志
如果是 这并不控制默认情况下是否启用跨wiki通知。
为此,使用 |
$wgEchoNotificationCategories
|
参见extension.json | 定义通知可以属于的类别。 可以为类别指定以下参数。 所有参数都是可选的:
如果通知类型没有类别参数,则会自动将其分配给优先级最低、没有首选项或可解雇性的 |
$wgEchoNotificationIcons
|
参见extension.json | 定义图标,即30x30大小的图像。 这被传递给BeforeCreateEchoEvent,这样扩展就可以用相同的结构定义自己的图标。 建议扩展名在其图标键前面加前缀。 myextension-name就是一个例子。 这将有助于避免命名空间冲突。
您可以使用路径或url,但不能同时使用两者。 “path”的值相对于 “url”的值应为url。 您应该自定义网站图标URL,即: |
$wgEchoNotifications
|
参见extension.json | 定义回显的事件类型。 事件定义的形式为“事件名称”=>[…]。
|
$wgEchoConfig
|
参见extension.json | 事件日志记录的配置。 可以禁用单个架构。 |
$wgEchoPerUserBlacklist
|
null
|
启用“每用户黑名单”的布尔值。 |
用户设置
参数设置 | 默认值 | 备注 |
---|---|---|
$wgDefaultUserOptions['echo-email-frequency']
|
0 | 默认情况下发送电子邮件的频率:
|
$wgDefaultUserOptions['echo-email-format']
|
取决于$wgAllowHTMLEmail
|
是否使用HTML或文本电子邮件的默认用户首选项 Either html or plain-text .
|
$wgDefaultUserOptions["echo-subscriptions-email-{$category}"]
|
大多数类别为false ;取决于
|
是否通过电子邮件通知特定类别的默认用户首选项 |
$wgDefaultUserOptions["echo-subscriptions-web-{$category}"]
|
大多数类别为true ;取决于
|
是否通过web通知特定类别的默认用户首选项 |
架构
请参阅功能页的架构部分 。
用法
通知负面清单/正面清单
偶尔会有特定的用户,通常是机器人,执行不应生成通知的维护任务。 为了处理这些情况,用户可以从LocalSettings.php文件(在WMF Wiki的情况下,则为InitialiseSettings.php)中被全局列入黑名单:
$wgEchoAgentBlacklist = [ 'SampleBot', 'SampleUser' ];
还有一个维基黑名单,可以由维基的社区维护。 全局在wiki黑名单上的位置默认为MediaWiki:Echo-blacklist。 个人用户可以通过创建白名单来覆盖黑名单。 白名单位置默认为Special:MyPage/Echo-whitelist。 维基列表上的所有人都希望每行收到一个特定于大小写的用户名,没有特殊的标记或前缀。 例如:
SampleBot SampleUser
“提及”选项
此扩展允许的通知类型之一是:“当有人链接到我的用户页面时通知我。” 对于一些用户来说,这可能并不明显,但只有当链接到另一个用户页面的人也在帖子上签名(~~~~)时,这种特定的通知才有效。
安装扩展后,将在用户的Special:Preferences页面中创建一个新选项卡“通知”。 在“通知我这些事件”一节下,在“提及”选项前,悬停框显示:“当有人链接到我的用户页面时通知我。” 如果管理员觉得在这个帮助文本中签署帖子的要求不明显,可以通过更改Wiki的MediaWiki:Echo-pref-tooltip-mention页面中的文本来修改。
术语
- notification - Echo发送的任何个人通知
- message - 关于Flow讨论中活动的通知
- alert - 除消息之外的任何通知
參見
- Notifications/API
- 手册:Echo - 有关提及要求的详细信息
- Extension:Echo/Creating a new notification type (当前)
- Notifications/Developer_guide (过时)
此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
此扩展在以下wiki农场/托管网站和/或软件包中提供: 這不是一份權威名單。 即使某些wiki农场/托管网站和/或软件包未在这里列出,它们也可能提供此扩展。 请检查你的wiki农场/托管网站或软件包以确认提供情况。 |