Extension:CentralNotice
|
CentralNotice Release status: stable |
||
|---|---|---|
| Implementation | Special page, API | |
| Description | Adds a central sitenotice | |
| Author(s) | Andrew Russell Green, Matthew Walker, Adam Roses Wight
Historical: Brion Vibber, Tomasz Finc, Trevor Parscal, Ryan Kaldari |
|
| License | GNU General Public License 2.0 or later | |
| Download | ||
|
||
|
||
|
||
|
Translate the CentralNotice extension if it is available at translatewiki.net |
||
| Check usage and version matrix; code metrics | ||
| Open tasks · Report a bug |
CentralNotice is the Mediawiki extension that delivers announcements (usually in the form of banners) to WMF wikis. It is used heavily by the Fundraising team to solicit donations, and for announcements of interest to Wikimedia communities and users. CentralNotice can target announcements by country, language, project, device and logged-in status.
This page has information for CentralNotice developers and wiki administrators who want to install CentralNotice on their own sites. To learn how to create and configure CentralNotice campaigns, please see Help:CentralNotice on Meta-Wiki. For information about the CentralNotice setup on the WMF's cluster, see CentralNotice on Wikitech.
CentralNotice allows central distribution of announcements to many wikis (called subscribing wikis) from a central wiki (the infrastructure wiki). If you only need to post messages to a single wiki, consider using Sitenotice instead.
Contents
Installation
Note: CentralNotice is developed, tested, and known to be deployed only on wikis that do not use table prefixing. If your setup uses table prefixing there is no guarantee this plugin will work. Please report any bugs to [1]
For all wikis
- Download the latest snapshot and extract it to your extensions directory.
- Add
or similar (depending on where your extension directory is located) to LocalSettings.php.
require_once( "$IP/extensions/CentralNotice/CentralNotice.php" );
The infrastructure wiki
- From the command line, go to the wiki root and run
php maintenance/update.php - Edit
LocalSettings.phpand set ...$wgNoticeInfrastructureto true$wgNoticeProjectsto be an array of projects that will subscribe to the central wiki. For examplearray( 'wikipedia', 'wiktionary' )
- By default the
sysopgroup is the only group with the ability to administer CentralNotice. If additional groups are needed, assign them thecentralnotice-adminandedit-interfacepermissions.
Subscribing wikis
Edit LocalSettings.php and set...
$wgNoticeInfrastructuretofalse;$wgNoticeProjectto be an entry in$wgNoticeProjects;$wgCentralHostto the protocol (potentially neutral) and domain of the central wiki. For example//meta.wikimedia.org;$wgCentralSelectedBannerDispatcherto the URL of Special:BannerLoader on the central wiki, for example://meta.wikimedia.org/w/index.php/Special:BannerLoader;- either
$wgCentralDBnameto the name of the infrastructure wiki's database, or$wgCentralNoticeApiUrlto the API endpoint of the infrastructure wiki; and $wgCentralBannerRecorderto the URL of Special:RecordImpression on the central wiki. For example://meta.wikimedia.org/w/index.php/Special:RecordImpression.
(For more information about these and other settings, please see CentralNotice.php.)
Getting help
The wikimedia fundraising team are the maintainers of CentralNotice. For questions about installation, bug reports, or usage of CentralNotice please send an email to wikitech-l@lists.wikimedia.org or join us on Freenode in channel #wikimedia-fundraising.
Permissions
centralnotice-admin— Permission required to modify campaigns and banners. Relevant only to the infrastructure wikis (see also bugzilla:26377).edit-interfaceis required to edit banner content.
Design concepts
From a user facing perspective, the high level CentralNotice objects are campaigns (a.k.a. notices) and banners (a.k.a. templates). These are affected by the back end concepts of selectors and allocation.
- Banner — a single block of translatable html/wikitext/css/javascript that will display at the top of
Manual:$wgContentNamespacespages. The user status, device type, UI language selectors are applied to banners.- Banners may be grouped by category. All banners in a category share user side cookies, such as the hiding cookie that is set when a user clicks a banner close button.
- Campaign — a collection of banners. The project, country and content language selectors apply at the campaign level. The system allows as many active campaigns at the same time as you want dynamically calculating an allocation for each banner in an active campaign. Campaigns are defined as active if the central wiki time is greater than the campaign start time, less than the campaign end time, and the campaign is marked as enabled.
- Banners in a campaign are assigned a bucket and weight. Buckets are yet another selector, and weight affects the relative allocation of banners inside a campaign.
- There are four priority levels in CentralNotice. Higher priority campaigns will get a greater allocation of page views.
- Campaigns may be locked which will prevent editing and deletion of the campaign; but not the banners inside a campaign.
- Selector — any property which may be filtered on for the purposes of allocation. This allows, for example, different banners to be shown to logged in versus logged out users in Argentina browsing Wikipedia in English.
- A selection vector is the complete set of selectors a user presents to the central wiki when requesting a banner.
- Allocation — The chance a banner will be shown to a user under a given selection vector.
Design documents
Usage
Full usage instructions can be found at meta:Help:CentralNotice.
New Banner
- Load Special:CentralNoticeBanners
- Click on the add banner link at the bottom of the page (must be logged in as an admin).
- Enter in a name and the raw HTML for the given banner.
- If this banner is going to be translated then enclose any text to be translated with triple parens - {{{FOO}}}.
- Submit
(TODO: move and expand this snippet)
- Each banner has its banner definition stored in MediaWiki:Centralnotice-template-<name>
- All of its messages are stored below the banner def ala MediaWiki:Centralnotice-template-<name>-<message>/<language_code>
New Campaign
- Load Special:CentralNotice
- Add a campaign with a given start time at the bottom portion of the page, leave a comment, and click submit.
- If this campaign is only run on a specific wiki and or language then select it from the pull downs.
- Click on the new campaign and add the banners you want within this running campaign and their respective weights.
- If all looks well then set this campaign to enabled and it will show at the corresponding time.
Overriding selection
Add any of the following URL parameters to preview a specific banner, defeat "diet" schemes, or debug pseudorandom banner selection.
- banner
- You can test a banner directly on any wiki by adding
?banner=<bannername>to the end of the URL.
- randomcampaign
- A decimal number between 0 and 1, to be used as the "random" seed for choosing a campaign.
- randombanner
- A decimal number between 0 and 1, to be used as the "random" seed for choosing a banner among banners available in the chosen campaign.
- country
- Override the country code, before filtering to geotargeted campaigns. Accepts two-character ISO 3166-1 codes.
- uselang
- Its usual meaning in MediaWiki, this determines which banners you may be shown. Beware of content language vs. user language.
- force
- Override any banner hiding code, show the banner.
- reset
- Zero out any cookies being used to customize banner display (e.g. delivered impression count).
For example,
http://en.wikipedia.org/wiki/Special:Random?banner=B14WMDE_141009_germany&uselang=en&force=1 https://it.wikisource.org/wiki/Speciale:RandomRootpage?randomcampaign=0.142
API
CentralNotice adds two API modules, centralnoticechoicedata and centralnoticequerycampaign. (The API module centralnoticeallocations was deprecated and removed in MediaWiki 1.25.)
| <translate> The following documentation is the output of <tvar |
action=centralnoticechoicedata
- This module requires read rights.
- Source: CentralNotice
- License: GPL-2.0+
Get data needed to choose a banner for a given project and language
- project
-
The project to get banner choice data for.
- This parameter is required.
- language
-
The language to get banner choice data for.
- This parameter is required.
- Get the data for choosing a banner for English Wikipedia users.
- api.php?action=centralnoticechoicedata&project=wikipedia&language=en [open in sandbox]
| <translate> The following documentation is the output of <tvar |
action=centralnoticequerycampaign
- This module requires read rights.
- Source: CentralNotice
- License: GPL-2.0+
Get all configuration settings for a campaign.
- campaign
-
Campaign name. Separate multiple values with a "|" (vertical bar).
- Default: (empty)
- Show campaign "Plea_US"
- api.php?action=centralnoticequerycampaign&format=json&campaign=Plea_US [open in sandbox]
See also
- Help:CentralNotice and Changes following refactoring (2015-09) on meta
- Extension:CentralNotice/Campaign and banner selection
- Extension:CentralNotice/Impression diet
- Extension:CentralNotice/Special:RecordImpression
- Extension:CentralNotice/Banner_mixins
- Requests_for_comment/CentralNotice Caching Overhaul - Frontend Proxy
- Extension:CentralNotice/Notes/Miscelaneous doc bits
- Extension:CentralNotice/Notes/Documentation rewrite
- Extension:CentralNotice/Notes/Campaign-associated_mixins_and_banner_history
- Extension:CentralNotice/Notes/Banner controller refactoring
- Other subpages of this page (warning: many are outdated)
| This extension is being used on one or more Wikimedia projects. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's CommonSettings.php and InitialiseSettings.php configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's Special:Version page. |
- GPL licensed extensions
- Stable extensions
- Special page extensions
- API extensions
- Extensions in Wikimedia version control
- Extensions which add rights
- BeforePageDisplay extensions
- LoadExtensionSchemaUpdates extensions
- MakeGlobalVariablesScript extensions
- SiteNoticeAfter extensions
- SkinAfterBottomScripts extensions
- UnitTestsList extensions
- User extensions
- All extensions
- Extensions used on Wikimedia
- Extensions for data exchange with other local wikis
- Fundraising

