-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathREADME
232 lines (191 loc) · 10.4 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
CentralNotice allows central distribution of small bits of translatable content
(a.k.a banners) to subscribing wikis from one central infrastructure wiki.
Configuration
==========
* $wgNoticeProject is used for targeting campaigns to specific wikis. It
should be overridden on each wiki with the appropriate value.
Actual user language (wgUserLanguage) is used for banner localisation.
Default: "wikipedia"
* $wgNoticeProjects: List of available projects.
Default: []
* $wgNoticeInfrastructure: Enable the campaign hosting infrastructure on this wiki...
Set to false for wikis that only use a sister site for the control.
Default: true
* $wgCentralDBname: The name of the database which hosts the centralized
campaign data. If false, we will default to using the primary database.
Default: false
* $wgCentralBannerRecorder: URL which is hit after a banner is loaded, for
compatibility with analytics.
Default: false
* $wgCentralNoticeSampleRate: Sample rate for recording impressions to the
above URL.
Default: 1 / 100
* $CentralNoticeImpressionEventSampleRate: Sample rate for recording impressions
using EventLogging (meant to supersede custom URL for impression recording).
Default: 0
* $wgCentralHost: Protocol and host name of the wiki that hosts the
CentralNotice infrastructure, for example "//meta.wikimedia.org". This is
used for DNS prefetching.
Default: false
* $wgCentralNoticeApiUrl: The API path on the wiki that hosts the CentralNotice
infrastructure, for example "http://meta.wikimedia.org/api.php".
This must be set if you enable the selection of banners on the client and you
don't have direct access to the infrastructure database (see
$wgCentralDBname). Note that when this is set, it will override your
database settings.
Default: false
* $wgCentralSelectedBannerDispatcher: URL for BannerLoader, for requests to
fetch a banner that is already known (using the "banner" URL param). If
false, it will default to Special:BannerLoader. Note: Ugly URL format is allowed,
but no other URL parameters or fragment identifiers may be used.
Default: false
* $wgCentralMobileSelectedBannerDispatcher: URL for BannerLoader on Mobile
sites. See $wgCentralSelectedBannerDispatcher. If false, and if
MobileFrontEnd is enabled for this site, this defaults to the same
value as $wgCentralSelectedBannerDispatcher. (This is a temporary
solution; see bug T156847.).
Default: false
* $wgCentralNoticeLoader: Enable the loader itself
Allows control over the loader visibility, without destroying infrastructure
for cached content
Default: true
* $wgNoticeBannerPreview: URL prefix where banner screenshots are stored. False
if this feature is disabled. meta.wikimedia.org CentralNotice banners are
archived at "http://fundraising-archive.wmflabs.org/banner/".
Default: false
* $wgNoticeCookieDomain: Domain to set global cookies for.
Example: ".wikipedia.org"
Default: ""
* $wgNoticeCookieDurations: How long to respect different types
of banner hiding cookies, in seconds. bannerController.js selects one of
these entries based on the cookie's "reason" element and adds that to the
cookie's "created" element to determine when to stop hiding the banner.
Default: array(
// The amount of time banners will be hidden by the close box.
// Defaults to two weeks.
'close' => 1209600,
// Amount of time the banners will hide after a successful donation.
// Defaults to one year.
'donate' => 31536000
);
* $wgCentralNoticeFallbackHideCookieDuration: Fallback hide cookie duration,
for hide reasons without an entry in $wgNoticeCookieDurations, if no duration
is specified in the request to Special:HideBanners.
Note: This is just to keep things running in an unexpected edge case. It is
recommended that this value not be intentionally relied on by banners.
Default: 604800
* $wgNoticeHideUrls: Locations of Special:HideBanner targets to hit
when a banner close button is pressed. The hides will then be specific to
each domain specified by $wgNoticeCookieDomain on that wiki.
If CentralNotice is only enabled on a single wiki, or if cross-wiki hiding is
not desired, the leave this as array(). Page code will always hide a banner
by setting a cookie for that wiki's domain.
Default: array()
* $wgCentralNoticeHideBannersP3P: A string to use in a P3P privacy policy
header set by Special:HideBanners. The header is needed to make IE keep
third-party cookies in default privacy mode. If this is set to false, a
default invalid policy containing the URL of Special:HideBanners/P3P will be
used, and that subpage will contain a short explanation.
Default: false
* $wgNoticeBannerMaxAge: Server-side banner cache timeout, in seconds, for
anonymous users.
Default: 600
* $wgNoticeBannerReducedMaxAge: Reduced server-side banner cache timeout, in
seconds, for anonymous users, when SpecialBannerLoader catches an exception.
We lower the expiry in the hope that the error will go away the next time this
resource is requested.
* $wgNoticeUseTranslateExtension: Whether to use the Translation extension for
banner message translation
Default: false
* $wgNoticeUseLanguageConversion: Whether to disable variant languages and use
an automatically converted version of banners fetched from their parent
language (zh for zh-cn, for example) instead.
Default: false
* $wgNoticeProtectGroup: *** Deprecated, see $wgCentralNoticeMessageProtectRight.
Default: false
* $wgNoticeTranslateDeployStates: When using the group review feature of the
translate extension, only message groups with these group review states will
be deployed -- e.g. copy from the CNBanners namespace to the MW namespace.
This requires that anyone who can assign this state much have site-edit
permissions.
Default: [ "published" ]
* $wgNoticeNumberOfBuckets: Number of buckets that are provided to choose from--
this must be a power of two! It must not also be greater than 9 unless a
schema change is performed. Right now this column is tinyint(1)
Default: 4
* $wgNoticeNumberOfControllerBuckets: We can tell the controller to only assign
buckets from 0 .. to this variable. This allows us to serve banners only to
people who meet certain criteria (ie: banners place people in certain buckets
after events happen.)
Default: 2
* $wgNoticeBucketExpiry: How the legacy global bucket cookie for legacy global
buckets will last, in days.
Default: 7
* $wgCentralNoticePerCampaignBucketExtension: Extra time to keep per-campaign
buckets after a campaign has ended, in days.
Default: 30
* $wgCentralNoticeCategoriesUsingLegacy: Temporary measure: Campaigns whose
banners are all set to this category will use some legacy mechanisms
(especially cookies instead of the KVStore).
TODO Fix and remove!
Default: [ "Fundraising", "fundraising" ]
* $wgCentralNoticeBannerMixins: Available banner mixins
See https://www.mediawiki.org/wiki/Extension:CentralNotice/Banner_mixins
Default: []
* $wgCentralNoticeCampaignMixins: Available campaign mixins. Mixins must
declare at least a module and an i18n key for their name. They may also provide
a module for custom admin UI elements. If no custom admin UI module is provided,
input elements for all parameters are generated automatically in the admin UI. For such
generated input elements, i18n messages for labels (set via labelMsg) and help text
(helpMsg) should be added to the ext.centralNotice.adminUi.campaignManager module,
in extension.json. Allowed parameter types are "string", "integer", "float" and
"boolean". Additionally, the "json" parameter type is available for custom admin
UI modules only.
Default mixins (documented in context):
- bannerHistoryLogger
- legacySupport
- impressionDiet
- largeBannerLimit
- bannerSequence
* $wgNoticeTabifyPages: Declare all pages that should be tabified as CN pages
* $wgCentralNoticeGeoIPBackgroundLookupModule: Optional name of a ResourceLoader
module to perform a background GeoIP lookup via a third-party service. If no
GeoIP cookie is found, the module is used to call the service. It should
return geo via a promise. Here we provide an example implementation for
freegeoip.net (ext.centralNotice.freegeoipLookup), but modules for other
similar services should be easy to create. If this config setting is null, geo
data will only be set from the GeoIP cookie. In the WMF production, this
cookie should be set server-side from Varnish.
Default: null
* $wgCentralNoticeContentSecurityPolicy: Optional setting to help detect banner
content that may violate users' privacy. When this is set, its value will be
used on banner preview pages as a content-security-policy header, and a small
script will be added to detect content security policy violations and show an
alert message. An example value that alerts on all third party requests but
does not break mediawiki is:
"default-src data: blob: 'unsafe-inline' 'unsafe-eval' 'self';"
Default: false
* $wgCentralNoticeMaxCampaignFallback: The maximum number of times campaign chooser
will iterate through available campaigns to choose one to display to the user.
The purpose of setting a low value is to avoid a long-running loop through
campaigns. To prevent campaign fallback, set to 1.
Default: 5
* $wgCentralNoticeAdminGroup: This group will be granted centralnotice-admin
rights. You can always specify additional groups in $wgGroupPermissions. A
false-y value means only groups explicitly specified in $wgGroupPermissions
will have the right.
Default: sysop
* $wgCentralNoticeMessageProtectRight: This right will be used to apply cascading
protection to banner messages. It will be added to $wgRestrictionLevels and
$wgCascadingRestrictionLevels if not present. As a transitional measure, if
any customized value has been set for $wgNoticeProtectGroup, this variable
will take that value.
Default: centralnotice-admin
* $wgCentralNoticeCampaignTypes: Campaign types available to be set. Types are available
to opt-out of in user preferences. This variable is an associative array whose keys are
the type identifiers and whose values are associative arrays with one key, "onForAll",
with a boolean value. Set this value to true for types that logged-in users should not
be able to opt out of. For each of these, an interface message should exist, whose
key should be 'centralnotice-campaign-type-' followed by the identifier of the type.
Messages are included in the code for types provided as default values for this
conig variable.