扩展:中央公告
CentralNotice 发行状态: 稳定版 |
|
---|---|
实现 | 特殊页面 , API |
描述 | Adds a central sitenotice |
作者 | Andrew Russell Green, Matthew Walker, Adam Roses Wight Formerly: Brooke Vibber, Tomasz Finc, Trevor Parscal, Ryan Kaldari |
最新版本 | 2.6.1 (continuous updates) |
兼容性政策 | 快照跟随MediaWiki发布。 master分支不向后兼容。 |
数据库更改 | 是 |
表 | cn_notices cn_assignments cn_templates cn_notice_languages cn_notice_projects cn_notice_countries cn_notice_regions cn_template_mixins cn_notice_mixins cn_notice_mixin_params cn_known_devices cn_template_devices cn_known_mobile_carriers cn_notice_mobile_carriers cn_notice_log cn_template_log |
许可协议 | GNU通用公眾授權條款2.0或更新版本 |
下載 | |
示例 | Special:CentralNotice on Meta (read-only) |
|
|
季度下載量 | 42 (Ranked 88th) |
正在使用的公开wiki数 | 1,012 (Ranked 228th) |
前往translatewiki.net翻譯CentralNotice扩展 | |
問題 | 开启的任务 · 报告错误 |
CentralNotice扩展会向维基媒体维基提供公告(通常以横幅形式)。 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 Wikimedia Foundation'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.
安裝
对于所有维基
- 下载最新快照并将提取到您的扩展目录中。
- 将以下内容添加到LocalSettings.php :
wfLoadExtension( 'CentralNotice' );
- By default, GeoIP lookup is disabled.
If the Geo
cookie is pre-populated, however, its value will be used. For local development, you can enable a client-side implementation that uses https://freegeoip.net as follows. For more information, see #GeoIP lookup.
$wgCentralNoticeGeoIPBackgroundLookupModule = 'ext.centralNotice.freegeoipLookup';
The infrastructure wiki
- From the command line, go to the wiki root and run
php maintenance/update.php
- 编辑
LocalSettings.php
并设置...$wgNoticeInfrastructure
为true
$wgNoticeProjects
to be an array of projects that will subscribe to the central wiki.
例如array( 'wikipedia', 'wiktionary' )
;
- By default the
sysop
group is the only group with the ability to administer CentralNotice.
If additional groups are needed, assign them the centralnotice-admin
and edit-interface
permissions.
Subscribing wikis
编辑LocalSettings.php
并设置...
$wgNoticeInfrastructure
至false
;$wgNoticeProject
为$wgNoticeProjects
的条目;
$wgCentralHost
to the protocol (potentially neutral) and domain of the central wiki.
例如//meta.wikimedia.org
;
$wgCentralSelectedBannerDispatcher
to the URL of Special:BannerLoader on the central wiki, for example://meta.wikimedia.org/w/index.php/Special:BannerLoader
;
- either
$wgCentralDBname
to the name of the infrastructure wiki's database, or$wgCentralNoticeApiUrl
to the API endpoint of the infrastructure wiki; and
$wgCentralBannerRecorder
to the URL of Special:RecordImpression on the central wiki.
例如//meta.wikimedia.org/w/index.php/Special:RecordImpression
;
Quick developer setup
For most development tasks, you can use a single wiki in both infrastructure and subscribing roles.
Following are sample lines to include in LocalSetting.php
.
(请参阅评论中的注释。)
wfLoadExtension( 'CentralNotice' );
$wgNoticeInfrastructure = true;
$wgNoticeProjects = array( 'centralnoticeproject' ); # 'centralnoticeproject' 可以是任何字符串
$wgNoticeProject = 'centralnoticeproject'; # 必须与上述相同
$wgCentralHost = 'localhost';
$wgCentralSelectedBannerDispatcher = 'http://localhost/mw/index.php?title=Special:BannerLoader';
$wgCentralDBname = 'databasename'; # 与$wgDBname相同
$wgCentralNoticeGeoIPBackgroundLookupModule = 'ext.centralNotice.freegeoipLookup';
All code that runs on subscribing wikis should be smoke-tested with 移动版前端 , to ensure they work on the mobile version of the site.
依赖性
Some CentralNotice features require other MediaWiki extensions, including EventLogging and 翻译 .
获取帮助
The WMF Fundraising tech team are the maintainers of CentralNotice. For questions about installation, bug reports, or usage of CentralNotice please send an email to the mailing list wikitech-l@lists.wikimedia.org or join us in the IRC channel #wikimedia-fundraising 在线.
权限
centralnotice-admin
— Permission required to modify campaigns and banners.
Relevant only to the infrastructure wikis (see also bugzilla:26377).
edit-interface
is required to edit banner content.
設計原則
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 手册:$wgContentNamespaces pages.
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.
设计文档
GeoIP lookup
By default, CentralNotice has no client-side GeoIP lookup service configured.
This is optimised for the Wikimedia Foundation production configuration where Varnish populates the Geo
cookie from the server-side.
(參見 wikitech:Geolocation。)
You can configure CentralNotice to use a custom data source client-side through the CentralNoticeGeoIPBackgroundLookupModule
configuration variable.
This variable expects the name of a ResourceLoader module that exports a function.
The function will be called without parameters and should return a Promise that resolves with an object containing the following properties:
- country: string - Two-letter country code.
- region: string - Implementation specific.
- city:字符串-城市名称。
- lat(纬度):数字。
- 经度:数字。
用法
完整的使用说明位于meta:Help:CentralNotice。
新横幅
- 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 defined in MediaWiki:Centralnotice-template-<name>-<message>/<language_code>
New Campaign
- 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).
例如,
Debugging problematic banners
If there is a problematic banner in the page, you can identify which banner is active by opening your developer console and inspecting the value of: mw.centralNotice.bannerData.bannerName
.
限制
Banners do not display on pages in the Special
namespace, as well as edit pages and diff pages.
API
CentralNotice adds two API modules, centralnoticechoicedata
and centralnoticequerycampaign
.
(The API module centralnoticeallocations was deprecated and removed in MediaWiki 1.25.)
以下文档是Special: |
action=centralnoticechoicedata
- This module requires read rights.
- Source: CentralNotice
- License: GPL-2.0-or-later
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]
以下文档是Special: |
action=centralnoticequerycampaign
- This module requires read rights.
- Source: CentralNotice
- License: GPL-2.0-or-later
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]
參見
- 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/Statuses, reasons and status codes
- 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
- 此页面的其他子页面 (注:许多已过时)
此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
此扩展在以下wiki农场/托管网站和/或软件包中提供: 這不是一份權威名單。 即使某些wiki农场/托管网站和/或软件包未在这里列出,它们也可能提供此扩展。 请检查你的wiki农场/托管网站或软件包以确认提供情况。 |
- Stable extensions/zh
- Special page extensions/zh
- API extensions/zh
- GPL licensed extensions/zh
- Extensions in Wikimedia version control/zh
- CanonicalNamespaces extensions/zh
- ChangeTagsListActive extensions/zh
- GetPreferences extensions/zh
- ListDefinedTags extensions/zh
- LoadExtensionSchemaUpdates extensions/zh
- PreferencesGetIcon extensions/zh
- ResourceLoaderRegisterModules extensions/zh
- SkinTemplateNavigation::Universal extensions/zh
- UserMergeAccountFields extensions/zh
- All extensions/zh
- Extensions used on Wikimedia/zh
- Extensions included in Miraheze/zh
- Extensions included in WikiForge/zh
- Extensions for data exchange with other local wikis/zh
- Extensions supporting fundraising and donations/zh
- Fundraising/zh