Jump to content

Extension:Echo

From DawoumWiki, the free Mathematics self-learning
이 확장은 미디어위키 1.40과 그 이후 버전과 함께 제공됩니다. 따라서 여러분은 그것을 다시 다운로드할 필요가 없습니다. 어쨌든, 여러분은 여전히 제공된 다른 지침을 따라야 합니다.

Notifications 확장은, 역사적으로 시스템 관리자와 개발자를 위한 코드와 문서에서 Echo라고 불리며, 위키-내 알림 시스템을 제공하여 사용자에게 위키에서의 활동에 대한 경고와 공지를 제공합니다. 예를 들어, 다른 사용자가 토론 페이지에서 언급하거나 편집한 내용이 되돌려지는 경우입니다. 다른 미디어위키 확장은 Notifications를 사용하여 자체 알림을 보낼 수 있습니다. Extension:Thanks Extension:DiscussionTools 는 그러한 두 가지 확장입니다.

Installation

데이터베이스 사용자는 데이터베이스에 대한 "REFERENCES" 권한을 부여받아야 합니다. 이를 확인하는 방법은 처음에 데이터베이스를 설정한 방법에 따라 달라집니다. 예를 들어, 제어판 응용 프로그램을 사용했으면, 해당 인터페이스는 데이터베이스 사용자 (LocalSettings.php 에서 $wgDBuser)의 권한을 확인하고 변경하는 방법을 제공해야 합니다.

미디어위키 확장 내려받기 지면에서 해당하는 버전을 다운로드하고 위키의 extensions 디렉토리에 Echo에 푸십시오.

또는 개발자와 코드 기여자는 대신 다음을 사용하여 Git에서 확장 프로그램을 설치해야 합니다.

cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo

미디어위키 설정 LocalSettings.php에 다음을 추가하십시오:

wfLoadExtension( 'Echo' );

이 확장에 필요한 필수 데이터베이스 테이블을 자동으로 생성하는 업데이트 스크립트를 실행하십시오:

cd /var/www/html/w
php maintenance/run.php ./maintenance/update.php

필요하다면, 설정하십시오.

Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인하십시오.

매일 또는 매주 요약 알림을 메일로 받을 수 있게 하기 위해 (환경 설정에서 해당 옵션을 선택한 사용자를 위해), Echo 확장 디렉터리에 있는 다음 스크립트를 매일 실행해야 하며, 이는 cron 작업으로 예약할 수 있습니다:

maintenance/processEchoEmailBatch.php

Configuration

기존 사용자에게 영향을 주지 않고 새 사용자에 대해 다른 알림 환경 설정을 지정하기 위해 조건부 사용자 옵션 을 사용할 수 있습니다.

지역적 세부정보에 대해 Special:DisplayNotificationsConfiguration을 참조하십시오.

Parameters

Configuration settings (defaults defined in extension.json)
Parameter Default Comment
$wgEchoEnableEmailBatch true Whether to turn on email batch function
$wgEchoUseJobQueue false
  • true - Defer web and email notification delivery via job queue.
  • false - Deliver notifications immediately
$wgEchoEmailFooterAddress '' The organization address (or whatever text you want to appear in the footer of the email notifications). Should be defined in LocalSettings.php
$wgNotificationSender $wgPasswordSender The email address for both "from" and "reply to" on email notifications. Should be defined in LocalSettings.php
$wgNotificationSenderName "emailsender" message (DawoumWiki) Name for "from" on email notifications. Should be defined in LocalSettings.php
$wgNotificationReplyName No Reply Name for "reply to" on email notifications. Should be defined in LocalSettings.php
$wgEchoCluster false Use the main db if this is set to false, to use a specific external db, just use any key defined in $wgExternalServers
$wgEchoSharedTrackingDB false Shared database to use for keeping track of cross-wiki unread notifications; false to not keep track of it at all
$wgEchoSharedTrackingCluster false Cluster the shared tracking database is located on; false if it is on the main one. Must be a key defined in $wgExternalServers
$wgEchoMaxUpdateCount 2000 The max number of notifications allowed for a user to do a live update, this is also the number of max notifications allowed for a user to have.
$wgEchoMaxMentionsCount 50 The max number of mention notifications allowed for a user to send at once
$wgEchoMentionStatusNotifications false Enable mention success/failure notifications
$wgEchoMentionsOnMultipleSectionEdits true Trigger mentions for multiple-section edits
$wgEchoMentionOnChanges true Trigger mentions for edits to existing comments, as long as a signature is added in the same section
$wgEchoMaxMentionsInEditSummary 0 Maximum number of users that will be notified that they were linked from an edit summary or 0 for no notifications
$wgEchoBundleEmailInterval 0 The time interval between each bundle email in seconds; set a small number for test wikis. This should be set to 0 to disable email bundling if there is no delay queue support
$wgEchoNewMsgAlert true Whether or not to enable a new talk page message alert for logged in users.
$wgNotifyTypeAvailabilityByCategory
[
	// Otherwise, a user->user email could trigger an additional redundant notification email.
	'emailuser' => [
		'web' => true,
		'email' => false,
	],
	'mention-failure' => [
		'web' => true,
		'email' => false,
	],
	'mention-success' => [
		'web' => true,
		'email' => false,
	],
]
Define which notify types are available for each notification category. If any notify types are omitted, it defaults to $wgDefaultNotifyTypeAvailability.
$wgEchoNotifiers
[
	'web' => [ 'EchoNotifier', 'notifyWithNotification' ],
	'email' => [ 'EchoNotifier', 'notifyWithEmail' ],
]
Definitions of the different types of notification delivery that are possible. Each definition consists of a class name and a function name. See also EchoNotificationController class.
$wgEchoAgentBlacklist [] List of usernames which will not trigger notifications
$wgEchoOnWikiBlacklist Echo-blacklist Page location of community maintained blacklist within NS_MEDIAWIKI containing one username per line which will not trigger notifications. Set to null to disable.
$wgEchoPerUserWhitelistFormat %s/Echo-whitelist An sprintf format of the location of the per-user notification agent whitelist within the NS_USER namespace. %s will be replaced with the users name. The whitelists must contain one username per line which will always trigger notifications regardless of their existence in the blacklists. Set to null to disable.
$wgEchoCrossWikiNotifications false Whether to enable the cross-wiki notifications feature. To enable this feature you need to:
  • have CentralAuth for a global user system (T243412)
  • have $wgMainStash and $wgMainWANCache shared between wikis
  • configure $wgEchoSharedTrackingDB
$wgEchoUseCrossWikiBetaFeature false Feature flag for the cross-wiki notifications beta feature

If this is true, the cross-wiki notifications preference will appear in the BetaFeatures section. If this is false, it'll appear in the Notifications section instead.

This does not control whether cross-wiki notifications are enabled by default. For that, use $wgDefaultUserOptions['echo-cross-wiki-notifications'] = true;

$wgEchoNotificationCategories See extension.json Define the categories that notifications can belong to. Categories can be assigned the following parameters. All parameters are optional:
  • priority - controls the order in which notifications are displayed in preferences and batch emails. Priority ranges from 1 to 10. If the priority is not specified, it defaults to 10, which is the lowest.
  • no-dismiss - disables the dismissability of notifications in the category. It can either be set to an array of output formats (see $wgEchoNotifiers) or an array containing 'all'.
  • usergroups - specifies an array of usergroups eligible to receive the notifications in the category. If no usergroups parameter is specified, all groups are eligible.

If a notifications type doesn't have a category parameter, it is automatically assigned to the other category which is lowest priority and has no preferences or dismissibility.

$wgEchoNotificationIcons See extension.json Defines icons, which are 30x30 images. This is passed to BeforeCreateEchoEvent so extensions can define their own icons with the same structure. It is recommended that extensions prefix their icon key. An example is myextension-name. This will help avoid namespace conflicts.

You can use either a path or a url, but not both. The value of 'path' is relative to $wgExtensionAssetsPath.

The value of 'url' should be a URL.

You should customize the site icon URL, which is: $wgEchoNotificationIcons['site']['url']

$wgEchoNotifications See extension.json Define the event types for echo. Event definitions are in the form of 'event-name' => [ ... ].
  • category - defines the category the event belongs to. Defaults to 'other'.
  • group - defaults to 'neutral'.
  • bundle - define which output formats are available for bundling.
  • presentation-model - define which class is used to render notification messages and links for notification panels, special page and emails. It must extend EchoEventPresentationModel.
$wgEchoConfig See extension.json Configuration for EventLogging. Individual schemas can be disabled.
$wgEchoPerUserBlacklist null Boolean that enabled Per User Blacklist.


User preferences

Preference settings (defaults defined in extension.json)
Preference Default Comment
$wgDefaultUserOptions['echo-email-frequency'] 0 How often to send emails, by default:
  • 0 - send emails for each notification as they come in (default)
  • -1 - do not send emails
  • 1 - each day
  • 7 - each 7 days
  • ...
$wgDefaultUserOptions['echo-email-format'] Depends on $wgAllowHTMLEmail Default user preference for whether to use HTML or text email. Either html or plain-text.
$wgDefaultUserOptions["echo-subscriptions-email-{$category}"] false for most categories; depends Default user preference for whether to notify via email for a particular category
$wgDefaultUserOptions["echo-subscriptions-web-{$category}"] true for most categories; depends Default user preference for whether to notify via web for a particular category

Architecture

기능 페이지의 아키텍처 섹션 를 참조하십시오.

Usage

Notification negative list / positive list

간혹 특정 사용자가, 전형적으로 봇들, 알림을 생성하지 않아야 하는 유지 관리 작업을 수행합니다. 이러한 경우를 처리하기 위해서는, 사용자는 LocalSettings.php 파일(또는 WMF wiki의 경우에는 InitialiseSettings.php)에서 전역으로 블랙리스트에 올릴 수 있습니다:

$wgEchoAgentBlacklist = [ 'SampleBot', 'SampleUser' ];

또한 위키 커뮤니티에서 유지할 수 있는 위키 블랙리스트가 있습니다. 전역 위키 블랙리스트의 위치는 기본적으로 MediaWiki:Echo-blacklist입니다. 개별 사용자는 허용 목록을 만들어 블랙리스트를 무시할 수 있습니다. 화이트리스트 위치는 기본적으로 mw:Special:MyPage/Echo-whitelist로 설정됩니다. 모든 on-wiki 목록은 특별한 마크-업이나 접두어없이 한 줄에 하나의 사례-별 사용자 이름을 받을 것으로 기대합니다. 예를 들어:

SampleBot
SampleUser

"Mention" option

이 확장 프로그램에서 허용하는 알림 유형 중 하나가 있습니다: "Notify me when someone links to my user page." 일부 사용자에게는 분명하지 않을 수도 있지만, 이 특정 알림은 다른 사용자의 페이지에 링크하는 사람이 게시물에 서명 (~~~~)하는 경우에만 작동합니다.

확장 프로그램을 설치 한 후, 사용자의 Special:Preferences 페이지에 새 탭 "Notifications"이 생성됩니다. "Mention" 선택사항 앞의 "Notify me about these events" 섹션에서 호버 박스는 말합니다: "Notify me when someone links to my user page." 만약 관리자가 이 도움말 텍스트에서 게시물 서명 요구 사항이 명확하지 않은 것으로 판단되면 Wiki의 MediaWiki:Echo-pref-tooltip-mention 페이지의 텍스트를 변경하여 수정할 수 있습니다.

Terminology

  • notification - Any individual notice that is delivered by Echo
  • message - A notification about activity in a Flow discussion
  • alert - Any notification other than a message

See also