Jump to content

Extension:Echo

本頁使用了標題或全文手工轉換
From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page is a translated version of the page Extension:Echo and the translation is 100% complete.
MediaWiki 1.44引入了内置的通知框架(见手册:通知),但您仍需要此扩展才能让用户看到通知。
MediaWiki扩展手册
Notifications
发行状态: 稳定版
实现 通知
描述 提供了一个wiki内部可以供其他扩展使用的通知系统。
作者
最新版本 持续更新
兼容性政策 快照跟随MediaWiki发布。 master分支不向后兼容。
数据库更改
虚拟域
  • virtual-echo
  • virtual-echo-shared
  • $wgAllowArticleReminderNotification
  • $wgEchoMaxNotificationAge
  • $wgEchoMaxMentionsCount
  • $wgEchoPerUserWhitelistFormat
  • $wgEchoPushMaxSubscriptionsPerUser
  • $wgEchoMentionOnChanges
  • $wgEchoPollForUpdates
  • $wgEchoBlockNotifications
  • $wgEchoUseJobQueue
  • $wgEchoBundleEmailInterval
  • $wgEchoEnableApiEvents
  • $wgEchoMentionsOnMultipleSectionEdits
  • $wgDefaultNotifyTypeAvailability
  • $wgEchoSecondaryIcons
  • $wgEchoCacheVersion
  • $wgEchoMaxUpdateCount
  • $wgEchoNotifiers
  • $wgEchoAgentBlacklist
  • $wgEchoSharedTrackingCluster
  • $wgEchoEnablePush
  • $wgEchoPerUserBlacklist
  • $wgEchoEmailFooterAddress
  • $wgEchoWatchlistNotifications
  • $wgNotifyTypeAvailabilityByCategory
  • $wgEchoMaxMentionsInEditSummary
  • $wgEchoNotifications
  • $wgEchoPushServiceBaseUrl
  • $wgEchoCluster
  • $wgEchoWatchlistEmailOncePerPage
  • $wgEchoNotificationCategories
  • $wgEchoMentionsInEditSummaryBots
  • $wgEchoEnableEmailBatch
  • $wgEchoNotificationIcons
  • $wgEchoSharedTrackingDB
  • $wgEchoSeenTimeCacheType
  • $wgEchoMentionStatusNotifications
  • $wgEchoCrossWikiNotifications
  • $wgEchoOnWikiBlacklist
  • manage-all-push-subscriptions
  • echo-create
  • echo-read-notifications
许可证 MIT License
下載
前往translatewiki.net翻譯Echo扩展
問題 开启的任务 · 报告错误

通知(Notifications)扩展,對於系统管理员和开发人员的代码和文档中历来称为Echo、提供了一个wiki内通知系统,为用户提供有关wiki上活动的警报(alert)和通知(notice),例如有其他用户在讨论页上提到他们、或者他们的某個编辑被复原。 其他MediaWiki扩展可以利用Notification发送自己的通知,Thanks(感谢) DiscussionTools(讨论工具) 就是两个這樣的扩展。

安装

此扩展随附于MediaWiki 1.40及更新版本,因此您無需下載它。 但其余的配置的指示仍须依循執行。
  • 数据库用户必须已被授予数据库的“REFERENCES”权限。 如何检查此内容取决于您首先如何设置数据库 。 例如,如果您使用了控制面板应用程序,则该界面应该提供一种方法来检查和更改数据库用户的权限(LocalSettings.php 中的$wgDBuser)。
  • 下载文件,并解压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作业中安排:

$ php ./maintenance/run.php Echo:processEchoEmailBatch

配置

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

有关更多详细信息,请参见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表示没有通知
$wgEchoMentionsInEditSummaryBots false 是否允許機器人帳戶在編輯摘要中提及使用者以觸發通知(受EchoMaxMentionsInEditSummary限制)
$wgEchoBundleEmailInterval 0 每个捆绑电子邮件之间的时间间隔(秒);为测试Wiki设置一个小数字。 如果不支持延迟队列,则应将其设置为0以禁用电子邮件绑定
$wgEchoNewMsgAlert true 是否为登录用户启用新的通话页面消息警报(alert)。
$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之间共享$wgMainStash和$wgMainWANCache
  • 配置$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通知特定类别的默认用户首选项

請注意,自MediaWiki 1.42起,某些預設使用者選項可能會被 $wgConditionalUserOptions 覆寫。 舉例來說,即使您將 $wgDefaultUserOptions['echo-subscriptions-email-mention'] = false; 設為預設值,對新使用者而言,此選項的預設值仍是 true,因為在Echo的 extension.json 中是如此宣告的。

架构

请参阅功能页的架构部分

用法

通知负面清单/正面清单

偶尔会有特定的用户,通常是机器人,执行不应生成通知的维护任务。 为了处理这些情况,用户可以从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) - 任何除消息之外的notification

參見