Jump to content

Extension:Echo

From mediawiki.org
This page is a translated version of the page Extension:Echo and the translation is 100% complete.
此扩展随附于MediaWiki 1.40及更高版本。 因此您无需另外下载。 但是,您仍需遵循此页面提供的其他使用说明。
MediaWiki扩展手册
Notifications
发行状态: 稳定版
实现 通知
描述 提供了一个wiki内部可以供其他扩展使用的通知系统。
作者
最新版本 持续更新
兼容性政策 快照跟随MediaWiki发布。 master分支不向后兼容。
MediaWiki >= 1.43
数据库更改
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授權條款
下載
  • $wgEchoNotificationCategories
  • $wgEchoMaxMentionsCount
  • $wgEchoPerUserWhitelistFormat
  • $wgEchoPushMaxSubscriptionsPerUser
  • $wgEchoMentionOnChanges
  • $wgEchoPollForUpdates
  • $wgEchoUseJobQueue
  • $wgEchoBundleEmailInterval
  • $wgEchoEnableApiEvents
  • $wgEchoMentionsOnMultipleSectionEdits
  • $wgDefaultNotifyTypeAvailability
  • $wgEchoSecondaryIcons
  • $wgEchoCacheVersion
  • $wgEchoMaxUpdateCount
  • $wgEchoNotifiers
  • $wgEchoAgentBlacklist
  • $wgEchoSharedTrackingCluster
  • $wgEchoEnablePush
  • $wgEchoPerUserBlacklist
  • $wgEchoEnableEmailBatch
  • $wgEchoWatchlistNotifications
  • $wgNotifyTypeAvailabilityByCategory
  • $wgEchoMaxMentionsInEditSummary
  • $wgEchoNotifications
  • $wgEchoCluster
  • $wgEchoPushServiceBaseUrl
  • $wgEchoWatchlistEmailOncePerPage
  • $wgAllowArticleReminderNotification
  • $wgEchoNotificationIcons
  • $wgEchoSharedTrackingDB
  • $wgEchoOnWikiBlacklist
  • $wgEchoSeenTimeCacheType
  • $wgEchoMentionStatusNotifications
  • $wgEchoCrossWikiNotifications
  • $wgEchoEmailFooterAddress
  • manage-all-push-subscriptions
  • echo-create
季度下載量 128 (Ranked 45th)
正在使用的公开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' );
    
  • 运行更新脚本,它将自动创建此扩展必须依赖的数据库表。
  • 在您方便的时候配置即可
  • Yes 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。

为了允许每天或每周通过邮件发送摘要通知(对于在首选项中选择的用户),Echo扩展目录中的以下脚本需要每天运行,可以在cron作业中安排:

maintenance/processEchoEmailBatch.php

配置

可以使用条件用户选项 为新用户设置不同的通知首选项,而不影响现有用户。

有关更多详细信息,请参见Special:DisplayNotificationsConfiguration

参数

配置设置(默认值在extension.json中定义)
参数 默认值 备注
$wgEchoEnableEmailBatch true 是否打开电子邮件批处理功能
$wgEchoUseJobQueue false
  • true - 通过作业队列延迟web和电子邮件通知传递。
  • 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通知功能。 要启用此功能,您需要:
  • 为全球用户系统提供CentralAuth (T243412)
  • 在Wiki之间共享1美元和2美元
  • 配置$wgEchoSharedTrackingDB
$wgEchoUseCrossWikiBetaFeature false 跨wiki通知测试版功能的功能标志

如果是true,则跨wiki通知首选项将显示在BetaFeatures部分。 如果这是false,它将显示在“通知”部分。

这并不控制默认情况下是否启用跨wiki通知。 为此,使用$wgDefaultUserOptions['echo-cross-wiki-notifications'] = true;

$wgEchoNotificationCategories 参见extension.json 定义通知可以属于的类别。 可以为类别指定以下参数。 所有参数都是可选的:
  • priority - 控制通知在首选项和批处理电子邮件中显示的顺序。 优先级范围从1到10。 如果未指定优先级,则默认为最低的10。
  • no-dismiss - 禁用类别中通知的可驳回性。 它可以设置为输出格式的数组(请参阅$wgEchoNotifiers),也可以设置为包含“all”的数组。
  • usergroups - 指定有资格在类别中接收通知的用户组的数组。 如果未指定usergroups参数,则所有组都符合条件。

如果通知类型没有类别参数,则会自动将其分配给优先级最低、没有首选项或可解雇性的other类别。

$wgEchoNotificationIcons 参见extension.json 定义图标,即30x30大小的图像。 这被传递给BeforeCreateEchoEvent,这样扩展就可以用相同的结构定义自己的图标。 建议扩展名在其图标键前面加前缀。 myextension-name就是一个例子。 这将有助于避免命名空间冲突。

您可以使用路径或url,但不能同时使用两者。 “path”的值相对于$wgExtensionAssetsPath

“url”的值应为url。

您应该自定义网站图标URL,即: $wgEchoNotificationIcons['site']['url']

$wgEchoNotifications 参见extension.json 定义回显的事件类型。 事件定义的形式为“事件名称”=>[…]。
  • category - 定义事件所属的类别。 默认值为“'other'”。
  • group - 默认值为“'neutral'”。
  • bundle - 定义哪些输出格式可用于绑定。
  • presentation-model - 定义哪个类用于呈现通知面板、特殊页面和电子邮件的通知消息和链接。 它必须延长EchoEventPresentationModel
$wgEchoConfig 参见extension.json 事件日志记录的配置。 可以禁用单个架构。
$wgEchoPerUserBlacklist null 启用“每用户黑名单”的布尔值。


用户设置

首选项设置(默认值以extension.json定义)
参数设置 默认值 备注
$wgDefaultUserOptions['echo-email-frequency'] 0 默认情况下发送电子邮件的频率:
  • 0 - 每次收到通知时发送电子邮件(默认)
  • -1 - 不要发邮件
  • 1 - 每天
  • 7 - 每7天
  • ...
$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 - 除消息之外的任何通知

參見