Phabricator のプロジェクト名 #Echo

Extension:Echo

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:Echo and the translation is 70% complete.
Other languages:
English • ‎dansk • ‎español • ‎français • ‎русский • ‎中文 • ‎日本語 • ‎한국어
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
Echo
リリースの状態: 安定
Screenshot of Echo notification extension.png
実装 通知
説明 ウィキ内で他の拡張機能が使用する通知システムを提供。
作者
最新バージョン 継続的な更新
互換性ポリシー リリースブランチ
MediaWiki 1.32+. Echo の master は、コアの master と使用する場合のみサポートされています。それ以外の場合は、一致するブランチ(例:REL1_31 と コアREL1_31、あるいは一致する WMF リリースブランチ)を使用してください。
データベースの変更 はい
テーブル echo_email_batch
echo_event
echo_notification
echo_target_page
ライセンス MIT ライセンス
ダウンロード
  • $wgEchoEnableEmailBatch
  • $wgEchoUseJobQueue
  • $wgEchoEmailFooterAddress
  • $wgNotificationSenderName
  • $wgNotificationReplyName
  • $wgEchoCluster
  • $wgEchoSharedTrackingDB
  • $wgEchoSharedTrackingCluster
  • $wgEchoSectionTransition
  • $wgEchoBundleTransition
  • $wgEchoMaxUpdateCount
  • $wgEchoMaxMentionsCount
  • $wgEchoMentionStatusNotifications
  • $wgEchoMentionsOnMultipleSectionEdits
  • $wgEchoMentionOnChanges
  • $wgEchoBundleEmailInterval
  • $wgEchoNewMsgAlert
  • $wgEchoShowFooterNotice
  • $wgEchoNoticeURL
  • $wgDefaultNotifyTypeAvailability
  • $wgNotifyTypeAvailabilityByCategory
  • $wgEchoNotifiers
  • $wgEchoAgentBlacklist
  • $wgEchoOnWikiBlacklist
  • $wgEchoPerUserWhitelistFormat
  • $wgEchoCrossWikiNotifications
  • $wgEchoUseCrossWikiBetaFeature
  • $wgEchoNotificationCategories
  • $wgEchoNotificationIcons
  • $wgEchoNotifications
  • $wgEchoCacheVersion
  • $wgEchoEventLoggingVersion
  • $wgEchoEventLoggingSchemas
translatewiki.net で翻訳を利用できる場合は、Echo 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。
問題点 未解決のタスク · バグを報告

Echo 拡張機能は、他の拡張機能から使用可能なウィキ内通知システムを提供します。 Thanks StructuredDiscussions は、Echo を使用する2つの MediaWiki 拡張機能です。 この拡張機能が行うことについての完全な説明は、Notifications を参照してください。

ダウンロード

拡張機能は、Git から直接取得できる場合があります [?]:

  • コードを参照
  • 一部の拡張機能には安定版リリースのタグがあります。
    • タグを参照
    • タグを選択します
    • 「スナップショット」をクリックします
  • 各ブランチは過去の MediaWiki リリースと関連付けられています。 最新のアルファ バージョンを含む「master」ブランチもあります (MediaWiki のアルファ バージョンが必要な場合用)。

スナップショットを展開して、MediaWiki インストレーション内の extensions/Echo/ ディレクトリに配置します。

git に馴染みがあり、かつサーバーにシェルでアクセスできる場合は、拡張機能を以下のようにして取得することもできます:

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

インストール

  • ダウンロードして、ファイルを extensions/ フォルダー内の Echo という名前のディレクトリ内に配置します。

MediaWiki 1.28 以前を稼働させている利用者へ:

上記の手順では、wfLoadExtension() を使用してこの拡張機能をインストールする新しい方法を記載しています。 この拡張機能をこれらの過去のバージョン (MediaWiki 1.28 以前) にインストールする必要がある場合は、wfLoadExtension( 'Echo' ); の代わりに以下を使用する必要があります:

require_once "$IP/extensions/Echo/Echo.php";

設定

既定の利用者設定に加え、アカウント作成時の利用者設定変更に AddNewAccount フックを使用することもできます。 これにより、既存の利用者に影響を及ぼさずに、異なる利用者設定を適用することが可能です。

アップグレード時にはリリースノートを参照してください。

ローカルの詳細情報はSpecial:DisplayNotificationsConfigurationをご参照ください。

構成設定(既定値は extension.json で定義)
パラメーター 既定 コメント
$wgEchoEnableEmailBatch true 電子メール経由のバッチ機能を有効にするか
$wgEchoUseJobQueue false
  • true: ジョブキュー経由でウェブ上とeメールの通知を使い分け
  • false: 通知を随時、送信
$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」メッセージ (MediaWiki) 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 これが false に設定されている場合、メインデータベースを使用します。特定の外部データベースを使用する場合は、$wgExternalServers で定義されているいずれかのキーを使用してください。
$wgEchoSharedTrackingDB false ウィキを横断した未読通知の追跡に使用する共有データベース。false にすると、それらの追跡を一切行いません。
$wgEchoSharedTrackingCluster false 共有された追跡データベースが存在するクラスタ。メインクラスタに存在する場合は false にします。 $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 nubmer 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.
$wgEchoShowFooterNotice false Whether or not to show the footer feedback notice in the notifications popup
$wgEchoFooterNoticeURL '' A URL for the survey that appears in the footer feedback notice in the notification popup
$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 a global user system (e.g. CentralAuth or a shared user table)
  • 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.
$wgDefaultUserOptions['echo-show-alert'] true Default user preference for showing the special talk page alert bar
$wgDefaultUserOptions['echo-email-frequency'] 0 How often to send emails, by default. By default, send emails for each notification as they come in
$wgDefaultUserOptions['echo-dismiss-feedback-alert'] 0 Ensures the feedback alert is visible by default. Do not change; to disable, use $wgEchoShowFooterNotice .
$wgDefaultUserOptions['echo-email-format'] Depends on $wgAllowHTMLEmail Default user preference for whether to use HTML or text email
$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
$wgEchoConfig See extension.json Configuration for EventLogging. Individual schemas can be disabled.
$wgEchoPerUserBlacklist null Boolean that enabled Per User Blacklist.

アーキテクチャ

機能ページのアーキテクチャ節 を参照してください。

使用法

Notification blacklist/whitelist

There are occasionally specific users, typically bots, which perform maintenance tasks that should not generate notifications. To handle these cases, users can be globally blacklisted from the LocalSettings.php file (or InitialiseSettings.php in the case of WMF wikis):

 $wgEchoAgentBlacklist = [ 'GonzoBot', 'CrazyGuy' ];

There is also an on-wiki blacklist that can be maintained by the wiki's community. The location of the global on-wiki blacklist defaults to MediaWiki:Echo-blacklist. Individual users can override the blacklist by creating a whitelist. The whitelist location defaults to Special:MyPage/Echo-whitelist. All on-wiki lists expect to receive one case-specific username per line with no special markup or prefixes. For example:

GonzoBot
CrazyGuy
"Mention" option

One of the notification types that this extension allows is: "Notify me when someone links to my user page." It might not be obvious to some users, but this particular notification only works when the person linking to another user's page also signs (~~~~) the post.

After installation of the extension, a new tab "Notifications" is created in a user's Special:Preferences page. Under the section "Notify me about these events", in front of the "Mention" option, the hoverbox states: "Notify me when someone links to my user page." If an administrator feels, that the requirement for signing the post isn't obvious in this help text, it can be modified by changing the text in the Wiki's MediaWiki:Echo-pref-tooltip-mention page.

(Tested on MediaWiki v1.26.2 on March 15, 2016)

用語

  • 通知(notification) - Echo によって届けられる個々の通知
  • メッセージ(message) - Flow の議論における活動についての通知
  • アラート(alert) - メッセージ以外の通知

関連項目